PHP и SMARTY

Тема в разделе "Как сделать...", создана пользователем chapser, 29 авг 2014.

Статус темы:
Закрыта.
  1. chapser

    chapser Постоялец

    Регистр.:
    12 сен 2007
    Сообщения:
    87
    Симпатии:
    37
    • Используйте тег [php] для кода
    Помогите люди добрые.

    есть такая функция вывода списка комментариев:
    PHP:
    public function markup(){
    $d = &$this->data;
    $d['dt'] = strtotime($d['dt']);
    return 
    '
    <div class="comment">
    <div class="name">'
    .$d['name'].'</div>
    <div class="date">'
    .date('d M Y',$d['dt']).'</div>
    <p>'
    .$d['body'].'</p>
    </div>
    '
    ;
    }
    Вызывается она через
    PHP:
    $aid $_GET['configuration_id'];
    $comments = array();

    $result mysql_query("SELECT * FROM auto_comments WHERE aid=$aid ORDER BY id ASC");
    while(
    $row = @mysql_fetch_assoc($result)) {
    $comments[] = new Comment($row);
    }

    foreach(
    $comments as $c){
    echo 
    $c->markup();
    }
    Отображается корректно только, если выводить через echo. Если делаю так:
    PHP:
    foreach($comments as $c){
    $comments $c->markup();
    }
    и пытаюсь вставить в смарти через - $smarty->assign('comments',$comments);
    выводится последний комментарий, все остальные не показываются, хотя в базе они есть.

    Как можно передать все это в смарти? Заренее благодарю!
     
    Последнее редактирование модератором: 29 авг 2014
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.523
    Симпатии:
    1.376
    Конкатенацию надо использовать, если в строке данные накапливаются:
    PHP:
    $comments '';
    foreach(
    $comments as $c){
      
    $comments .= $c->markup();
    }
     
  3. chapser

    chapser Постоялец

    Регистр.:
    12 сен 2007
    Сообщения:
    87
    Симпатии:
    37
    Благодарю! Все сработало! Оказывается все так просто. Я в php новичок..
     
Статус темы:
Закрыта.