Цикл результатов Mysql для движка шаблонов

#php #template-engine

#php #движок шаблонов

Вопрос:

То, что я пытаюсь сделать, это зациклить все результаты с использованием очень простого движка шаблонов. Проблема в том, что скрипт выполняет один и тот же результат много раз.. Прямо сейчас в базе данных есть 3 тестовых задания (Test_1, Test_2, Test_3), поэтому в основном результат выглядит так:

Test_3 Тест localhost

Test_3 Тест localhost

Test_3 Тест localhost

 $result = $pDatabase->query($query) or die('Query failed: ' . mysql_error());
    while ($row = mysql_fetch_array($result)) {
        //Loop Template (row)
        $works_row = new Template("works_row.tpl"); 
            //Changing all from $row[] to {}
            $rows[]=$row;
            $works_row->set("category",$row['category']);
            $works_row->set("name",$row['name']);
            $works_row->set("link",$row['link']);
    }
    foreach ($rows as $row) {
    $works_templates[] = $works_row;
    }
    $works_contents = Template::merge($works_templates);
    mysql_free_result($result);
    //Content part that calls all works
    $works_list  = new Template("works_block.tpl"); 
    $works_list->set("works_rows", $works_contents);
 

Я действительно не понимаю, почему это не работает правильно

Комментарии:

1. Скорее всего, вы перезаписываете элементы с $works_row->set каждым циклом

Ответ №1:

Попробуйте это, это работает

     $result = $pDatabase->query($query) or die('Query failed: ' . mysql_error());
    while ($row = mysql_fetch_array($result)) {
        //Loop Template (row)
        $works_row = new Template("works_row.tpl"); 
            //Changing all from $row[] to {}
            $rows[]=$row;
            $works_row->set("category",$row['category']);
            $works_row->set("name",$row['name']);
            $works_row->set("link",$row['link']);
            $works_templates[] = $works_row;
    }

    $works_contents = Template::merge($works_templates);
    mysql_free_result($result);
    //Content part that calls all works
    $works_list  = new Template("works_block.tpl"); 
    $works_list->set("works_rows", $works_contents);
 

Комментарии:

1. Спасибо, это помогло, похоже, мне не нужен foreach ha: D