Rainer: Termine in Kalender einlesen

Moin moin,

habe folgendes Problem

Ich möchte in einem Kalender Einträge Monatsweise anzeigen lassen welcher einzelne Tagestermine, aber auch Termine über mehrer

Monate enthalten kann.

Doe MySQL Tabelle:

v_datum    | v_datum2    | ...weitere Spalten

2005-01-12 | 2005-03-16  |

Meine Query sieht bisher so aus:

$sql = "SELECT * FROM kalender WHERE v_datum LIKE '$ye-$monat-%' OR v_datum2 LIKE '$ye-$monat-%' ORDER BY v_datum";

Über ein Formular wähle ich Jahr und Monat aus.

Im Januar wird der Termin angezeigt.
Im Februar wird er nicht angezeigt.
Im März wieder angezeigt.

Wie muss ich die Query erweitern damit im Februar, also im zwischen "v_datum" und "v_datum2", der Termin auch angezeigt wird?

Danke im Voraus

Rainer

  1. Moin moin,

    $sql = "SELECT * FROM kalender WHERE v_datum LIKE '$ye-$monat-%' OR v_datum2 LIKE '$ye-$monat-%' ORDER BY v_datum";

    Wie muss ich die Query erweitern damit im Februar, also im zwischen "v_datum" und "v_datum2", der Termin auch angezeigt wird?

    $monat_start = '2005-02-01';
    $monat_ende  = '2005-02-28';
    SELECT * FROM kalender WHERE v_datum <= $monat_start AND v_datum2 >= $monat_ende

    LG Kalle

    1. statt sich mit langen und kurzen Monaten rumzuquälen

      $monat_start = '2005-02-01';
      $monat_ende  = '2005-02-28';
      SELECT * FROM kalender WHERE v_datum <= $monat_start AND v_datum2 >= $monat_ende

      (Achtung: $monat_start und $monat_ende müssen vertauscht werden)

      geht natürlich auch

      $monat = '2005-02';    // aus deinem Formular
      SELECT * FROM kalender WHERE v_datum < '".$monat."-99' AND v_datum2 > '".$monat."-00'";

      LG Kalle

    2. $monat_start = '2005-02-01';
      $monat_ende  = '2005-02-28';
      SELECT * FROM kalender WHERE v_datum <= $monat_start AND v_datum2 >= $monat_ende

      Wo sollen denn die beiden Variablen $monat_start und $monat_ende herkommen? Der Startmonat ist 01, der Endemonat 03. In der DB habe ich nur die beiden Datumsfelder für Beginn und Ende der Veranstaltung.

      Gruss Rainer