За последние 24 часа нас посетили 20047 программистов и 1212 роботов. Сейчас ищут 677 программистов ...

Вывод из бд в SMARTY

Тема в разделе "PHP для новичков", создана пользователем nik21, 5 фев 2007.

  1. nik21

    nik21 Активный пользователь

    С нами с:
    5 фев 2007
    Сообщения:
    2
    Симпатии:
    0
    Нужно в шаблоне добавить записи из БД.
    Сделал так:
    <?php
    Error_Reporting(E_ALL & ~E_NOTICE);
    require 'smarty/smarty.class.php';
    $smarty=new Smarty;
    $smarty->template_dir = 'templates/';
    $smarty->compile_dir = 'templetes_c/';
    $smarty->config_dir = 'cfg/';



    mysql_connect('localhost', 'root', '') or die("Íå ìîãó ñîåäèíèòüñÿ");
    mysql_select_db('sew') or die(mysql_error());
    $result = mysql_query("SELECT `recom_id`,`name`,`url` FROM `SS_recom` ORDER BY `recom_id`");
    $goods=array();
    for ($i=0; $row = mysql_fetch_array($result);$i++) {
    $goods[$i]["recom_id"]=$row["recom_id"];
    $goods[$i]["name"]=$row["name"];
    $goods[$i]["url"]=$row["url"];
    }
    $smarty->assign("GOODS",$goods);
    $smarty->display("http://sew3/templates/frontend/tmpl0/index.tpl.html");
    ?>



    кусок кода в шаблоне:
    <table>
    {foreach key=key item=item from=$GOODS}
    <tr><td>{$item.recom_id}</td>
    <td>{$item.name}</td>
    <td>{$item.url}</td>
    </tr>
    {/foreach}

    </table>

    Когда запускаю php файл выдаёт ошибку:
    Warning: Smarty error: unable to read resource: "http://sew3/templates/frontend/tmpl0/index.tpl.html" in y:\home\sew3\www\smarty\smarty.class.php on line 1088
     
  2. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    мм, попробуй установить пути к директориям от корня сервера и до папки, в которой физически лежат шаблоны.

    потом $smarty->display('template_name.tpl');

    ошибка говорит, что smarty не нашел шаблон
     
  3. nik21

    nik21 Активный пользователь

    С нами с:
    5 фев 2007
    Сообщения:
    2
    Симпатии:
    0
    Не не получается.
    А то что у меня шаблон называется Index.tpl.html это нормально?
     
  4. pel

    pel Активный пользователь

    С нами с:
    19 янв 2007
    Сообщения:
    569
    Симпатии:
    0
    Адрес:
    Симферополь
    Index - с большой буквы? Переименуй с маленькой. Независимо от того, поможет или нет :)
     
  5. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    у тебя Smarty не находит шаблон.

    проверь еще раз имена. внимательно
     
  6. Anonymous

    Anonymous Guest

    Какого Х путь через http указан?
    Это нафига указано?
    А товарищам DarkElf-у и pel-у советую читать ошибку внимательней...
     
  7. .50

    .50 Активный пользователь

    С нами с:
    7 июн 2006
    Сообщения:
    136
    Симпатии:
    0
    Адрес:
    СПб
    Я шокирован. С моим любимым поросенком так обращаться. Мерзость...

    PHP:
    1. require_once('./Smarty/Smarty.class.php');
    2.  
    3. $smarty = new Smarty();
    4.  
    5. $smarty->template_dir = './Smarty/templates/'; //! $smarty->display('index.tpl');
    6. $smarty->compile_dir = './Smarty/templates_c/';
    7. $smarty->config_dir = './Smarty/configs/';
    8. $smarty->cache_dir = './Smarty/cache/';
    9.  
    10.  
    11.  
    12. $smarty->display('index.tpl'); //Стандартный, я пользуюсь index.tpl.php
    13.  
    Для обхода массива лучше пользоваться {section}

    Вообще Smarty "любит" когда все параметры заданы жестко. Это позволяет избежать ошибок в будущем. Как перенос с платформы на платформу…
     
  8. pel

    pel Активный пользователь

    С нами с:
    19 янв 2007
    Сообщения:
    569
    Симпатии:
    0
    Адрес:
    Симферополь
    а я не про ошибку, я про Index.tpl.html :)
    Ведь, все равно, правильно - создавать файлы и писать их имена в скрипте в одном регистре. :?

    :)эх, если б я всегда с первого раза внимательно писал скрипты,.. мне б неинтересно было програмить вообще без ошибок:)
     
  9. .50

    .50 Активный пользователь

    С нами с:
    7 июн 2006
    Сообщения:
    136
    Симпатии:
    0
    Адрес:
    СПб
    То есть:
    Код (Text):
    1.  
    2. {section name=vol loop=$GOODS}
    3. <tr>
    4.  <td>{$GOODS[vol]}</td>
    5.  <td>{$name[vol]}</td>
    6.  <td>{$url[vol]}</td>
    7. </tr>
    8. {/section}
     
  10. draak

    draak Guest

    Блеееее
    PHP:
    1. function mysql2smarty($sql, $append, $smarty)
    2.   {
    3.     $db_s = mysql_query($sql);
    4.     while($s = mysql_fetch_array($db_s))
    5.     $smarty->append($append, $s);
    6.   }