Autor | Zpráva | ||
---|---|---|---|
Akacko Profil |
#1 · Zasláno: 2. 12. 2006, 14:18:42 · Upravil/a: Akacko
sry za nepřesny nazev topicu... ale teď k problemu
jedna se o menu typu Nadpis A - položka 1 - položka 2 Nadpis B - položka 3 - položka 4 ... v databazi mam uložene nadpisy i položky zvlašť v tabulkach. nyni bych potřeboval udělat dotaz(y) na vypis a hlavně uspořadani menu tak, jak jsem to zobrazil nahoře. Netušim však, jak zabranit takovemu to vypisu: Nadpis A - položka 1 Nadpis A - položka 2 Nadpis B - položka 3 Nadpis B - položka 4 máte nějake napady? použivam mysql databazi, počat nadpisu a položek neni určity (da se jen spočitat pomoci dotazu). Budu vděčny za jakekoliv návrhy. |
||
pmasarik Profil |
#2 · Zasláno: 2. 12. 2006, 15:50:48
Nepoznám tvoju DB ale ja to robím takto.
V mojom príklade mám jednu tabulku kde sú názvy športov + id športu a v druhej tabulke je referencia pre daný šport, ktorá má vlastné id a id športu ku ktorému patrí. Toto by malo byť logické (teda aspoň dúfam)
|
||
Akacko Profil |
#3 · Zasláno: 2. 12. 2006, 16:54:36
mohl bys mě ještě trochu zasvětit do toho INNER JOIN - USING .
Trochu jsem Googloval, ale moc jsem to nepochopil. ten tvůj kod jsem přepsal do pro mě přijatelnějši formy :) <? $skupina_prev = 0; $sql =mysql_query("SELECT menu.id_menu, menu.name_menu, menu.category_id FROM menu INNER JOIN submenu USING (menu_id)"); while ($row=mysql_fetch_array($sql)): if ($skupina_prev != $row['menu_id']) { echo '<dt>'.$row['name_menu'].':</dt>'.NL; $skupina_prev = $row['menu_id']; } if (isset($row['id_smenu'])) { echo '<dd>'.$row['name_smenu'].'</dd>'.NL; } endwhile; ?> pro větši pochopeni přikladam tabulky... create table menu ( id_menu int not null auto_increment, name_menu varchar(200) not null, category_id int not null, PRIMARY KEY(id_menu) ); create table submenu ( id_smenu int not null auto_increment, name_smenu varchar(200) not null, menu_id int not null, PRIMARY KEY(id_smenu) ); |
||
pmasarik Profil |
#4 · Zasláno: 2. 12. 2006, 17:48:26
Niečo viac o JOIN - http://www.linuxsoft.cz/article.php?id_article=837
Je to trochu zložitejšie ale ak zistíš ako to funguje tak je to jednoduché... A USING je len iný (jednoduchší) zápis pre toto:
V tom tvojom príklade máš namiesto mysql_fetch_assoc použité mysql_fetch_array takže ti to nepôjde, inak by ti to malo fungovať. Pre lepšie pochopenie skús daný SQL vložiť v PhpMyAdminovy do sql konzole, aby si zistil aké data ti to vracia. |
||
Akacko Profil |
#5 · Zasláno: 2. 12. 2006, 17:51:08
no na netu jsem se dočetl, že mysql_fetch_assoc je ekvivalent mysql_fetch_array
jinak diky za vysvětleni... si to teď přečtu, snad to nějak spojim ... |
||
pmasarik Profil |
#6 · Zasláno: 2. 12. 2006, 18:05:36
A fakt, máš pravdu to som si doteraz ani nevšimol :-)
|
||
Akacko Profil |
#7 · Zasláno: 2. 12. 2006, 18:21:40
SUPER!!!!! konečně po 8 hodinach jsem to zkutil, ba co vic, porozuměl jsem!!!!!
diky... maš u mě velke, opravdu velke pivo!!! |
||
pmasarik Profil |
#8 · Zasláno: 2. 12. 2006, 18:46:45
Nemáš začo, možno sa to dá aj jednoduchšie, ale ja som prišiel niekedy na toto riešenie a tak ho používam...
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0