Vypsání tří polí na stránku
- weckho
- Člen | 94
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
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
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.
- hurvajs
- Člen | 86
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.
- Ondřej Mirtes
- Člen | 1536
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 :)
- Ondřej Mirtes
- Člen | 1536
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.