Daten zwischen Anfang und Enddatum herausfinden

Hallo Zusammen!

Ich bin am erstellen eines Abwesenheitserfassungstools. Nun habe ich bereits ein Formular geschrieben welches mir das Beginn und das Enddatum einer Absenz in die MySQL Datenbank schreibt.Natürlich möchte ich nun die Abwesenheit im Monatskalender darstellen.(Indem der Termin fett erscheint, so wie dies z.B. im Outlook der Fall ist). Dabei habe ich zwei Probleme:

1. Ich weiss nicht wie ich ein SQL-Query schreibe, das mir alle Daten zwischen Anfang und Beginndatum zurückgibt?
2.Weiss ich nicht wie ich die Ausgabe anschliessend im Kalender einbinden kann?

Code:
  include("dbconnect.php");
  include("Calendar/Calendar.php");
  include("Calendar/Year.php");
  include ('Calendar/Month/Weekdays.php');
  
  $date = $_GET['date'];
  if(!$date )
  {
   $date = date( "m-Y" ); 
  }
  $datum = explode("-",$date);
  // Aktuelles, letztes und nächstes Jahr herausfinden
  $jahr = $datum[1];
  $Year = new Calendar_Year($jahr);
  $prev_jahr = $Year->prevYear(); 
  $next_jahr = $Year->nextYear(); 
  
  // Aktuelles, letztes und nächstes Monat herausfinden
  $monat = $datum[0];
  $Month = new Calendar_Month($jahr, $monat);
  $prev_monat = $Month->prevMonth();
  $next_monat= $Month->nextMonth();
  
  if($monat == 1)
  {
   $prev_date= $prev_monat."-".$prev_jahr;
  }
  else
  {
   $prev_date= $prev_monat."-".$jahr;
  }
  if($monat == 12)
  {
   $next_date = ($next_monat."-".$next_jahr);
  }
  else
  {
   $next_date = ($next_monat."-".$jahr);
  } 
  $datum = mktime( 0, 0, 0, $monat, 1, $jahr );
  $date_form = date('F.Y',$date);
  //Monat Objekt bilden
  $Month = new Calendar_Month_Weekdays($jahr, $monat);
  $Month->build();
  //Monat ausgeben in Tabelle
  echo "<table border = '1'>";
  echo "<td><a href='bla();'><a href ='index.php?link=m_kalender.php&date=$prev_date'>
  <img border = 0 src='bilder/pfeil_l.jpg'></a></td>";
  echo "<th scope='col'colspan=5>$date_form</th>";
  echo "<td><a href ='index.php?link=m_kalender.php&date=$next_date'>
  <img border = 0 src = 'bilder/pfeil_r.jpg'></a></td>";
  echo "<tr>";
  while ($Day = $Month->fetch()) 
  {
   //Erster Tag heruasfinden
   if ($Day->isFirst()) 
   {
    echo "<tr>";
   }
   //Leere Tage ausgeben
   if ($Day->isEmpty()) 
   {
    echo "<td></td>";
   } 
   else 
   {
    echo '<td>'.$Day->thisDay()."</td>\n";
   }
   //Letzter Tag herausfinden
   if ($Day->isLast()) 
   {
    echo "</tr>";
   }
  }
  echo "</table>";
  ?>

Danke für deine Hilfe im vorraus =)
 
Hallo,
habe mir jetzt nicht das Ganze Skript durchgelesen, aber zur ersten Frage:
Prinzipiell kannst du per sql Daten in einem bestimmten Bereich ausgeben indem du BETWEEN benutzt, also z.B. select * from myTable where id BETWEEN 500 AND 600

Zur Zweiten:
Ich verstehe dich mal so, dass es nur eine Unterscheidunf zwischen Anwesend und Abwesend gibt, also true oder false. Würde ich einfach das Datum, welches durch $Day = $Month->fetch() gebildet wird mit dem aus obiger Abfrage vergleichen. Dazu würde ich jedoch bei der Abfrage ein ORDER BY... einfügen.

Beispiel:
Kalender: DB:
01.04.2005 kein Eintrag -> mache nichts
02.04.2005 Anwesend=false -> markiere Tabelle
usw...
 
Zurück