Vypsání tří polí na stránku

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
weckho
Člen | 94
+
0
-

Ahoj,

mám tři pole – $datumy, $popisky a $id. První z nich vypisuji takto:

{foreach $datumy as $datum}
<li>{$datum} - </li>
{/foreach}

Jenomže potřebuji ještě za ty datumy (za pomlčku) vypsat jejich popisky a id (tyto informace jsou v těch dalších 2 polích). Nevím, jak na to. Mohl by mi, prosím, někdo poradit?

Díky moc.

Vitek Jezek
hledá kolegy | 285
+
0
-

ahoj,
pokud to chapu dobre, tak by slo:

<?php
{foreach $datumy as $k=>$datum}
<li>{$datum} - {$id[$k]}{$popisky[$k]}</li>
{/foreach}
?>

za predpokaldu, ze maji stejny klic. Jinak bych si vypomohl nejakym array_shift.

Ondřej Mirtes
Člen | 1536
+
0
-

Predpokladam, ze ty data prenasis z databaze, v tom pripade by sis je mel najoinovat, abys je mel na stejnem radku. Zkratka si pripravit strukturu tak, aby v sablone nemusela byt takovato slozita logika.

weckho
Člen | 94
+
0
-

Díky moc za radu, Vítku, funguje to. To, že bych si měl data nachystat už při vytažení z DB, vím, jenom mi přišlo tohle jednodušší, než se zamotat v tom složitym dotazu :)

Majkl578
Moderator | 1364
+
0
-

weckho napsal(a):
jenom mi přišlo tohle jednodušší, než se zamotat v tom složitym dotazu :)

Tak s tímhle nesouhlasím. Raději trochu složitější dotaz než 5× v šabloně psát složité cykly pro výpis tří různých polí (které reprezentují jednu hodnotu).

hurvajs
Člen | 86
+
0
-

Majkl578 napsal(a):

Tak s tímhle nesouhlasím. Raději trochu složitější dotaz než 5× v šabloně psát složité cykly pro výpis tří různých polí (které reprezentují jednu hodnotu).

Souhlasim presne s tim co psal Majkl578. Co jde pripravit primo pomoci databaze, je to urcite lepsi. Nektere veci je opravdu lepsi vytahovat z DB uz upravene. Treba pred cca pred rokem jsem optimalizoval jeden sportovni web a jednu stored proceduru jsem psal skoro 4 dny – byla na 300 a vrati mi primo to co potrebuji, takze nemusim, s prominutim jako blbec jeste delat komplikovane vypisy na urovni PHP – je to zbytecne.

redhead
Člen | 1313
+
0
-

Navíc pokud se stane, že to budeš muset vypisovat ještě v dalších šablonách bude to psaní navíc. Úprava v dotazu z db je univerzální a stačí vždy jeden foreach.

Ondřej Mirtes
Člen | 1536
+
0
-

Dřív (v temných dobách v čistém PHP) jsem také dělal např. zjišťování kategorie článku přes dva SELECTy. Ale JOINy jsou návykové a opravdu se vyplatí naučit pokročilé (jestli vůbec jde joinování zařadit mezi pokročilé) vlastnosti SQL.

Teď už píšu dotazy na 30 řádků, které spojují třeba 5 tabulek a ještě všelijak výsledek groupují, a je to opravdu praktické, takže bych se, být tebou, nebál vstoupit do neznámých vod :)

Jod
Člen | 701
+
0
-

Bohužiaľ niekedy sa človek tomu nevyhne, hlavne keď join spraví 5 násobnú záťaž na databázu než dve selecty.

Minule som robil query na 250 riadkov a to bol teda elektrošok na databázu :D

Majkl578
Moderator | 1364
+
0
-

Jod napsal(a):

Bohužiaľ niekedy sa človek tomu nevyhne, hlavne keď join spraví 5 násobnú záťaž na databázu než dve selecty.

Minule som robil query na 250 riadkov a to bol teda elektrošok na databázu :D

Tak pořád ale může model vracet už upravené pole, ne? :)

Ondřej Mirtes
Člen | 1536
+
0
-

Je pravda, že ty velké dotazy trvají třeba 20 ms místo 0.00nic ms. To pak řeším pomocí query cache, kdy zaokrouhluji aktuální časový údaj např. na minuty.

iguana007
Člen | 970
+
0
-

Ondřej Mirtes napsal(a):

Dřív (v temných dobách v čistém PHP)......

Souhlas, taky to tak dělám :)