Portál AbcLinuxu, 7. května 2025 04:34

Dotaz: Výpis pole z databáze do SMARTY

30.9.2013 16:02 vlado
Výpis pole z databáze do SMARTY
Přečteno: 1119×
Odpovědět | Admin
Ahoj řeim tiuhle věc :

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?

Jinde jsem dostal tuhle odpověď, ale bez dalšího vysvětlení to vůbec nechápu : "Vylepšené řešení je zabalit to do databázové vrstvy, která zpřístupní data přes nějakou metodu fetch() apod."

Děkuji

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Tarmaq avatar 30.9.2013 16:39 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Výpis pole z databáze do SMARTY
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ano, toto je spravne reseni. V sablone uz bys mel jen zpracovavat data, nikoliv fetchovat data z databaze.
Don't panic!
30.9.2013 17:00 vlado
Rozbalit Rozbalit vše Re: Výpis pole z databáze do SMARTY
No ale ten cyklus tam proběhne dvakrát prostě... bez smartů by tam proběhl jednou... kdybych dělal třeba cyklus s tisícovkou záznamů (coř nedělám ale příklad) tak to bude 1000 x 2 pro každej výpis.
30.9.2013 17:20 Kit
Rozbalit Rozbalit vše Re: Výpis pole z databáze do SMARTY
Režie cyklů je proti režii smarty zcela zanedbatelná.
30.9.2013 20:00 vlado
Rozbalit Rozbalit vše Re: Výpis pole z databáze do SMARTY
Dobře no. tak se tim tedy nebudu trápit. tak děkuji :)
6.10.2013 19:41 Logik
Rozbalit Rozbalit vše Re: Výpis pole z databáze do SMARTY
Pokud bys chtěl optimalizovat, tak správná cesta je dostat data nikoli do pole, ale do lazy iterátoru, kterej se načte až v průběhu vytváření pole. Ale to má opodstatnění v okamžiku, kdy bys iteroval tisíce záznamů, u pohledu s deseti záznamy to opravdu nemá smysl řešit.
10.10.2013 00:13 vlado
Rozbalit Rozbalit vše Re: Výpis pole z databáze do SMARTY
No jde spíš o to, že než bych potřeboval 1000 záznamů, tak že třeba budu volat řekněme 20 znáznamů, ale hodně často.
Tarmaq avatar 10.10.2013 08:48 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Výpis pole z databáze do SMARTY
co znamena volat 20 zaznamu? 20x se dotazat databaze na stejna data? V tom pripade si ty data cachuj..
Don't panic!
Tarmaq avatar 10.10.2013 08:53 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Výpis pole z databáze do SMARTY
*co znamena volat hodne casto 20 zaznamu? hodne casto se dotazat databaze na stejna data? V tom pripade si ty data cachuj..
Don't panic!
11.10.2013 16:05 logik
Rozbalit Rozbalit vše Re: Výpis pole z databáze do SMARTY
U dvaceti záznamů je úplně jedno, jestli je nejdřív načteš a pak vyplivneš, nebo jestli je zpracováváš proudově. Samozřejmě, druhé výkonnější je, ale v celkové režii PHP to nepoznáš.
Řešení 1× (Dejv)
1.10.2013 20:41 Dejv | skóre: 37 | blog: Jak ten blog nazvat ... ? | Ostrava
Rozbalit Rozbalit vše Re: Výpis pole z databáze do SMARTY
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj.
  1. This extension is deprecated as of PHP 5.5.0, and will be removed in the future. viz http://php.net/manual/en/function.mysql-fetch-assoc.php
  2. PDOStatement::fetchAll viz http://www.php.net/manual/en/pdostatement.fetchall.php
Pevně věřím, že zkušenější uživatelé mě s mými nápady usměrní a pošlou tam, kam tyto nápady patří...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.