URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 6878
[ Назад ]

Исходное сообщение
"Передача массива из php в шаблон smarty"

Отправлено Folder , 15-Июн-10 20:47 
Добрый день, решил свой старый сайт окультурить и разделить код и шаблоны… Сделать все это решил при помощи smarty, то тут возникла загвоздка.

Вот как было:
$sql = mysql_query("SELECT *
FROM categories, moves, translate, genre
WHERE translate.translateID = moves.translateID
AND genre.genreID = moves.genreID
AND moves.id_category = categories.id_category
AND name_move LIKE '%$search%'
ORDER BY name_move ASC");
if ($sql)
{
  while($sql2 = mysql_fetch_object($sql))
    {
?>
<html>
<tr vAlign="center">
<td align="center" width="3%"><?php echo ($num); ?></td>
<td align="center" width="15%"><?php echo "".$ sql2 ['name_move']."" ?></td>
<td align="center" width="12%"><?php echo "".$ sql2['name_cat']."" ?></td>
<td align="center" width="10%"><?php echo "".$ sql2 ['translate_name']."" ?></td>
<td align="center" width="10%"><?php echo "".$ sql2['video_codec']."" ?></td>
<td align="center" width="12%"><?php echo "".$ sql2 ['video_bitrade']."" ?> video</td>
<td align="center" width="10%"><?php echo "".$ sql2 ['audio_codec']."" ?></td>
<td align="center" width="10%"><?php echo "".$ sql2 ['audio_bitrade']."" ?> audio </td>
<td align="center" width="10%"><?php echo "".$ sql2 ['namberCD']."" ?></td>
<td align="center" width="8%"><?php echo "".$ sql2 ['size']."" ?> Ãá</td>
</tr>
</html>

Теперь хочу полученый из БД массив передать в шаблон  smarty

$sql = 'SELECT *
FROM categories, moves, translate, genre
WHERE translate.translateID = moves.translateID
AND genre.genreID = moves.genreID
AND moves.id_category = categories.id_category
AND name_move LIKE '%$search%'
ORDER BY name_move ASC';
$smarty->assign('nic', $db->GetAll($sql));
$smarty->display('test.tpl');

В шаблоне test.tpl
<table>
<tr>
{section name=top loop=$nic}
<td>view {$nic[top]. name_move}<a></td>
<td>view {$nic[top]. name_cat}<a></td>
{/section}
</tr>
</table>

Но php ругается на то, что переменная $db не есть объектом!
Вот и интересует меня вопрос о том, чего же в новом куске кода не хватает для счастья?


Содержание

Сообщения в этом обсуждении
"Передача массива из php в шаблон smarty"
Отправлено Vladin , 16-Июн-10 00:53 
Вот это - $db->GetAll($sql)
сильно похоже на метод из PEAR::DB
Надо установить PEAR и
$db =& DB::connect($dsn, $options);
Подробности расскажет гугл.

Или не использовать PEAR, а все строки вытянуть
например так

$nic = array();
while($nic[] = mysql_fetch_array($sql));
$smarty->assign('nic', $nic);


"Передача массива из php в шаблон smarty"
Отправлено Folder , 16-Июн-10 04:11 
>[оверквотинг удален]
>Надо установить PEAR и
>$db =& DB::connect($dsn, $options);
>Подробности расскажет гугл.
>
>Или не использовать PEAR, а все строки вытянуть
>например так
>
>$nic = array();
>while($nic[] = mysql_fetch_array($sql));
>$smarty->assign('nic', $nic);

Огромное Спасибо за помощь, это как раз то, что я искал :)