vreau un checkbox cu afisare rezultate din tabela diferita

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

mathieu
New Member
Mesaje: 1
Membru din: Mie Feb 19, 2014 9:29 am

vreau un checkbox cu afisare rezultate din tabela diferita

Mesajde mathieu » Mie Feb 19, 2014 10:29 am

de principiu este vorba despre cateva tabele in mysql administrate din backend de mine, singura interactiune a vizitatorilor este de a alege in prima faza niste valori (eu m-am gandit la checkboxuri) care reprezinta valorile din una dintre tabele. apoi dupa ce apasa pe un buton, li se afiseaza alte valori din alta tabela, in relatie cu prima.Spre exemplu: Avem tabela "INGREDIENTE", avand randurile "id_ingrediente" (cheie primara si unica) si "denumire_ingrediente" (varchar de 20 sa zicem) si tabela "PREPARATE", cu "id_preparat" (cheie primara si unica) , "denumire_preparat" (varchar de 100) si "id_ingrediente" care este intr-o relatie "mai multi la unu" cu randul similar din prima tabela, deoarece UN preparat poate avea mai multe ingrediente si, totodata, acelasi ingredient poate fi la mai multe preparate. In prima tabela avem o lista de ingrediente (apa, zahar, cafea, oua, etc.). In prima faza vizitatorul alege (bifeaza) niste ingrediente si, la Submit i se genereaza o lista cu preparatele posibile in functie de ingredientele alese .
Va rog sa ma ajutati sunt nou in domeniu:)



Avatar utilizator
socu
Senior Member
Mesaje: 470
Membru din: Mie Apr 22, 2009 11:05 pm
Localitate: Marghita

Re: vreau un checkbox cu afisare rezultate din tabela diferi

Mesajde socu » Mie Feb 19, 2014 8:22 pm

cazul tau nu e many to one ci e many to many si de cele mai multe ori ai nevoie de tabela intermediara.

Cod: Selectaţi tot

Ingrediente
id | name

Preparate
id | name

Intermediar
p_id | i_id


Ca sa iei toate preparatele ce folosesc ingredientele cu id 7, 8 si 9 ar trebui un query de genul: (7, 8, 9 e lista de ingrediente iar 3 de la having e numarul lor)

Cod: Selectaţi tot

SELECT p.id, p.name
FROM Preparate p
LEFT JOIN Intermediar i
ON p.id = i.p_id
WHERE i.i_id IN (7, 8, 9)
GROUP BY p.id
HAVING COUNT(i.p_id) = 3


PS: sper ca nu am gresit caci nu am testat codul.

moof2010
Average Member
Mesaje: 55
Membru din: Sâm Aug 17, 2013 10:54 pm

Re: vreau un checkbox cu afisare rezultate din tabela diferi

Mesajde moof2010 » Sâm Feb 22, 2014 12:05 pm

hai sa iti zic o faza mai usoara

Faci o tabela cu toate ingredientele si le atribui id-uri 1,2,3,4,5,6,7,......,n

Faci o tabela cu toate preparatele si le atribui id-uri 1,2,3,4,5,6,7,.....,m si ingredientele dupa id de exempplu

Ingrediente: 1 - faina, 2 - lapte, 3 - oua, 4 - zahar, 5 - cacao
Preparat: negresa (id 6) cu ingredientele 1,2,3,4,5....

el cand va selecta negresa ii pui in spate un cod care sa dea explode la coloana ingrediente si din 1,2,3,4,5.... sa faca 1 2 3 4 5 .... iar in afisare nu afisezi id-urile ci ceri din baza de date denumirile...

e mai simplu decat pare din explicatie

Avatar utilizator
socu
Senior Member
Mesaje: 470
Membru din: Mie Apr 22, 2009 11:05 pm
Localitate: Marghita

Re: vreau un checkbox cu afisare rezultate din tabela diferi

Mesajde socu » Lun Feb 24, 2014 4:15 pm

@moof2010 - esti complet pe langa
Asta s-a cerut:
In prima faza vizitatorul alege (bifeaza) niste ingrediente si, la Submit i se genereaza o lista cu preparatele posibile in functie de ingredientele alese .

Deci, aleg ingredientele si vad ce preparate am care contin acele ingrediente.
Tu ai ceva de genu ca aleg preparatu si ii afisez ingredientele (si e cu mult mai ineficienta metoda ta, pe langa faptul ca incalci principiul bazelor de date relationale).


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 24 vizitatori