Avatar billede nemesis Nybegynder
11. april 2007 - 13:11 Der 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.

Altså noget i stil med

if ($sammentalt_varighed < 2) {
header("Location: $PHP_SELF");
}
else
header("Location: $Næste_side");

Håber det giver mening :)
Avatar billede spideregg Nybegynder
11. april 2007 - 13:38 #1
Hmm ... det gør det ikke :) Hvad er spørgsmålet? Det ser ud til at du har givet svaret selv?
Avatar billede nemesis Nybegynder
11. april 2007 - 13:41 #2
Ja ok meget snak uden at komme til pointen:)

Jeg savner en SELECT, som kan give mig den $sammentalt_varighed variabel.
Avatar billede dkfire Nybegynder
11. april 2007 - 13:59 #3
"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"

Kan måske skrive lidt enklere
Avatar billede terrak Nybegynder
11. april 2007 - 14:02 #4
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.
Avatar billede terrak Nybegynder
11. april 2007 - 14:05 #5
Og her går jeg ud fra at dine primær nøgler er deltagerid i tilmeldinger, og modulid i moduler.
Avatar billede spideregg Nybegynder
11. april 2007 - 14:10 #6
Hver deltager kan vel have flere tilmeldinger, terrak?
Avatar billede terrak Nybegynder
11. april 2007 - 14:17 #7
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?

Eller er det mig der har forstået det forkert?
Avatar billede dkfire Nybegynder
11. april 2007 - 14:28 #8
DEt kommer da helt anpå om deltagerid er primær nølge, det behøver den jo ikke at være
Avatar billede nemesis Nybegynder
11. april 2007 - 14:33 #9
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:)
Avatar billede nemesis Nybegynder
11. april 2007 - 14:35 #10
hver tilmelding i tilmeldinger har sit eget id også
Avatar billede dkfire Nybegynder
11. april 2007 - 14:38 #11
Så lidt
Avatar billede terrak Nybegynder
11. april 2007 - 14:47 #12
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 :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester