Autor | Zpráva | ||
---|---|---|---|
Sal!k Profil * |
#1 · Zasláno: 12. 1. 2008, 20:27:35
Caw,
mam 2 tabulky ... sekce: id name podsekce id id_sekce name a při vypisu by jsem potreboval aby sa me vypsala sekce a hned pod tim podsekce podle id_sekce ... |
||
Sal!k Profil * |
#2 · Zasláno: 12. 1. 2008, 20:32:19
v podstate chcu aby sa vypsala sekce a hned ktemu podsekce podle id te sekce ... a porad do kola ...
|
||
BetaCam Profil |
#3 · Zasláno: 12. 1. 2008, 23:07:18
To de udelat ruznejma způsobama. Jeden z nich je třeba dva loopy neco jako
$query = mysql_query('SELECT id, name FROM sekce'); while($row = mysql_fetch_object($query)) { echo $row->name; $query2 = mysql_query('SELECT id, id_sekce, name FROM podsekce WHERE id_sekce = '.$row->id); while($row2 = mysql_fetch_object($query2)) { echo $row2->name; } } ale více či méně záleží na situaci. |
||
Mastodont Profil |
#4 · Zasláno: 13. 1. 2008, 08:08:11
Spíš načíst všechno jedním join dotazem order by id_sekce a ten pak procházet.
|
||
BetaCam Profil |
#5 · Zasláno: 13. 1. 2008, 22:58:10
Mastodont
Spíš načíst všechno jedním join dotazem order by id_sekce a ten pak procházet. Jiste to je také jedna z možností tam je pak ovšem složitější konstrukce pro vypisování. |
||
Mastodont Profil |
#6 · Zasláno: 13. 1. 2008, 23:05:24 · Upravil/a: Mastodont
Jistě, ovšem je to lepší než možných iks desítek dotazů do db ... viz
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=6&topic=64 014 :-)) |
||
BetaCam Profil |
#7 · Zasláno: 13. 1. 2008, 23:19:55
Mastodont
Jistě, ovšem je to lepší než možných iks desítek dotazů do db ... viz Samozdřejně proto sem také hned v mém prvním postu napsal, že možností je spousty. U návrho každé aplikace je nutné zamyslet se nad tím k jakému účelu bude sloužit a pro jaké množství dat je ten kód určen. Pokud budu mít 1000 kategorií je jasné, že upřednostním kód kderý nebude posílat 1000+ dotazů na DB. Popravdě sem ten první příklad uvedl hlavně proto, že je nejjednodušší a nejkratší na psaní. :) |
||
ninja Profil |
#8 · Zasláno: 13. 1. 2008, 23:21:04 · Upravil/a: ninja
BetaCam: to co navrhujes rozhodne neni vhodne.
Sal!k: SELECT ...CO_POTREBUJES... FROM sekce LEFT JOIN podsekce ON sekce.id = podsekce.id_sekce ORDER BY sekce.id, podsekce.id_sekce; |
||
BetaCam Profil |
#9 · Zasláno: 13. 1. 2008, 23:47:35
ninja
Ach jo tak znovu. To co navrhujes rozhodne neni vhodne. Já sem někde říkal, že je to vhodné?? Ne neříkal! Pouze sem řekl, že je to jedna z možností. Ten kód co sem napsal je "nejrychlejší" ( myslím tím na psaní ne na dobu zpracování či vytížení serveru ) řešení. Další podrobnosti viz můj předchozí post. SELECT ...CO_POTREBUJES... FROM sekce LEFT JOIN podsekce ON sekce.id = podsekce.id_sekce ORDER BY sekce.id, podsekce.id_sekce; Tohle je pěkné query, ale četl si co vlastně tazatel chtěl?? Si si opravdu jist, že toto query opravdu vypíše tazatelovi na obrazovku něco jako: Sekce 1 Podsekce1 Podsekce2 Sekce 2 Podsekce 1 Podsekce 2 Podsekce 3 atd... Já bych řekl, že ne. Maximálně mu tak vrátí Resource. Napiš tedy řešení výpisu dat z tvého dotazu. Ano já se přiznal byl sem línej tady toto řešení psát, ale napsal sem jiné, které ten problém řeší. ( O optimálnosti se nebudu dohadovat viz. předchozí posty ) A co si napsal ty?? Select, kterej ten problém vůbec neřeší. Napsal si jak vydolovat data, ale né jak je vypsat. Hooah |
||
ninja Profil |
#10 · Zasláno: 14. 1. 2008, 00:14:33
BetaCam: Omlouvam se jestli to vyznelo jako utok na tebe. To nebyl zamer. Jen jsme naznacoval ze pro dany ukol neni rozumne delat X dotazu na databazi, kdyz staci jeden.
PHP kod si Sal!k snad vytvori sam. |
||
BetaCam Profil |
#11 · Zasláno: 14. 1. 2008, 00:19:39
ninja
Jen jsme naznacoval ze pro dany ukol neni rozumne delat X dotazu na databazi, kdyz staci jeden. Ano stim souhlasim ovšem sem línej zde toto řešení psát. :) PHP kod si Sal!k snad vytvori sam. No popravdě ze Sal!kova postu to bez urážky moc nevypadá, že by si ho byl schopnej vytvořit sám. :) |
||
ninja Profil |
#12 · Zasláno: 14. 1. 2008, 09:54:12
BetaCam: pokud si to Sal!ik nenapise sam, tvuj kod mu taky nepomuze, protoze tam neni kod s pripojenim k MySQL :0).
|
||
BetaCam Profil |
#13 · Zasláno: 14. 1. 2008, 13:24:37
ninja
pokud si to Sal!ik nenapise sam, tvuj kod mu taky nepomuze, protoze tam neni kod s pripojenim k MySQL Myslim, že pokud pracuje s DB zná základní věci jako je pripojování k DB a select DB. Vetší pochybnosti mám o tom jestli dokáže napsat kód pro výpis dat ve formátu, kterej chce. :) |
||
Časová prodleva: 2 měsíce
|
|||
milbr Profil * |
#14 · Zasláno: 27. 3. 2008, 21:20:59
Pěkný večer,
po kratším hledání jsem nalezl tutu problematiku, kterou bych také potřeboval vyřešit. Vyzkoušel jsem SELECT category.nadpiscategory, category.parent, product.parent, product.nazev FROM category inner join product ON category.parent = product.parent a vypisuji { while ($producty=MySQL_Fetch_Array($zbozi)): echo " ".$producty["nadpiscategory"]."<br> ".$producty["nazev"]." " ; endwhile; }; Vše se vypíš ale chtěl bych Vás poprosit o radu jak upravit SELECT nebo výpis aby se mi z category vypsal jen jeden nadpis a pod něj produkty atd. tak jak to uvádí Sal!k Tímto způsobem mám vypsáno nadpis nazev nadpis nazev nadpis nazev atd. Děkuju moc za pomoc Díky Milan |
||
Časová prodleva: 16 let
|
0