За последние 24 часа нас посетили 22132 программиста и 1687 роботов. Сейчас ищут 1480 программистов ...

Результаты выборки и вывод их с помощью Smarty

Тема в разделе "PHP и базы данных", создана пользователем MartynK981, 19 мар 2008.

  1. MartynK981

    MartynK981 Активный пользователь

    С нами с:
    17 дек 2007
    Сообщения:
    5
    Симпатии:
    0
    Адрес:
    Dnepropetrovsk
    Суть вопроса:
    Я выбираю из базы строки затем их форматирую, типа:
    PHP:
    1.  
    2. function get_rows()
    3. {
    4.   while($row = $result->fetch_array())
    5.   {
    6.       $first[] = my_format_function($row[0]);
    7.   }
    8.   return $first; // Возвращаем массив уже отформатированных строк
    9. }
    10.  
    Дальше я передаю этот массив в шаблон Smarty и он опять в цикле foreach его выводит... т.е. два раза (сначала MySql затем Smarty) проганяются теже строки.
    Вопрос: возможно ли оптимизировать этот процесс, все-таки как-то не хорошо два раза выполнять схожие действия :(
     
  2. tmanager

    tmanager Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    108
    Симпатии:
    0
    А почему сразу не собрать строку нужного вида?

    PHP:
    1. <?php
    2. function get_rows()
    3.  {
    4. $s="";
    5.    while($row = $result->fetch_array())
    6.    {
    7.        $s.= "делимитер".my_format_function($row[0]);
    8.    }
    9.    return $s; // Возвращаем строку для подстановки в шаблон
    10.  }
    11. ?>
     
  3. MartynK981

    MartynK981 Активный пользователь

    С нами с:
    17 дек 2007
    Сообщения:
    5
    Симпатии:
    0
    Адрес:
    Dnepropetrovsk
    Вариант, но тогда теряется смысл шаблонизатора - я буду возвращать уже готовые с HTML-тегами строки.
     
  4. Clone

    Clone Guest

    MartynK981, это правильно, данные должны генериться перед выводом, а не во время. Только не надо такого что в массиве 25000 элементов, а выводится 10.