The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Передача массива из php в шаблон smarty"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (PHP)
Изначальное сообщение [ Отслеживать ]

"Передача массива из php в шаблон smarty"  +/
Сообщение от Folder email on 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 не есть объектом!
Вот и интересует меня вопрос о том, чего же в новом куске кода не хватает для счастья?

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Передача массива из php в шаблон smarty"  +1 +/
Сообщение от Vladin (ok) on 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);

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

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

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


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру