Index.php
<?php
//Code
/**
== Query of answers
*/
$result=mysql_query("SELECT `title`, `data`, `descriptions`, `author`,`text`, `id`
FROM `article_main`", $db)
or die ("Couldn't select an answers rows from table: ".mysql_error());
if ($result)
{
include './index.tpl';
}
//Code
и шаблон
Index.tpl
<?php
while ($myrow=mysql_fetch_assoc($result))
{
?>
<div id="post_<?php echo (int)$myrow['id']; ?>" class="post">
<h1 class="title">
<?php echo (string)$myrow['title']; ?>
</h1>
<h2 class="author">
<?php echo (string)$myrow['author']; ?>
</h2>
<div class="content">
<?php echo (string)$myrow['descriptions']; ?>
</div>
</div>
<?php
}
Я вставлял в Index.php цикл выборки, а в тело цикла include с подключением шаблона,
<?php
if ($result)
{
while ($myrow=mysql_fetch_assoc($result))
{
include './index.tpl';
}
но кажется, что это не есть правильно на каждом шале цикла подключать шаблон, подскажите как корректно должно это быть. (контроллер я пока опустил, меня интересует именно правильное разделения логики и шаблона на предмет выборки данных) Спасибо.
Спустя 2 часа, 15 минут, 50 секунд (23.04.2012 - 12:44) I++ написал(а):
Спустя 1 час, 10 секунд (23.04.2012 - 13:44) SlavaFr написал(а):
include в цикле не хорошо.
первый вариант полностью в порядке.
не надо рассматривать темплате как просто вид, а рассматривай ее как скрипт который занимается формированием output из переданных данных.
первый вариант полностью в порядке.
не надо рассматривать темплате как просто вид, а рассматривай ее как скрипт который занимается формированием output из переданных данных.
Спустя 2 часа, 48 минут, 28 секунд (23.04.2012 - 16:33) vagrand написал(а):
Цитата |
А вообще если проект будет раздуваться лучше smarty прикрутить. |
А чем по вашему smarty лучше чем phtml?
Спустя 19 часов, 58 минут, 5 секунд (24.04.2012 - 12:31) Serj11 написал(а):
$str=file_get_contents('./index.tpl');
while ($myrow=mysql_fetch_assoc($result))
{
eval('?>'. $str .'<?php ');
}
index.tpl
<div id="post_<?php echo (int)$myrow['id']; ?>" class="post">
<h1 class="title">
<?php echo (string)$myrow['title']; ?>
</h1>
<h2 class="author">
<?php echo (string)$myrow['author']; ?>
</h2>
<div class="content">
<?php echo (string)$myrow['descriptions']; ?>
</div>
</div>
Если сделать вот таким образом, логика разделена, вроде как все просто ( я пока не беру в расчет проверки, только разделение логики и шаблона)
Спустя 31 минута, 32 секунды (24.04.2012 - 13:02) Игорь_Vasinsky написал(а):
после написания велосипедов - я тоже вернулся к такому виду, тока
меня вполне устраивает и
меня вполне устраивает и
<?=$myrow['title']; ?>