Hmm, ja men det er lidt mere indviklet - det var bare en del af et større billede du så der.
Det kan godt være det kan laves i MYSQL, lad mig beskrive det:
Jeg har en tabel med slikdele(id, pris_gram) - denne indeholder alle standard dele.
Jeg har en tabel med deletilpose(id, post_id, slikdel_id, vægt) - denne kobler ovenstående og nedenstående sammen.
Jeg har en tabel med slikpose(id, navn) - det er selve posens navn
Jeg har en tabel med valgteposer(id, valg1, valg2, valg3, dato), man kan vælge 3 poser om dagen og de kan godt være de samme.
SÅ vil jeg f.eks. vælge 3 dage og så skal den printe hvor mange gram der er af hver del f.eks. hvis der er 100g røde vingummi den 010707 og 50g den 020707, så skal den ligge disse sammen og det samme med alle andre i de pågældende poser.
"SÅ vil jeg f.eks. vælge 3 dage og så skal den printe hvor mange gram der er af hver del f.eks. hvis der er 100g røde vingummi den 010707 og 50g den 020707, så skal den ligge disse sammen og det samme med alle andre i de pågældende poser."
EDIT: Printe den samlede pris på de røde vingummier på de pågældende dage.
select sum(deletilpose.vægt), slikdele.pris_gram from ((valgteposer left join slikpose on valgteposer.valg1 = slikpose.id or valgteposer.valg2 = slikpose.id or valgteposer.valg3 = slikpose.id) left join deletilpose on slikpose.id = deletilpose.post_id) left join slikdele on deletilpose.slikdel_id = slikdele.id group by slikdele.id, slikdele.pris_gram
Mht. array, så kommer det jo an på hvordan du sidenhen skal bruge data sidenhen om det er smartest at have dem i et array - det må du selv vurdere. Hvad angår 2D arrays i php, så kan du læse om dem her: http://www.homeandlearn.co.uk/php/php17p4.html
nej, der skal du så have noget a'la: select sum(deletilpose.vægt), slikdele.pris_gram from ((valgteposer left join slikpose on valgteposer.valg1 = slikpose.id or valgteposer.valg2 = slikpose.id or valgteposer.valg3 = slikpose.id) left join deletilpose on slikpose.id = deletilpose.post_id) left join slikdele on deletilpose.slikdel_id = slikdele.id group by slikdele.id, slikdele.pris_gram where valgteposer.dato = DATO1 or valgteposer.dato = DATO2 osv...
select sum(deletilpose.vægt), slikdele.id from ((valgteposer left join slikpose on valgteposer.valg1 = slikpose.id or valgteposer.valg2 = slikpose.id or valgteposer.valg3 = slikpose.id) left join deletilpose on slikpose.id = deletilpose.post_id) left join slikdele on deletilpose.slikdel_id = slikdele.id group by slikdele.id where valgteposer.dato = DATO1 or valgteposer.dato = DATO2 osv...
nej, det er sandt...det kan jo gøre det hele lidt kortere: select sum(deletilpose.vægt), deletilpose.slikdel_id from ((valgteposer left join slikpose on valgteposer.valg1 = slikpose.id or valgteposer.valg2 = slikpose.id or valgteposer.valg3 = slikpose.id) left join deletilpose on slikpose.id = deletilpose.post_id) group by slikdele.id where valgteposer.dato = DATO1 or valgteposer.dato = DATO2 osv...
SQL-sætningen er såmænd ikke så indviklet, den kobler blot de 3 tabeller sammen, gruperer data og retunerer 2 felter. Så du får blot en liste med 2 felter svarende til at du havde skrevet noget i retning af: "select felt1, felt2 from tabel1"
okay :D - men jeg synes den er rimlig indviklet :D
Får følgende fejl: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where valgteposer.dato = '230607' or valgteposer.dato = '240607'' at line 7
Line: where valgteposer.dato = '230607' or valgteposer.dato = '240607'
Ah...min fejl tror jeg :-) select sum(deletilpose.vægt), deletilpose.slikdel_id from ((valgteposer left join slikpose on valgteposer.valg1 = slikpose.id or valgteposer.valg2 = slikpose.id or valgteposer.valg3 = slikpose.id) left join deletilpose on slikpose.id = deletilpose.post_id) where valgteposer.dato = DATO1 or valgteposer.dato = DATO2 osv... group by slikdele.id (altså byt om på WHERE delen og GROUP delen)
select sum(deletilpose.vægt), deletilpose.slikdel_id from ((valgteposer left join slikpose on valgteposer.valg1 = slikpose.id or valgteposer.valg2 = slikpose.id or valgteposer.valg3 = slikpose.id) left join deletilpose on slikpose.id = deletilpose.post_id) where valgteposer.dato = $dag1 or valgteposer.dato = $dag2 group by slikdele.id
select sum(deletilpose.vægt), deletilpose.slikdel_id from ((valgteposer left join slikpose on valgteposer.valg1 = slikpose.id or valgteposer.valg2 = slikpose.id or valgteposer.valg3 = slikpose.id) left join deletilpose on slikpose.id = deletilpose.post_id) left join slikdele on deletilpose.slikdel_id = slikdele.id where valgteposer.dato = $dag1 or valgteposer.dato = $dag2 group by slikdele.id
Eller: select sum(deletilpose.vægt) as vaegt, deletilpose.slikdel_id as slikid from ((valgteposer left join slikpose on valgteposer.valg1 = slikpose.id or valgteposer.valg2 = slikpose.id or valgteposer.valg3 = slikpose.id) left join deletilpose on slikpose.id = deletilpose.post_id) left join slikdele on deletilpose.slikdel_id = slikdele.id where valgteposer.dato = $dag1 or valgteposer.dato = $dag2 group by slikdele.id
De to "felter" du så har at bruge er "vaegt" og "slikid"
select sum(deletilpose.vægt) as vaegt, deletilpose.slikdel_id as slikid from ((valgteposer left join slikpose on valgteposer.valg1 = slikpose.id or valgteposer.valg2 = slikpose.id or valgteposer.valg3 = slikpose.id) left join deletilpose on slikpose.id = deletilpose.post_id) left join slikdele on deletilpose.slikdel_id = slikdele.id where valgteposer.dato = $dag1 or valgteposer.dato = $dag2 group by deletilpose.slikdel_id
mystisk... sikker på dine datoer? Prøv lige med select sum(deletilpose.vægt) as vaegt, deletilpose.slikdel_id as slikid from ((valgteposer left join slikpose on valgteposer.valg1 = slikpose.id or valgteposer.valg2 = slikpose.id or valgteposer.valg3 = slikpose.id) left join deletilpose on slikpose.id = deletilpose.post_id) left join slikdele on deletilpose.slikdel_id = slikdele.id where (valgteposer.dato = $dag1 or valgteposer.dato = $dag2) and not deletilpose.slikdel_id group by deletilpose.slikdel_id
hov... select sum(deletilpose.vægt) as vaegt, deletilpose.slikdel_id as slikid from ((valgteposer left join slikpose on valgteposer.valg1 = slikpose.id or valgteposer.valg2 = slikpose.id or valgteposer.valg3 = slikpose.id) left join deletilpose on slikpose.id = deletilpose.post_id) left join slikdele on deletilpose.slikdel_id = slikdele.id where (valgteposer.dato = $dag1 or valgteposer.dato = $dag2) and not deletilpose.slikdel_id is null group by deletilpose.slikdel_id
prøv lige: select sum(deletilpose.vægt) as vaegt, deletilpose.slikdel_id as slikid from ((valgteposer left join slikpose on valgteposer.valg1 = slikpose.id or valgteposer.valg2 = slikpose.id or valgteposer.valg3 = slikpose.id) left join deletilpose on slikpose.id = deletilpose.post_id) left join slikdele on deletilpose.slikdel_id = slikdele.id where (valgteposer.dato = $dag1 or valgteposer.dato = $dag2) and not deletilpose.slikdel_id is null group by valgteposer.dato, deletilpose.slikdel_id
Tabellerne ser lidt anderledes ud, men dette er løsningen der virkede: select sum(d_ingre.gram) as gram, d_ingre.ravare_id as slikid from ( ( d_kostplan left join d_ingre on d_kostplan.morgen_id = d_ingre.opskrift_id or d_kostplan.mellem1_id = d_ingre.opskrift_id or d_kostplan.middag_id = d_ingre.opskrift_id or d_kostplan.mellem2_id = d_ingre.opskrift_id or d_kostplan.aften_id = d_ingre.opskrift_id or d_kostplan.mellem3_id = d_ingre.opskrift_id )
) left join d_ravarer on d_ingre.ravare_id = d_ravarer.id where ( d_kostplan.dato = 230607 or d_kostplan.dato = 240607 ) and not d_ingre.ravare_id is null
("select sum(d_ingre.gram) as gram, d_ingre.ravare_id as slikid from((d_kostplan left join d_ingre on d_kostplan.morgen_id = d_ingre.opskrift_id or d_kostplan.mellem1_id = d_ingre.opskrift_id or d_kostplan.middag_id = d_ingre.opskrift_id or d_kostplan.mellem2_id = d_ingre.opskrift_id or d_kostplan.aften_id = d_ingre.opskrift_id or d_kostplan.mellem3_id = d_ingre.opskrift_id)) left join d_ravarer on d_ingre.ravare_id = d_ravarer.id where (d_kostplan.dato = 230607 or d_kostplan.dato = 240607) and not d_ingre.ravare_id is null group by d_ingre.ravare_id")
select sum(d_ingre.gram) as gram, d_ingre.ravare_id as slikid from ((d_kostplan left join d_ingre on d_kostplan.morgen_id = d_ingre.opskrift_id or d_kostplan.mellem1_id = d_ingre.opskrift_id or d_kostplan.middag_id = d_ingre.opskrift_id or d_kostplan.mellem2_id = d_ingre.opskrift_id or d_kostplan.aften_id = d_ingre.opskrift_id or d_kostplan.mellem3_id = d_ingre.opskrift_id)) left join d_ravarer on d_ingre.ravare_id = d_ravarer.id where (d_kostplan.dato = 230607 or d_kostplan.dato = 240607 ) and not d_ingre.ravare_id is null group by d_ingre.ravare_id;
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.