hallo, ich habe folgendes problem...
es geht um eine schuldatenbank.
es gibt die relationen
belegte_kurse: hier ist jede userid mit einer kursid verknüft (also welcher schüler welchen kurs belegt)
kurse: hier ist der schlüssel die kurs id, ebenso ist angegeben welcher lehrer unterrichtet und wann der kurs stattfindet (wo in der zeitleiste, als beispiel G3) und der jahrgang
zeitleiste: hier steht wann welcher kurs stattfindet (also kurse die auf der Leiste G3 liegen freitags 3. und 4. stunde) und der jahrgang, da G3 für die 12. klassen nicht zur gleichen zeit stattfindet wie G3 für die 13. klassen.
kranke_lehrer: hier steht welcher lehrer wann nicht da ist mit datum (also 2005-10-27) als beispiel. schlüssel ist eine auto_inc id
kranke_zeiten: hier steht nochmal genau in welchen stunden der lehrer nicht da ist (wenn er erst ab der 5. stunde fehlt z.B.) also als fremdschlüssel die id von kranke_lehrer und dann noch ne zahl als jeweilige stunde.
so, ich will jetzt herausfinden welche kurse bei mir (schülernr= 1) ausfallen weil lehrer fehlen... dazu habe ich folgende abfragen:
So, jetzt habe ich 3 Tabellen... aber es muss doch möglich sein eine Abfrage zu erstellen, die mir sucht was ich will und nur eine Tabelle ausgibt. ich bin am verzweifeln. hab gestern stunden lang versucht... (insbesondere weil ich in $sql3 ja SELECT DAYOFWEEK(kranke_lehrer.datum) habe, um vom datum auf nen wochentag zu kommen. aber wie kann ich das dann wieder vergleichen? )
die einzige möglichkeit die mir eingefallen ist, sind schleifen, die eben für jeden lehrer das array (mysql_fetch_row) von sql2 und sql3 vergleichen... aber das ist ja nicht das gelbe vom ei?
hoffe jemand hat geduld sich das alles durchzulesen und mir zu helfen
danke schonmal
fl4sh
es geht um eine schuldatenbank.
es gibt die relationen
belegte_kurse: hier ist jede userid mit einer kursid verknüft (also welcher schüler welchen kurs belegt)
kurse: hier ist der schlüssel die kurs id, ebenso ist angegeben welcher lehrer unterrichtet und wann der kurs stattfindet (wo in der zeitleiste, als beispiel G3) und der jahrgang
zeitleiste: hier steht wann welcher kurs stattfindet (also kurse die auf der Leiste G3 liegen freitags 3. und 4. stunde) und der jahrgang, da G3 für die 12. klassen nicht zur gleichen zeit stattfindet wie G3 für die 13. klassen.
kranke_lehrer: hier steht welcher lehrer wann nicht da ist mit datum (also 2005-10-27) als beispiel. schlüssel ist eine auto_inc id
kranke_zeiten: hier steht nochmal genau in welchen stunden der lehrer nicht da ist (wenn er erst ab der 5. stunde fehlt z.B.) also als fremdschlüssel die id von kranke_lehrer und dann noch ne zahl als jeweilige stunde.
so, ich will jetzt herausfinden welche kurse bei mir (schülernr= 1) ausfallen weil lehrer fehlen... dazu habe ich folgende abfragen:
PHP-Code:
// sucht alle lehrer die krank sind, die man auch hat und die heute oder in zukunft nicht da sind
$sql1 = "SELECT kurse.lehrer FROM belegte_kurse, kurse, kranke_lehrer
WHERE belegte_kurse.userid = '".$_SESSION['userid']."'
AND belegte_kurse.kursid = kurse.id
AND kurse.lehrer = kranke_lehrer.lehrer
AND kranke_lehrer.datum >= '".$aktdatum."'
group by (kurse.lehrer);";
// Schaut wann man diesen Lehrer hat (Wochentag/Stunde)
$sql2 = "SELECT zeitleiste.wochentag, zeitleiste.stunde FROM belegte_kurse, kurse, zeitleiste
WHERE belegte_kurse.userid = 1
AND belegte_kurse.kursid = kurse.id
AND kurse.lehrer = '".$lehrer."'
AND kurse.zeitleiste = zeitleiste.zeitleiste
AND kurse.jahrgang = zeitleiste.jahrgang
order by zeitleiste.wochentag, zeitleiste.stunde;";
// Schaut wann dieser Lehrer nicht da ist (Wochentag/Stunde/Datum)
$sql3 = "SELECT DAYOFWEEK(kranke_lehrer.datum), kranke_zeiten.stunde, kranke_lehrer.datum FROM kranke_lehrer, kranke_zeiten
WHERE kranke_lehrer.id = kranke_zeiten.id
AND kranke_lehrer.lehrer = '".$lehrer."';";
die einzige möglichkeit die mir eingefallen ist, sind schleifen, die eben für jeden lehrer das array (mysql_fetch_row) von sql2 und sql3 vergleichen... aber das ist ja nicht das gelbe vom ei?
hoffe jemand hat geduld sich das alles durchzulesen und mir zu helfen
danke schonmal
fl4sh
Kommentar