Rudolf Hammerschlager: wochenübersicht programmieren - denkfehler?

Beitrag lesen

hallo forum!

ich möchte mir gerne einen kalender wie outlook programmieren.
dazu benötige ich eine wochenansicht, die ich schon geschafft habe.
ich habe alle eventualitäten (monatswechsel, etc.) einprogrammiert.

nun habe ich alle termine in einer tabelle mit folgenden spalten eingetragen:

id, personid, beginnzeit, endzeit, start, ende
id = auto increment id
personid = zuordnung zu einem kontakt
beginnzeit = z.B. 10:00
endzeit = z.B. 17:30
start = 2005-23-11
ende = 2005-23-11

mit folgendem code erstelle ich meine übersichtstabelle, die
dann von 8 bis 18 uhr geht (hier ohne header):
for($x = 8; $x <= 18; $x++)
{
$x2 = $x+1;
print "
  <tr align='left' valign='top' bgcolor='#BACAD7' class='text'>
    <td height='30' align='center' valign='middle'>$x:00 - $x2:00</td>
    <td width='114' height='30>&nbsp;</td>
    <td width='114' height='30'>&nbsp;</td>
    <td width='114' height='30'>&nbsp;</td>
    <td width='114' height='30'>&nbsp;</td>
    <td width='114' height='30'>&nbsp;</td>
    <td width='114' height='30'>&nbsp;</td>
    <td width='114' height='30'>&nbsp;</td>
  </tr>
";
}

so, nun ist mir gerade eingefallen, dass ich ja die halben stunden auch darstellen muss. außerdem komm ich einfach auf keinen grünen zweig, wie ich die einzelfelder eines termines eintragen soll.

ich hab mir zur vorgangsweise folgendes überlegt:
1. wieviele termine pro tag sind eingetragen?
   anzahl = anzahl der spalten
2. bei jedem durchlauf überprüfen, ob in der aktuellen halben stunde
   etwas stattfindet, dann jeweils bgcolor='FFFFFF'
   der aktuellen zelle
3. $endstunde-$startstunde = anzahl der durchläufe für die stunden
   aber was ist mit den halben stunden?

so und jetzt hänge ich. mir fehlt sozusagen der letzte finale knopf
damit ich das ganze umsetzen kann.

ich bin dankbar für jeden tipp, jede hilfe oder jeden verbesserungsvorschlag oder jede kritik.

vielleicht denke ich auch komplett falsch?
sorry, ich steh an.

danke für all eure bemühungen!