Предложете темплейт енджин

От: Предложете темплейт енджин

$sql = $dbh->query("SELECT * FROM table WHERE id= '{$id}'");
$rows = $sql->fetchAll(PDO::FETCH_ASSOC);
$smarty->assign('rows_view',$rows);
в темплейта:
<h1>{$rows_view.title}</h1>
И не визуализира нищо, някакви насоки?
 
От: Предложете темплейт енджин

$rows = $sql->fetchAll(PDO::FETCH_ASSOC);
Трябва да ти върне нещо такова

Код:
 [0] => Array
        (
            ['title'] => 'Title 1'
           
        )

    [1] => Array
        (
            ['title'] => 'Title 2'
        )

Включи дебуг мода и виж какво има в $rows или просто echo count($rows), ако имаш записи трябва да ги обходиш с foreach
Код:
{foreach $rows_view as $row} 
 {$row.title}  
{/foreach}
 
От: Предложете темплейт енджин

Здравей,
ако искаш да вземеш само един резултат (ред от таблицата), поне така изглежда от дадената заявка, използвай
fetch() метода. fetchAll() връща целият резулт сет.
Поздрави,
Константин
 
От: От: Предложете темплейт енджин

Жив и здрав, включих дебъг мода и излезе грешка в SQL заявката, баси филма.
$rows = $sql->fetchAll(PDO::FETCH_ASSOC);
Трябва да ти върне нещо такова

Код:
 [0] => Array
        (
            ['title'] => 'Title 1'
           
        )

    [1] => Array
        (
            ['title'] => 'Title 2'
        )

Включи дебуг мода и виж какво има в $rows или просто echo count($rows), ако имаш записи трябва да ги обходиш с foreach
Код:
{foreach $rows_view as $row} 
 {$row.title}  
{/foreach}
 
От: Предложете темплейт енджин

в темплейта:

И не визуализира нищо, някакви насоки?
Когато търсиш само един резултат, обикновено правиш, както ти каза imagination - ползваш fetch().
Иначе в твоя случай можеш да ползваш първия елемент от масива rows[0]:
PHP:
$smarty->assign('rows_view',$rows[0]);
Можеш да дебъгваш и през тимплейта. Но, според мен, по-лесно е да пуснеш един print_r($rows) или print_r($assign), преди да го подадеш на smarty.
 
От: Предложете темплейт енджин

@uphero колегите също са прави аз не забелязах че търсиш по ID по-добре е да ползваш fetch без да обхождаш с цикъл. Относно грешките, ако си на linux сървър е много вероятно по начало грешките да са изключени провери /etc/php5/apache2/php.ini (ubuntu) display_errors трябва да е = On в секцията Error handling and logging
 
От: Предложете темплейт енджин

аз пък позвам смарти от 8 години и си е много добре, ползвам и твиг, но там има такива бакии че не е истина, предпоръчвам смарти.
 
От: Предложете темплейт енджин

Дай пример с "бакии", че аз май не съм много доволен от смарти-то.
аз пък позвам смарти от 8 години и си е много добре, ползвам и твиг, но там има такива бакии че не е истина, предпоръчвам смарти.
 
От: Предложете темплейт енджин

Предполагам за PHP става въпрос:

2) Smarty: http://www.smarty.net/

Определено Smarty PHP е един от най-предпочитаните енждини. Не е кой знае колко труден за научаване.
 
От: Предложете темплейт енджин

аз пък позвам смарти от 8 години и си е много добре, ползвам и твиг, но там има такива бакии че не е истина, предпоръчвам смарти.

Не разбрах, препоръчваш смарти, само защото си го ползвал 8 години ли :) twig е сравнително нов темплейт енджин, и (може би) само заради това не е толкова използван колкото Smarty.

пп и на мен ми е много интересно какво се подразбира под "бакии". За мен лично над година използване на Twig - досега не мога да се оплача от нищо.
 
От: Предложете темплейт енджин

Аз се бях заглеждал по едно по-простичко RainTPL, ама така и не го приложих. В един момент реших да си направя личен PHP framework, който да не включва никакви външни разработки.

Оглеждам се обаче за алтернативи, взе да ми допада повече да изхвърля някакъв масив с данни към Javascript, па той да се оправя с генерирането на HTML. Проблема е, че това нещо е грозно, но не искам да вкарвам допълнителни скрипто-кръпки само за да направят нещата малко по-красиви.
 
От: Предложете темплейт енджин

Аз се бях заглеждал по едно по-простичко RainTPL, ама така и не го приложих. В един момент реших да си направя личен PHP framework, който да не включва никакви външни разработки.

Оглеждам се обаче за алтернативи, взе да ми допада повече да изхвърля някакъв масив с данни към Javascript, па той да се оправя с генерирането на HTML. Проблема е, че това нещо е грозно, но не искам да вкарвам допълнителни скрипто-кръпки само за да направят нещата малко по-красиви.
Е не за всичко, но идеята изобщо не е лоша. Много грид системи използват точно такъв тип рендер и е много сполучливо, въобще не може да се каже че е грозно .
 
От: Предложете темплейт енджин

категорично подкрепям идеята да прехвърляш колкото може повече неща да се рендват с jquery или каквото там си решиш. Доста може да разтовариш сървъра. И както каза Replace - хич не е грозно.
 
От: Предложете темплейт енджин

За сървъра не знам, но като започнат да се бъркат много езици, файлове и формати, то си става каша.

Под грозно разбирам нещо такова:
PH1KRLH.png

... и то основно защото не се оцветява кода като html, трудно се подрежда и редактира. Другия вариант дето се създават таговете динамично пък съвсем не ми харесва.
 

Горе