Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Smarty
 
 автор: Minus   (28.04.2009 в 01:42)   письмо автору
 
 

Здравствуйте.
подскажите по поводу этого шаблонизатора Smarty.
Не могу понять как добавить к нему PHP код.
Сам вид данного шаблона:

{* Smarty *}
{include file="xhtml_header.tpl"}
<div class="logo"><img src="img/logo.jpg" /></div>
<b>Текст</b><br/>
<b>Текст</b><br/>
<b>Текст</b><br/>
{include file="xhtml_footer.tpl"}

а вот PHP-код, который необходимо добавить:

<?
$sql 
mysql_query("SELECT * FROM table ORDER BY id DESC LIMIT 3");
$row mysql_fetch_array($sql);
echo 
'<marquee behavior="scroll" direction="left" bgcolor="#93d5f9" width="100%" height="40" scrolldelay="100" loop="infinite">';
do
{
$text $row['text'];
echo 
$text.' <b>|</b> ';
}
while(
$row mysql_fetch_array($sql));
echo 
'</marquee>';
?>

Сделать надо после изображения в шаблоне

  Ответить  
 
 автор: sim5   (28.04.2009 в 05:51)   письмо автору
 
   для: Minus   (28.04.2009 в 01:42)
 

Если уж шаблоны, то echo '<marquee behavior="scroll"...., echo $text.' <b>|</b> ' - выбросить, не должно быть этого, все это как раз и помещайте в шаблон. mysql_fetch_array - забыть, и использовать mysql_fetch_assoc.
Странно, результат запроса это одна запись или несколько? Если одна, можно понять $row = mysql_fetch_array($sql);, но тогда зачем далее цикл? Если несколько, то что вы получите первой строкой?
А вообще же, нужно в цикле получить массив, например:
<?
$array 
= array();
while(
$row mysql_fetch_assoc($sql)) $array[] = $row ;
//передать этот массив в шаблон
$smarty->assign("array"$array);

И уже в шаблоне в нужном месте разложить этот массив, в Смарти для этого есть необходимые инструменты.

  Ответить  
 
 автор: Minus   (28.04.2009 в 07:33)   письмо автору
 
   для: sim5   (28.04.2009 в 05:51)
 

Спасибо. Немного стал понимать в этой системе шалонизаторов.
В первой строке запрос на выборку трех последних записей в таблице table.
Можете подробней объяснить почему надо использовать именно mysql_fetch_assoc?

  Ответить  
 
 автор: sim5   (28.04.2009 в 09:56)   письмо автору
 
   для: Minus   (28.04.2009 в 07:33)
 

Понял, это я невнимательно просмотрел насчет цикла. Почему не надо использовать mysql_fetch_assoc - потому, что он вам возвращает два идентичных набора массивов, с разницей только в том, что один из них индексный, а другой ассоциативный. Вы работаете со вторым, так зачем вам лишнее? Пользуйтесь той функцией, которую я вам указал. Нужен будет индексный - mysql_fetch_row.

  Ответить  
 
 автор: Minus   (28.04.2009 в 12:25)   письмо автору
 
   для: sim5   (28.04.2009 в 09:56)
 

Ясно.
спасибо!
пока вопросов нету.

  Ответить  
 
 автор: Temy   (22.09.2009 в 10:44)
 
   для: sim5   (28.04.2009 в 05:51)
 

Не понятно, для чего писать: $array = array(); и $array[] = $row
если у нас $row уже является массивом.
mysql_fetch_assoc возращает результат ввиде массива, ключ является именем атрибута.

  Ответить  
 
 автор: GeorgeIV   (23.09.2009 в 09:37)   письмо автору
 
   для: Temy   (22.09.2009 в 10:44)
 

в общем случае while может и не выполнится. Чтобы не иметь предупреждений, и вообще это дурная практика, работать с неинициализированными переменными

  Ответить  
 
 автор: Николай2357   (23.09.2009 в 13:22)   письмо автору
 
   для: Temy   (22.09.2009 в 10:44)
 

Если внимательно посмотреть на код (даже не зная, что возвращает функция mysql_fetch_assoc()), можно понять, зачем это нужно. Ведь элементом массива $array будет являться массив $row ))

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования