tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
336
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von preko
    preko preko ist offline Mitglied Brokat
    Registriert seit
    Jun 2004
    Ort
    Mönchengladbach
    Beiträge
    397
    Hi,

    ich habe 6 Start und Ende Felder [termin_1_start, termin_1_ende, termin_2_start, termin_2_ende, etc.} für Termine als DATETIME Felder eingerichtet.
    Daneben ist auch noch ein Namensfeld für Kurse [kurs_name] (welche aus 6 Modulen bestehen und deshalb 6 Start und logischerweise 6 Endtermine haben) angelegt.

    Nun möchte ich, dass der nächste (Modul-)Starttermin des jeweiligen Kurses aus der Datenbank (MySQL) anhand des heutigen Datums aufgerufen wird inkl. des passenden Kursnamens.

    Ich weiß nicht, wie ich da rangehen soll.


    Beste Grüße,
    preko
     
    Wem das Wasser bis zum Hals steht, sollte den Kopf nicht hängen lassen.

    Was man heute Rap-Musik nennt, hieß früher Stottern und war heilbar...

    Es gibt zwei Wege im Leben - den schweren und den falschen!
    -----------------------------------------------------------------------------------------------------
    http://www.prenociste-mir.com
    -----------------------------------------------------------------------------------------------------

  2. #2
    Avatar von teppi
    teppi teppi ist offline Mitglied Platin
    Registriert seit
    May 2004
    Ort
    Berlin
    Beiträge
    537
    Erst einmal ist dein Datenmodell nicht normalisiert. Das solltest du erst mal ändern, bevor du dir Gedanken über das Auslesen machst.

    Starttermin, Endtermin beinhalten Informationen die miteinader verknüpft sein. Das darf so nicht sein.

    Du musst sie also auseinander nehmen in:
    Starttermin und Dauer meinetwegen ..

    Außerdem verstehe ich auch nicht, wozu du für jeden Termin ein extra Feld speichern willst ..

    Schau die mal das Thema Normalisierung ein wenig an ..

    Gruß Stefan

    /Edit: ok, das mit den 6 Terminen hab ich jetzt kapiert ich würde dir vorschlagen, die Daten in unterschiedliche Tabellen zu packen:

    Kurse, Module, Modultermine oder so und diese dann miteinander zu verknüpfen, dann sparst du dir diese ganzen sinnlosen doppelten Felder ..
    Geändert von teppi (25.04.06 um 12:06 Uhr)
     
    :-) möp

  3. #3
    Avatar von preko
    preko preko ist offline Mitglied Brokat
    Registriert seit
    Jun 2004
    Ort
    Mönchengladbach
    Beiträge
    397
    Zitat Zitat von teppi
    ...Kurse, Module, Modultermine oder so und diese dann miteinander zu verknüpfen, dann sparst du dir diese ganzen sinnlosen doppelten Felder ...
    Hi teppi,

    erstmal vielen Dank für die schnelle Antwort.

    Allerdings kann ich die Daten nicht splitten, da die angefragte Problematik eine Tabelle erfasst, die schon per JOIN mit einer anderen Tabelle abgefragt wird.

    Da mehrere verschiedene und voneinander unabhängige Personen auf die Kursdaten zugreifen, hinterlässt jeder dieser Personen z. B. 5 (oder auch mehr) verschiedene Kurse mit verschiedenen Terminen. Es sind also keine wiederkehrenden Termine mit fester Dauer, sondern können durchaus unterschiedlich lang laufen (ja nach Feiertagen, Urlaubszeit, etc.).

    Später für die Abfrage muß für die Anwender ersichtlich sein, wann ein Modul angefangen hat und wann dieses Endet.
    Um auf die Anfangsproblematik zurück zu kommen, soll also der nächstgelegene Modul-Anfangstermin anhand des heutigen Datums dargestellt werden, damit die Anwender einen Anhaltspunkt haben, wann sie sich z. B. einschreiben müssen.


    Beste Grüße,
    preko
     
    Wem das Wasser bis zum Hals steht, sollte den Kopf nicht hängen lassen.

    Was man heute Rap-Musik nennt, hieß früher Stottern und war heilbar...

    Es gibt zwei Wege im Leben - den schweren und den falschen!
    -----------------------------------------------------------------------------------------------------
    http://www.prenociste-mir.com
    -----------------------------------------------------------------------------------------------------

  4. #4
    Avatar von preko
    preko preko ist offline Mitglied Brokat
    Registriert seit
    Jun 2004
    Ort
    Mönchengladbach
    Beiträge
    397
    Hi,

    hat niemand eine Idee, wie ich dieses Problem lösen kann? Ich häng` echt in den Seilen.


    Beste Grüße,
    preko
     
    Wem das Wasser bis zum Hals steht, sollte den Kopf nicht hängen lassen.

    Was man heute Rap-Musik nennt, hieß früher Stottern und war heilbar...

    Es gibt zwei Wege im Leben - den schweren und den falschen!
    -----------------------------------------------------------------------------------------------------
    http://www.prenociste-mir.com
    -----------------------------------------------------------------------------------------------------

  5. #5
    Avatar von bn
    bn bn ist offline Mitglied Brokat
    Registriert seit
    Oct 2002
    Ort
    Berlin
    Beiträge
    395
    Hallo,

    im Normalfall wäre die Datenbank genau an dieser Stelle zu normalisieren, aber manchmal geht das im Nachhinein eben nicht mehr. Nicht so schlimm, es gibt für alles eine Lösung - da die 6 Start Daten ja chronologisch angelegt sein werden sollte es mit einem Case WHEN recht einfach möglich sein, den nächsten termin zu ermitteln.

    Code :
    1
    2
    3
    4
    5
    
    SELECT CASE WHEN termin_1_start > NOW() THEN termin_1_start
        WHEN termin_2_start > NOW() THEN termin_2_start
        ...
        END AS start
    FROM tab
     
    Eine Lösung hätte ich schon, aber sie passt nicht zum Problem.

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 08.09.10, 09:42
  2. Antworten: 0
    Letzter Beitrag: 24.01.10, 18:01
  3. Aktuellen Termin anzeigen
    Von 5im0n im Forum PHP
    Antworten: 5
    Letzter Beitrag: 07.04.07, 19:21