Помогите по Smarty пожалуйста

Тема в разделе "PHP", создана пользователем асс, 13 мар 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. асс

    асс

    Регистр.:
    13 окт 2006
    Сообщения:
    749
    Симпатии:
    220
    Проблемма такая
    есть массив полей из базы данных

    вот код который выводит новости из базы

    PHP:
    $sql="SELECT * FROM `news` ORDER BY `id` ASC LIMIT 0,2";
    $result=mysql_query($sql);
    $num_results=mysql_num_rows($result);

    for (
    $i=0$i<$num_results$i++)
        {
        
    $row=mysql_fetch_array($result);
        
    $id=$row["id"];
        
    $author=$row["author"];
        
    $date=$row["date"];
        
    $tema=$row["tema"];
     echo 
    '  <a href="6.php?id='.$id.'">'.$date.'</a>';
    }
    } if (!
    $action && $id){

    $sql="SELECT * FROM `news` WHERE `id`=".$id;
    $result=mysql_query($sql);
    $row=mysql_fetch_array($result);
        
    $id=stripslashes($row["id"]);
        
    $author=$row["author"];
        
    $date=$row["date"];
        
    $text=$row["text"];
        
    $tema$row["tema"];

      echo 
    '<h1>'.$tema.'</h1>

      Добавил: <b>'
    .$author.'</b> ('.$date.')<p> '.$text.' <p>
       <a href="6.php">  Вернуться к новостям</a>'
    ;
     
       }
    Мне нужно все это загнать в Smarty и вывести на странице
    каждую переменную?
    вывести все новости.
     
  2. асс

    асс

    Регистр.:
    13 окт 2006
    Сообщения:
    749
    Симпатии:
    220
    Что Именно оконкретизировать?
    Вродьбы написал правильно. Мне надо все новости вывести через Шаблонизатор Smarty


    Есть переменные которые выводят новости.
    Вот они
    $id=$row["id"];
    $author=$row["author"];
    $date=$row["date"];
    $tema=$row["tema"];

    чтоб их вывести в PHP я использую такой код


    echo "$id $author $date $tema";

    С помошью указаного в теме скрипта я выведу 10 новостей или больше на одной странице.


    А если я воткну переменные в смарти
    например
    include_once("configs/config.php");
    require '../libs/Smarty.class.php';

    $smarty = new Smarty;

    $smarty->compile_check = true;
    $smarty->debugging = true;
    $smarty->assign("autor","$author");
    $smarty->assign("title","$tema");
    $smarty->assign("date","$date");
    $smarty->assign("text","$text");
    $smarty->display('index.tpl');
    А в самом index.tpl укажу {autor} {text} и так далее
    то я получу только одну новость.

    А мне надо получить все новости из базы.
    примерно так

    {foreach from="$news" item="n}
    {$n.autor}
    {/foreach}

    по идее должно вывести всех авторов в цикле. Но у меня не выходит
    {$n.autor}
     
  3. best

    best

    Регистр.:
    12 апр 2006
    Сообщения:
    246
    Симпатии:
    54
    http://www.smarty.net/manual/ru/language.function.foreach.php
    $smarty->assign("title","$tema"); - это всего лишь переменная!!!! тебе нужен массив.
    На офф. сайте все есть, а за тебя никто ничего делать не собирается.
     
  4. amxm

    amxm Создатель

    Регистр.:
    25 июл 2008
    Сообщения:
    18
    Симпатии:
    0
    в смарти переменную лучше всего передавать массив. очень удобно с ними в шаблоне потом работать.
     
  5. Denis5

    Denis5 Постоялец

    Регистр.:
    2 сен 2008
    Сообщения:
    98
    Симпатии:
    23
    $smarty->assign('massiv',$massiv);



    {section name=i loop=$massiv}
    {$massiv.author}
    и т.д.
    {/section}
     
  6. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    В принципе у смарти никто fetch не отменял... Ну опять же удобно для определенніх задач...
     
Статус темы:
Закрыта.