Autor Zpráva
vlado
Profil *
Ahoj. Našel jsem na netu tenhle způsob:

v PHP
$rows = array();
while ($rows[] = mysql_fetch_assoc($result)) {}
$smarty->assign('rows', $rows);

ve SMARTY
{foreach from=$rows item=row}
     {$row.name}
{/foreach}
a chci se zeptat jestli je to ten nejlepší způsob... protože takhle se vlastně stanou ty cykly dva místo jednoho. Jeden na straně php když se plní pole tim while. while ($rows[] = mysql_fetch_assoc($result)) {} a pak ještě další for cyklus ve SMARTY {foreach from=$rows item=row}. Takhle se to má dělat?
Alphard
Profil
Máte pravdu, že z hlediska maximální optimalizace to není ideální. Na druhou stranu, z návrhového pohledu je lepší předávat do šablony čistá data, než odkaz na nějakou databázovou instanci.
Často se to takhle dělá, je to jednodušší, při běžných výpisech to není problém.
vlado
Profil *
A jak by se to dalo uděalt jak jste psal odkaz na nějakou databázovou instanci ?
Alphard
Profil
V nejjednodušším případě předat přímo $result a funkci mysql_fetch_assoc() spolu s while mít až v šabloně. Vylepšené řešení je zabalit to do databázové vrstvy, která zpřístupní data přes nějakou metodu fetch() apod.
vlado
Profil *
Jo jakože budu do databáze se připojej jakože smarty jo? to de? nemůžete ukázat nějaký příklad, jsem v tom začátečník.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: