Autor | Zpráva | ||
---|---|---|---|
milan.lipka Profil * |
#1 · Zasláno: 26. 8. 2008, 20:56:03
Zdravím,
mám tabuľku: CREATE TABLE `kategorie` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `nazov` VARCHAR(100) NOT NULL DEFAULT '', `sub` INT(11) NOT NULL DEFAULT 0, PRIMARY KEY(`id`) ); a chcel by som z nej vybrať zoznam hlavných kategórii (vtedy keď hodnota v sub je 0) a 5 subkategórii pre každú kategóriu (hodnota sub je id supkategórie). Doteraz som to robil pomocou jedného selectu + pri každej kategórii ďalší select ktorý vybral subkategórie. Ale toto asi nie je najlepšie riešenie a preto hľadám ako to dať do jedného mysql_query. Doterajší spôsob: $res = mysql_query("SELECT * FROM kategorie WHERE sub = 0"); while ($row = mysql_fetch_array($res)) { echo ...; $res_ = mysql_query("SELECT * FROM kategorie WHERE sub = '".$row['id']."' LIMIT 5"); while ($row_ = mysql_fetch_array($res_)) { echo ...; } } Vedel by mi niekto poradiť lepšie riešenie? Vďaka |
||
somebody Profil |
#2 · Zasláno: 27. 8. 2008, 00:08:54
To logicky nejde, udělat dva selecty na výpis v jednom while musí to jít takto jak to mu máte.
Tzn jedním while kategorie a v něm zanořený druhý while pro subkategorie. |
||
Kajman_ Profil * |
#3 · Zasláno: 27. 8. 2008, 07:42:34
Můžete zkusit něco jako
select k1.nazov hlavni, k2.nazov pohlavni from kategorie k1 left join kategorie k2 on k1.id=k2.sub where k1.sub=0 order by k1.nazov,k2.nazov A upravíte si while tak, že hlavní kategorii vypíšete jen když bude jiná než minulá hlavní. A klidně můžete i ignorovat víc podkategorií než 5. |
||
Časová prodleva: 16 let
|
0