Autor | Zpráva | ||
---|---|---|---|
Rada Profil * |
#1 · Zasláno: 15. 6. 2008, 12:03:38
zdravím potřeboval bych poradit na sql dotaz.
mam tabulku seznam která obsahuje tyto sloupce id,kategorie,podkategorie,produkt a data jsou tama uložena takto 1 1 1 2 2 1 2 2 3 2 1 2 4 5 1 3 pak mam tabulku kategorie která obasuje id, nazev a data jsou tama uložena takto 1 TV 2 PC 3 Notebook pak mam ještě tabulku subkategorie která obasuje id, nazev a data jsou tama uložena takto 1 LCD 2 LCD s TV 3 Monitor 19" a ja bych potřeboval vytvořit takovy dotaz, aby se mi zobrazil prokukt (id=2) že je patří do kategoire TV (id=1) a subkategorie LCD (id=1) a další řakdy kde všude patří. A nevím jak to udělat moje první myšlenka byla přes while ale to vypislovalo několikrat za sebou to same...tak proto se obracím na odborníky.. |
||
Alphard Profil |
#2 · Zasláno: 15. 6. 2008, 12:24:26
zkus tohle
select k.nazev, s.nazev from seznam z left join kategorie k on z.kategorie = k.id left join subkategorie s on z.podkategorie = s.id where z.produkt = 2 |
||
lordfrikk Profil |
#3 · Zasláno: 15. 6. 2008, 12:27:37 · Upravil/a: lordfrikk
Něco takového?
SELECT b.nazev as Kategorie, c.nazev as Subkategorie FROM seznam a JOIN kategorie b ON a.kategorie = b.id JOIN subkategorie c ON a.podkategorie = c.id WHERE a.id = 2 |
||
joe Profil |
#4 · Zasláno: 15. 6. 2008, 12:28:16 · Upravil/a: joe
SELECT seznam.*, kategorie.*, subkategorie.* FROM seznam LEFT JOIN kategorie ON seznam.kategorie = kategorie.id LEFT JOIN subkategorie ON seznam.subkategorie = subkategorie.id WHERE seznam.produkt = 2;
Asi takto ;-) |
||
Rada Profil * |
#5 · Zasláno: 15. 6. 2008, 13:28:34
všem děkuji za ochotu pomoct...vybral jsem si verzi od Joe protože tam asi vybira všechny prvky..ale i tak si s tím nevím moc rady chtěl bych požadat o nějaký rozbor...protože jsem na začatku uvdel špatny nazev tabulky seznam ona se to jmenu seznam_produkt ale když to přepíšu tak mi to hazi errory...snažím se o to...
$produkty=MySQL_Query("SELECT * FROM seznam_produkt "); while ($produkt = mysql_fetch_array($produkty)) { $qury=MySQL_Query("SELECT seznam.*, kategorie.*, subkategorie.* FROM seznam_produkt LEFT JOIN kategorie ON seznam.kategorie = kategorie.id LEFT JOIN subkategorie ON seznam.subkategorie = subkategorie.id WHERE seznam.produkt = 2 "); $zaznam=MySQL_Fetch_Row($qury); echo $zaznam[0]."-".$zaznam[1]."-".$zaznam[2]; |
||
Rada Profil * |
#6 · Zasláno: 15. 6. 2008, 13:41:45
povedlo se mi zprovozni od lordfrikk jen mam problém že se mi to tam obějemuje několikrat
Monitory-LCD s TV Monitory-LCD s TV Monitory-LCD s TV Monitory-LCD s TV Monitory-LCD přítom bych potřeboval aby se mi to oběvilo tak to Monitory-LCD s TV Monitory-LCD |
||
joe Profil |
#7 · Zasláno: 15. 6. 2008, 13:43:28
Rada
Myslim, že ten while je tam úplně zbytečně. Použil jsem v zápisu *, protože nevím které sloupce chceš vybírat. Rozhodně ale nedoporučuju vybírat všechno. |
||
Rada Profil * |
#8 · Zasláno: 15. 6. 2008, 14:25:48
nahradil jsem to MySQL_Fetch_Row
|
||
Rada Profil * |
#9 · Zasláno: 15. 6. 2008, 16:37:18
tak jsem to už rozchodil ale mam problem vysledkem jsem dostaal tot
Monitory-LCD s TV Monitory-LCD a já bych ještě potře boval aby výsledek byl Monitory -LCD s TV -LCD |
||
Časová prodleva: 7 měsíců
|
|||
nightrider Profil |
#10 · Zasláno: 22. 1. 2009, 09:36:08
Dobrý den, mám stejnej problém a pokusil jsem se o radu joe,ale vypisuje mi nesmysli :-(
0.73 | kde dělám chybu? <?php $produkty=MySQL_Query("SELECT * FROM seznam"); $qury = MySQL_Query("SELECT seznam.*, kategorie.*, subkategorie.* FROM seznam LEFT JOIN kategorie ON seznam.kategorie = kategorie.id_kategorie LEFT JOIN subkategorie ON seznam.subkategorie = subkategorie.id"); $zaznam = MySQL_Fetch_Row($qury) or print("<center><div class=\"error\"><b>Došlo k chybě v dotazu:</b> ".$q. "" .mysql_error())."</div></center>"; echo "$zaznam[0]."-".$zaznam[1]."-".$zaznam[2]"; ?> |
||
Časová prodleva: 15 let
|
0