#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