wochenübersicht programmieren - denkfehler?
Rudolf Hammerschlager
- php
0 Jojo
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> </td>
<td width='114' height='30'> </td>
<td width='114' height='30'> </td>
<td width='114' height='30'> </td>
<td width='114' height='30'> </td>
<td width='114' height='30'> </td>
<td width='114' height='30'> </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!
Hallo Rudolf
beginnzeit = z.B. 10:00
endzeit = z.B. 17:30
start = 2005-23-11
ende = 2005-23-11
Da würde sich die Funktion date(); sehr sehr gut eigenen
Verwende doch statt 4 Spalten 2 ;)
Ungefair so:
beginn
= 1111111111;
ende
= 1111115111;
Das '1111111111' ist ein angedeuteter UNIX-Timestamp.
Die aktuelle Zahl (Sekunden seit 01.01.1970) bekommt man mit:
time();
oder
date('U');
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> </td>
<td width='114' height='30'> </td>
<td width='114' height='30'> </td>
<td width='114' height='30'> </td>
<td width='114' height='30'> </td>
<td width='114' height='30'> </td>
<td width='114' height='30'> </td>
</tr>
";
}
kleiner Tipp am Rande ;)
http://smarty.php.net
Das sollte alle 'echo'/'print' aufrufe eleminieren ^^
- wieviele termine pro tag sind eingetragen?
anzahl = anzahl der spalten
Nein das würd ich nich so machen...
Mach lieber eine Spalte (in die die Daten kommen) mit nem ordentlichen rowspan ;)
Die linke Spalte wäre dann 30 Minuten Raster oder so.
Und dann als div einen Balken ziehen (jenachdem wie lang der Termin is)
Das wäre dann floor((beginn
- ende
) / 60) (Minuten)
würde dann in meinem Kopf so aussehen ;) :
+---------------+------------+------------+-----
| | Montag | Dienstag | ...
+---------------+------------+------------+-----
| 08:00 - 08:30 | +--------+ | |
| 08:30 - 09:00 | | Schule | | |
| 09:00 - 09:30 | | text | | +--------+ |
| 09:30 - 10:00 | | | | | Schule | |
| 10:00 - 10:30 | +--------+ | | | |
.
.
| 17:30 - 17:30 | +--------+ | | |
| 17:30 - 18:00 | | Party | | +--------+ |
- bei jedem durchlauf überprüfen, ob in der aktuellen halben stunde
etwas stattfindet, dann jeweils bgcolor='FFFFFF'
der aktuellen zelle
s.o.
- $endstunde-$startstunde = anzahl der durchläufe für die stunden
aber was ist mit den halben stunden?
s.o.
ich bin dankbar für jeden tipp, jede hilfe oder jeden verbesserungsvorschlag oder jede kritik.
Keine Ursache ;)
danke für all eure bemühungen!
Gern geschehen !
Gruß
Jojo