Добрый день, решил свой старый сайт окультурить и разделить код и шаблоны… Сделать все это решил при помощи 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 не есть объектом!
Вот и интересует меня вопрос о том, чего же в новом куске кода не хватает для счастья?
Вот это - $db->GetAll($sql)
сильно похоже на метод из PEAR::DB
Надо установить PEAR и
$db =& DB::connect($dsn, $options);
Подробности расскажет гугл.Или не использовать PEAR, а все строки вытянуть
например так$nic = array();
while($nic[] = mysql_fetch_array($sql));
$smarty->assign('nic', $nic);
>[оверквотинг удален]
>Надо установить PEAR и
>$db =& DB::connect($dsn, $options);
>Подробности расскажет гугл.
>
>Или не использовать PEAR, а все строки вытянуть
>например так
>
>$nic = array();
>while($nic[] = mysql_fetch_array($sql));
>$smarty->assign('nic', $nic);Огромное Спасибо за помощь, это как раз то, что я искал :)