Autor | Zpráva | ||
---|---|---|---|
andy_y Profil * |
#1 · Zasláno: 22. 4. 2008, 10:19:58
Ahoj
Ve smarty potřebuji vypsat toto: $result = $sql->res("SELECT * from sys_categories ORDER BY name ASC"); while($row = $sql->fetchRow($result)){ $result2 = $sql->res("SELECT neco WHERE kategorie = '$row[cat]' "); $row2 = $sql->fechRow($result2); } Jeden SQL dotaz ve Smarty zvládnu, a to takhle: $result = $sql->res("SELECT * from sys_categories ORDER BY name ASC"); while($row = $sql->fetchRow($result)){ $vys[] = $row; } $smarty->assign("vypis", $vys); Což potom vypisuji takto: {foreach from=$vypis key=i item=row} {$row.0} {/foreach} Jak do toho, ale zakomponovat i ten druhý dotaz? |
||
Warden Profil |
#2 · Zasláno: 22. 4. 2008, 14:00:45
já bych tedy změnil ten dotaz na jeden, ale určitě by to šlo i se dvěma dotazy...jen si nenapsal, jak by sis představoval, že by to mělo vypadat...ten přístup k proměnné ve smarty
|
||
andy_y Profil * |
#3 · Zasláno: 22. 4. 2008, 14:52:31
Také že to tak většinou řeším, jenže někdy to přes jeden dotaz nejde, nebo si to alespoň myslím.
Představoval bych si to asi takto: $result = $sql->res("SELECT * from sys_categories ORDER BY name ASC"); while($row = $sql->fetchRow($result)){ $vys[] = $row; $result2 = $sql->res("SELECT neco WHERE kategorie = '$row[cat]' "); $row2 = $sql->fechRow($result2); } $smarty->assign("row1", $vys); $smarty->assign("row2", $row2); {foreach from=$row1 key=i item=row1} Stl.tabulka 1 = {$row1.0} Stl.tabulka 2 = {$row2.0} {/foreach} |
||
ninja Profil |
#4 · Zasláno: 22. 4. 2008, 15:19:21
andy_y: Pozadovany dotaz jde jednoduse udelat pres jeden SELECT pomoci synataxe JOIN, je to jednoducha vazba 1:n.
|
||
andy_y Profil * |
#5 · Zasláno: 22. 4. 2008, 22:54:45
ninja
já neřikám že nejde, říkám že v některých případech. Toto byl pouze náznak toho co bych chtěl na výstupu. Dokáže někdo poradit? |
||
ninja Profil |
#6 · Zasláno: 23. 4. 2008, 00:24:49
Vysledky obou dotazu si ukladej do jednoho vicerozmerneho pole:
$vysledek[$counter]['row1'] = $row; $vysledek[$counter]['row2'][] = $row2; a pak to vypis ve smarty: {foreach from=$ysledek key=i item=row1} Stl.tabulka 1 = {$row1[$i].0} {foreach from=$row1[$i].row2 item=row2} Stl.tabulka 2 = {$row2.0} {/foreach} {/foreach} |
||
Časová prodleva: 16 let
|
0