Smarty and DataBase

tengen

Guest
Smarty and DataBase

Недавно я посмотрел на смарти, и вроде даже приглянулась :D

Вот такой вопрос однако созрел. Если я допустим хочу сделать "вебморду" к базе, то как мне по правильному отображать данные? Через insert, как показано в примерах для баннера? Но тогда получается не совсем удобно продизайнить отдельно вывод данных. А по обычному получается, что смарти все жестоко кеширует...

"Ben, eto danila, i need help..." :rolleyes:
 

lucas

Guest
как мне по правильному отображать данные?
Получить их из БД (любым доступным способом).
Отобразить их в шаблоне (любым доступным способом).

Через insert, как показано в примерах для баннера?
Это лишнее.

смарти все жестоко кеширует
Кеширование в Смарти очень гибко настраивается.
В худшем случае, его можно отключить совсем.

Ссылки по теме:
http://smarty.php.net/manual/ru/smarty.for.designers.php
http://smarty.php.net/manual/ru/caching.php
 

Demiurg

Guest
tengen
смарти отображает данные. Вытаскиванием данных из БД ханимается php.
 

tengen

Guest
Вот. То чего я и опасался...

list.tpl :
<tr>
<td class="txt1"><a class="txt1" href="{#RootPath#}edit">Edit</a></td>
<td class="txt1">{$name}</td>
<td class="txt1"><a class="txt1" href="{#RootPath#}delete">Delete</a></td>
</tr>

edit.php :
$rs = &$conn->Execute("SELECT * FROM list ORDER BY name");
$ttt->display('listbegin.tpl');
while (!$rs->EOF) {
$ttt->assign("name", $rs->fields['name']);
$ttt->display('list.tpl');
$rs->MoveNext();
}
$ttt->display('listend.tpl');
$rs->Close();
$conn->Close();

Как тут по уму то сделать? А то отображается только первая запись из базы...
 

Demiurg

Guest
ужас какой ...
шаблон должен быть один.В него ты должен передавать массив из имен, а дальше методами смарти делать цикл и выводить этот массив.
 

tengen

Guest
Так получается, что я должен сначала сделать выборку всей базы в массив, а потом уже этот массив выводить методами section или foreach ? Как то не по человечески эт получается...
 

lucas

Guest
сделать выборку всей базы в массив
Не всей базы, а только нужной информации.

потом уже этот массив выводить методами section или foreach
По людски--по людски. Это не самое узкое место в скрипте.
не стоит экономить на спичках.
 

tengen

Guest
А допустим я тут же добавил данные или удалил, смарти ведь все закеширует и выведет старые данные...
 

Demiurg

Guest
смарти не кеширует, если у тебя не включено кеширование.
 

tengen

Guest
Спасибо за советы. Если отключить кеширование для вывода данных из базы, то все ок. Насчет передачи все в массиве - подумаю... ;)
 
Сверху