Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: PHP, MySql, Smarty. Цикл

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
vanya_sl
Отправлено: 08 Августа, 2013 - 00:24:20
Post Id



Частый гость


Покинул форум
Сообщений всего: 131
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




Здравствуйте!
Помогите с реализацией.
Нужно выводить статьи, сейчас выводит только последнюю статью. Почему выводит понятно)
Не понимаю, как реализовать цикл вывода на Smarty в файле index.tpl

main.php

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.         $strSQL = "SELECT * FROM post LIMIT 15 ";
  4.         $rs = mysql_query($strSQL);
  5.         while($row = mysql_fetch_array($rs)) {
  6.  
  7.            $post_id =  $row['post_id'] ;
  8.           $post_name =  $row['post_name'] ;
  9.           $post_text =  $row['post_text'] . "<br />";
  10.  
  11.           }
  12.          
  13.           $arr_meta_tags['post_id'] = $post_id;
  14.           $arr_meta_tags['post_name'] = $post_name;
  15.           $arr_meta_tags['post_text'] = $post_text;
  16.          
  17.           $smarty->assign('post_id',$arr_meta_tags['post_id']);
  18.       $smarty->assign('post_name',$arr_meta_tags['post_name']);
  19.       $smarty->assign('post_text',$arr_meta_tags['post_text']);
  20.          
  21.         ?>
  22.  


index.tpl

PHP:
скопировать код в буфер обмена
  1.  
  2. {$post_id}
  3. {$post_name}   
  4. {$post_text}   
  5.  
 
 Top
caballero
Отправлено: 08 Августа, 2013 - 00:34:48
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




в смарти свой синтаксис циклов
передаешь туда массив а оно по нему бегает и выводит


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
vanya_sl
Отправлено: 08 Августа, 2013 - 00:39:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 131
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




caballero
Ну я это понимаю)
Как реализовать? Кодом можете показать?
 
 Top
caballero
Отправлено: 08 Августа, 2013 - 01:06:20
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




пни поиск "smarty циклы"
примеров и статей мильен


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
vanya_sl
Отправлено: 08 Августа, 2013 - 01:36:29
Post Id



Частый гость


Покинул форум
Сообщений всего: 131
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




caballero
да пинаю пинаю.... можно кодом показать к моему примеру?
Улыбка
 
 Top
imya
Отправлено: 08 Августа, 2013 - 09:27:35
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


Помог: 19 раз(а)




Плохо пинаете видимо, на оф. сайте есть подробные примеры

http://www[dot]smarty[dot]net/docsv2/ru/[dot][dot][dot]tion[dot]foreach[dot]tpl


-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
 
My status
 Top
vanya_sl
Отправлено: 08 Августа, 2013 - 12:16:17
Post Id



Частый гость


Покинул форум
Сообщений всего: 131
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




imya
Вот делаю так. Но результата мало, выводит 1 пост:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.         $strSQL = "SELECT * FROM post LIMIT 15 ";
  4.         $rs = mysql_query($strSQL);
  5.        
  6.  
  7.         while($row = mysql_fetch_array($rs)) {
  8.  
  9.           $post_id =  $row['post_id'] ;
  10.           $post_name =  $row['post_name'] ;
  11.           $post_text =  $row['post_text'] . "<br />";
  12.           $arr = array($post_id, $post_name, $post_text);
  13.           }
  14.          
  15.          
  16.       $smarty->assign('myArray', $arr);
  17.          
  18.         ?>
  19.  
  20.  


PHP:
скопировать код в буфер обмена
  1.  
  2. {foreach from=$myArray item=post_id}
  3. {$post_id}
  4. {$post_name}   
  5. {$post_text}   
  6. {/foreach}
  7.  

(Отредактировано автором: 08 Августа, 2013 - 12:20:02)

 
 Top
Мелкий Супермодератор
Отправлено: 08 Августа, 2013 - 12:28:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




А почему их должно быть много, если assign'ите вы только последний?
Незнаком со смарти, нужно или assign в цикле делать или в цикле собирать двумерный массив результатов и потом assign этого массива.


-----
PostgreSQL DBA
 
 Top
vanya_sl
Отправлено: 08 Августа, 2013 - 12:35:16
Post Id



Частый гость


Покинул форум
Сообщений всего: 131
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




Мелкий
Сделал assign в цикле.... Резу 0.
1 пост.
Как собирать двумерный массив результатов и потом assign этого массива?
 
 Top
Okula
Отправлено: 08 Августа, 2013 - 12:40:24
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




Вот так:
PHP:
скопировать код в буфер обмена
  1. $strSQL = "SELECT * FROM post LIMIT 15";
  2. $rs = mysql_query($strSQL);
  3. $result = array();
  4. while($row = mysql_fetch_array($rs)) $result[] = $row;
  5. $smarty->assign('myArray', $result);
 
 Top
vanya_sl
Отправлено: 08 Августа, 2013 - 12:46:27
Post Id



Частый гость


Покинул форум
Сообщений всего: 131
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




Okula
Выводит Array Array (т.к. у меня 2 поста в БД)

(Отредактировано автором: 08 Августа, 2013 - 12:48:39)

 
 Top
Okula
Отправлено: 08 Августа, 2013 - 12:50:33
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




vanya_sl, ну так всё правильно выводит. Это же многомерные массивы.
Разбери эти массивы в smarty по ключам и будет тебе счастье Улыбка
 
 Top
vanya_sl
Отправлено: 08 Августа, 2013 - 12:59:35
Post Id



Частый гость


Покинул форум
Сообщений всего: 131
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




Okula
Как разобрать?
Не получается .....
 
 Top
Okula
Отправлено: 08 Августа, 2013 - 13:05:19
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




vanya_sl, читай документацию, там всё подробно написано. Даже я никогда не имевший дело со smarty всё понял.
http://www[dot]smarty[dot]net/docsv2/ru/[dot][dot][dot]tion[dot]foreach[dot]tpl
CODE (htmlphp):
скопировать код в буфер обмена
  1. {foreach from=$myArray item=i}
  2.     {$i.post_id}
  3.     {$i.post_name}
  4.     {$i.post_text}
  5. {/foreach}
 
 Top
vanya_sl
Отправлено: 08 Августа, 2013 - 13:24:34
Post Id



Частый гость


Покинул форум
Сообщений всего: 131
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




Okula
Спасибо)
Тогда какой вы используете шаблонизатор?
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB