11. april 2007 - 13:11Der er
11 kommentarer og 1 løsning
Optælling ud fra to tabeller
Jeg har stirret mig blind på følgende:
1. Input fra en formular er $deltagerid og $modultype 2. Jeg har en tabel tilmeldinger med deltagerid, modulid og prioritet samt en tabel moduler med modulid, modultype og modulvarighed
Nu ønsker jeg at kende summen af modulvarighed (værdi 1 eller 2) for de moduler i tabellen moduler, som har modultype = $modultype og i tabellen tilmeldinger er valgt af $deltagerid som prioritet 1.
Formålet er, at deltageren skal vælge moduler af samme type med sammenlagt varighed 2. Hvis resultatet er mindre end to skal deltageren vælge igen (sendes retur), hvis den er mere end 1 skal deltageren sendes videre til at vælge næste type eller prioritet.
"SELECT SUM(moduler.modulvarihed) as Sammentalt FROM moduler, tilmeldinger WHERE moduler.modulid = tilmeldinger.modulid AND moduler.modultype = $modultype AND tilmeldinger.deltagerid = $deltagerid AND tilmeldinger.prioritet = 1 GROUP BY moduler.modultype"
Hvordan vælger deltagerne mere end ét modul? Hver deltager har jo et modulid i tabellen tilmeldinger, som jeg går ud fra du vil kæde sammen med modulid i tabellen moduler.
spideregg > Hvordan det hvis der ikke må findes to samme værdier af deltagerid? Lad os sige deltager med id 1 har modulid 1 og prioritet 1 i tabellen tilmeldinger. I tabellen moduler må der også kun være ét modul med id 1 og lad os sige den har modultype 1 og modulvarighed 1. Modulid 1 'tilhører' nu deltager 1. Hvordan kan deltager 1 få endnu et modulid tilknyttet sig?
dkfire> Genialt! Det var GROUP BY jeg havde glemt - taaaak! (lav et svar for point)
Hver deltager skal vælge moduler svarende til varighed 2. Dvs. enten to moduler af 1 eller et modul af 2. Så vælger man et modul af varighed 1 skal man tvinges til at vælge et mere. Vælger man et modul med varighed 2 eller to med varighed 1 skal man sendes videre i forløbet.
Tak for hjælpen - sikke man kan stirre sig blind nogle gange:)
Alt for mange fejltagelser bliver lavet fordi man antager ting, så derfor ville jeg lige være sikker på tabelopbygningen, men jeg endte så selv med at antage hvad der var primær nøgler. Det vigtigste er dog at problemet blev løst :-)
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.