Autor Zpráva
Rada
Profil *
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
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
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
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 *
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 *
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
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 *
nahradil jsem to MySQL_Fetch_Row
Rada
Profil *
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
nightrider
Profil
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]"; ?>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: