Smarty + массивы

Тема в разделе "PHP", создана пользователем nmDimas2, 30 ноя 2010.

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

    nmDimas2 Постоялец

    Регистр.:
    20 апр 2010
    Сообщения:
    78
    Симпатии:
    12
    Люди помогите весь вечер провтыкал и толком нечего не сделал смысл такой
    с бд выводим массив
    в нем содержится название ссылки и сама ссылка грубо говоря
    а на сайте надо чтоб все ссылки выстроились в столбец
    все это черес систему smarty
    в пхп файле пишу массив
    Код:
    	$link= mysql_query('select * from links;');
    		while($t = mysql_fetch_array($link)){
    		      $arr[] = $t[name] ; 
    		      $arr[]=$t[title];	
    		}
    $arr_meta_tags['news'] = $arr;
    $news_tpl = $smarty->fetch("news.tpl");
    $smarty->assign('blok_news',$news_tpl);
    
    а в самом news.tpl и бок выходит
    не знаю как вывести два значения
    типа чтоб было так
    Код:
     {foreach from=$news item=new}
     	<div style="font-size:12px;padding-bottom:16px;">
        <a href="{$new.name}">{$new.title}</a>
         </div>
     {/foreach}
     
  2. bonzaza

    bonzaza Постоялец

    Регистр.:
    13 ноя 2007
    Сообщения:
    53
    Симпатии:
    9
    вроде в документации рабочий пример один в один
    если по нему не работает, смотрите что пришло из базы
    и если совсем тяжно - сюда напишите, что скрипт выдает
     
  3. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    похоже проблема тут
    тут name каждый второй элемент массива $arr, а надо name и title вложить в массив и вприсвоить его к arr
    PHP:
    $arr[] = array('name' => $t[name], 'title' => $t[title]);
    //или если лишнее в $t не мешает
    $arr[] = $t;
     
    nmDimas2 нравится это.
  4. SiZE

    SiZE Постоялец

    Регистр.:
    31 янв 2010
    Сообщения:
    51
    Симпатии:
    10
    И еще судя по твоему коду ты нигде не делаешь $smarty->assign('news',$arr);
     
  5. nmDimas2

    nmDimas2 Постоялец

    Регистр.:
    20 апр 2010
    Сообщения:
    78
    Симпатии:
    12
    Все я делаю и все я сделал это элементарное .
    Если его не водить то вопще ничего не будет а у меня значения показывались но не так как надо

    щас тестю и смотрю
    Кстати возник вопрос
    например у меня есть контент {$content} которое размещается между двума боковыми блоками в центре как и обычно
    так вот как сделать чтоб контент был динамический то есть например если заходит человек на сайт то там например добро пожаловать на сайт нажал там например подробнее на этом месте используется уже другой шаблон а именно для вывода подробного материала?
     
  6. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    363
    Симпатии:
    117
    nmDimas2
    способ 1 ( простой и примитивный )

    создаешь 3 файла
    первый - header.tpl - в котором пишешь что-то типа

    PHP:
    <head
      ...
      .... 
    </
    head>
    <
    body>
    второй - footer.tpl
    PHP:
    <div class="futer"
       .........
    </
    div>
    </
    body>
    ну а третий - уже сам шаблон ... в котором будет что-то типа

    PHP:
    {include file="header.tpl"}

    <
    div class="content"
    {*  
    нужный код  *}
    </
    div>

    {include 
    file="footer.tpl"}

    ну и второй способ через наследование шаблонов
    реализовать сложнее но он наиболее элегантный
    писать не буду но вот можно почитать

    http://habrahabr.ru/blogs/php/37962/
    http://habrahabr.ru/blogs/php/38174/
     
Статус темы:
Закрыта.