Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Mehrere Termine (Daten) für einen Datensatz

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Mehrere Termine (Daten) für einen Datensatz

    Szenario:

    Ein Kalender besitzt Ereignisse, die an verschiedenen Tagen zu verschiedenen Zeiten (Start- und Endzeit) stattfinden.

    Umsetzung:

    Datensätze mit Datumsfeld (date) sowie Start- und Endzeitfeldern (time).

    Erweiterung:

    Nun soll es auch Ereignisse geben, die an verschiedenen Tagen zu jeweils unterschiedlichen Zeiten stattfinden.

    Dabei soll das Ereignis wieder ein Datensatz sein.

    Mein Ansatz ist, (theoretisch) in einem Feld die Daten jeweils mit Start- und Endzeit zu speichern.

    Anwendung:

    Es sollen nun alle Datensätze ausgegeben werden, die an einem bestimmten Tag stattfinden, wobei die Ausgabereihenfolge von den Startzeiten, die dem gesuchten Tag zugeordnet sind, bestimmt wird.

    Beispiel:

    Beispieltermin 1
    12.05.2002, 15.00-18.00
    13.05.2002, 12.00-14.00
    17.05.2002, 11.00-22.00


    Beispieltermin 2
    12.05.2002, 11.00-18.00
    14.05.2002, 12.00-14.00


    Beispieltermin 3
    12.05.2002, 07.00-08.00


    Suche nach "12.05.2002":

    Beispieltermin 3 - 12.05.2002, 07.00-08.00
    Beispieltermin 2 - 12.05.2002, 11.00-18.00
    Beispieltermin 1 - 12.05.2002, 15.00-18.00

    Ich würde mich über eure Ansätze freuen.

    Gruß

    codebreakr

  • #2
    eine Tabelle Termine --> id (PK) | name
    eine Tabelle Daten --> termin_id (FK) | datum | zeit_von | zeit_bis

    SELECT datum, zeit_von, zeit_bis, termine.name FROM daten
    JOIN termine ON (termine.id = daten.termin_id)
    WHERE datum = "gesuchtes Datum"
    ORDER BY zeit_von

    Kommentar


    • #3
      Es ist nicht ratsam, Datum und Zeit getrennt zu speichern. mach für Anfang und Ende jeweils eine Spalte des Typs datetime, in die du dann Anfang und Ende speicherst. Der datetime-Typ ist dann in Mysql sehr komfortabel mit DATE_FORMAT(datum,'(formatstring)') zu nutzen. Beispiel:

      PHP-Code:
      // Zeige alle Termine am Datum $datum (z.B. 17.12.2010)
      $sql "SELECT 
                  DATE_FORMAT(von,'%d.%m.%Y h:i:s') AS zeitvon,
                  DATE_FORMAT(bis,'%d.%m.%Y h:i:s') AS zeitbis,
                  bezeichnung
              FROM
                  termine
              WHERE
                  DATE_FORMAT(von,'%d.%m.%Y') = " 
      $datum "
              ORDER BY
                  von"
      ;
      $erg mysql_query($sql);
      while ( 
      $row mysql_fetch_assoc($erg) ) {

          echo 
      $row['zeitvon'] . $row['zeitbis'] . htmlspecialchars($row['bezeichnung']) . '<br />';
                  

      [PHP]if ($var != 0) {
      $var = 0;
      }[/PHP]

      Kommentar


      • #4
        Prima, ich dank' euch beiden.

        Kommentar

        Lädt...
        X