Autor Zpráva
stalker
Profil *
mam dva selecty - do prvniho nacitam nazvy z db do druhyho chci nacitat jen obrazky daneho produktu

struktura db je asi takovato prvni tabulka produkt (id, nazev,.....atd), druha tabulka img_produkt (id_nazev, img) - (jen cesta, ne obrazek). Prosim o radu
Joker
Profil
Nevím, jestli jsem dobře pochopil otázku, ale tak jak jsem to pochopil je to jednoduché:

SELECT ... FROM produkt WHERE id=$id
SELECT ... FROM img_produkt WHERE id=$id

nebo v čem je problém?
stalker
Profil *
jedno upresneni...do id_nazev neukladam id, ale nazev produktu - je to pro me v tuhle chvili takhle lepsi.

prvni select mam takhle

<select style="width:200px "name="id_nazev_smaz"><?php
$result = mysql_query("SELECT * FROM produkt ");
while ($row = mysql_fetch_array($result))

printf ("<option>%s</option>",$row['nazev']);?></select>

do toho z db nacitam nazvy co mam v tabulce produkty

druhy select je takhle

<select style="width:200px" name="img_big_smaz"><?php $result = mysql_query("SELECT * FROM img_produkt ");
while ($row = mysql_fetch_array($result))

printf ("<option>%s</option>",$row['img_big']);?> ?></select>

do toho nacitam obrazky z tabulky img_produkt (chci ale jen ty obrazky co patri tomu nazvu co vyberu v prvnim selectu)

jde mi to, ze vyberu v prvim seznamu nazev, ve druhym prislusne obrazky co tomu nazvu prislusi a smazu ten dany obrazek...
Joker
Profil
jedno upresneni...do id_nazev neukladam id, ale nazev produktu - je to pro me v tuhle chvili takhle lepsi.
To je ovšem chyba. V té druhé tabulce má být id. Takováhle duplicita dat se může dost vymstít v případě změny názvu produktu.

Každopádně ten dotaz by nejspíš měl znít:

SELECT p.nazev AS nazev,i.img_big AS img_big FROM produkt p JOIN img_produkt i ON p.id = i.produkt_id WHERE p.id=$id

Takhle se vybere název a obrázek produktu jediným dotazem. Pokud tedy bude v tabulce img_produkt uložené ID produktu.
stalker
Profil *
To je ovšem chyba. V té druhé tabulce má být id. Takováhle duplicita dat se může dost vymstít v případě změny názvu produktu.
to mam osetreni aby se to zeditovalo i tam
stalker
Profil *
misto "to" patri tam, aby tady nevznikali flamy o prav.chybach :-)
stalker
Profil *
jinak ten dotaz si myslel umisit do toho druhyho selectu?
stalker
Profil *
tak dotaz uz funguje, overil jsem si to vypisem, jen to nemeni ten druhej select podle toho prvyho
pmasarik
Profil
Ja mám len takú doplnujucu otazku aby som správne pochopil čo chceš urobiť...

Maš prvý select a v druhom chceš mať len to čo patrí k prvému selectu? chápem dobre?
A ty chceš dosiahnuť to aby sa ti pri zmene prvého selectu zmenil obsah druhého?
Joker
Profil
ad používání názvu místo ID: No, ono to mezi základními pravidly návrhu relační databáze asi nebude jen tak pro legraci.
Třeba se to nevymstí hned a u tohohle skriptu, ale dřív nebo později...

jinak ten dotaz si myslel umisit do toho druhyho selectu?
Ne, žádný druhý by už nebyl, byl by jenom tenhle jeden.

Doufám, že jsem tedy správně pochopil ten dotaz, ale výsledkem toho dotazu:
SELECT p.nazev AS nazev,i.img_big AS img_big FROM produkt p JOIN img_produkt i ON p.id = i.produkt_id WHERE p.id=$id

bude bude pro vybraný produkt jeho název a jeho obrázek. Podmínku jde samozřejmě upravit, pak by to mohlo vracet seznam produktů a jejich obrázků (případně další sloupce, tohle je jen příklad)
stalker
Profil *
pmasarik

ano, presne tak
pmasarik
Profil
Tak to sa dá jedine tak že obsah prvého selectu odošleš na server, aby si zistil čo máš zobraziť v tom druhom.
Ak to potrebuješ urobiť bez reloadu stránky tak jedine JS inak sa to nedá.

Kukni napr. toto:
http://www.mattkruse.com/javascript/dynamicoptionlist/index.html

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: