Specificky SQL/PHP problem

Programovacie jazyky, rady, poradňa...
Nadeo
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2202
Registrovaný: 04 nov 2006, 19:38
Bydlisko: BA/LV
Kontaktovať používateľa:

Specificky SQL/PHP problem

Príspevok od používateľa Nadeo »

Caute, mam taky problem.. robime projekt do skoly a ako idiot som si vymyslel take zadanie ktore neviem nakodit :D

Mam tri tabulky v DB:
Recepty: id_recept | meno | popis | obrazok
Recept_surovina: id_rs | id_recept | id_surovina
Suroviny: id_surovina | meno | obrazok

Ide o to, ze user si zvoli ktore ma doma suroviny a ma mu to vypisat recepty ktore moze pripravit. Takze input su 1 alebo viac ID_SUROVINA. Zobrazit sa maju 3 kategorie receptov:
1. Recepty, na ktore ma vsetky suroviny
2. Recepty, na ktore mu chyba jedna alebo dve suroviny
3. Recepty, na ktore mu chybaju 3 alebo 4 suroviny

Vobec ani neviem aky approach na toto by som mal dat. Viete mi niekto poradit? Dakujem. Ze ci nejaky zlozitejsi SELECT na to vymysliet alebo priamo v kode?
Pilifo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 7001
Registrovaný: 12 okt 2007, 16:41
Kontaktovať používateľa:

Re: Specificky SQL/PHP problem

Príspevok od používateľa Pilifo »

Tento problém by sa mal dať pomerne jednoducho zvládnuť cez JOINy a viacero podmienok na ON stĺpce.

Pozri si detaily o druhoch JOINov a snáď zvládneš z toho vyprodukovať riešenie, ktoré potrebuješ - http://www.w3schools.com/sql/sql_join.asp
Nadeo
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2202
Registrovaný: 04 nov 2006, 19:38
Bydlisko: BA/LV
Kontaktovať používateľa:

Re: Specificky SQL/PHP problem

Príspevok od používateľa Nadeo »

Joiny poznamm, ale v tomto pripade som akosi strateny, nevies to specifikovat? Prave tych "viacero podmienok" mam problem...
aacid
Hardcore addict
Hardcore addict
Príspevky: 8135
Registrovaný: 22 nov 2006, 21:55
Bydlisko: BA

Re: Specificky SQL/PHP problem

Príspevok od používateľa aacid »

select recepty.id, count(recepty.id) from recepty join recept_surovina on recepty.id = recept_surovina.id_recept join suroviny on recept_surovina.id_surovina = suroviny.id where suroviny.id in (x, y, z) group by recepty.id

toto ti vypise vsetky recepty, ktore obsahuju suroviny x, y a z a pocet kolko z tych surovin do toho ide. z toho by si uz mal vediel lahko dorobit tie svoje 3 scenare.
Nadeo
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2202
Registrovaný: 04 nov 2006, 19:38
Bydlisko: BA/LV
Kontaktovať používateľa:

Re: Specificky SQL/PHP problem

Príspevok od používateľa Nadeo »

Diky kamo, si ma vykril teraz. :D Idem ti pivo. Vobec mi nenapadlo COUNT pouzit, dobre riesenie.
aacid
Hardcore addict
Hardcore addict
Príspevky: 8135
Registrovaný: 22 nov 2006, 21:55
Bydlisko: BA

Re: Specificky SQL/PHP problem

Príspevok od používateľa aacid »

tak ty si pojdes na pivo a ja tu musim dalej sediet v robote... zivot je svina :D
Napísať odpoveď