Zeiten aus MySQLDB mit Interval berechnen lassen und damit Tabelle erstellen

McMay

Mitglied
Hallo Leute,
ich schreibe gerade ein Buchungsportal bei dem die Mitarbeiter sich zu bestimmten Zeiten Termine buchen können.
Es soll eine einfache Tabelle sein, wo links die Uhrzeit für den Termin steht und rechts ein Button, frei oder belegt.
Der erste Termin soll z.B. von 09:00 bis 09:15 sein und der nächste Termin ist dann von 09:15 bis 09:30 und so weiter.
Das ist meine Idee, aber jetzt komme ich auch schon nicht weiter. :confused:

In der MySql DB habe ich 5 Felder angelegt.
Begin vom Typ time z.B. 09:00:00
End vom time z.B 12:15:00
Interval vom Typ int(10) z.B. 15, soll heißen, das ein Interval 15 Minuten beträgt
Pause_Start vom Typ time z.B. 10:30:00
Pause_End vom Typ time z.B. 11:00:00

Passt der Feldtyp time oder sollte ich was anderes wählen?

Die einzelnen Zeiten sind Firmen zugeordnet und müssen felxibel sein.
Die Startzeit kann abweichen, sowie das Interval der Buchung kann z.B. auch 20 Minuten oder 30 Minuten sein.

Kann ich in einer Schleife ein Array erstellen lassen, das anhand der Startzeit, der Pausen und des Intervals die einzelnen Termine berechnet? Wenn wie?
Oder gibt es eine Möglichkeit gleich durch eine SQL-Abfrage die DB die Zeiten erstellen zu lassen. Mit Prepared Statements kenne ich mich nicht aus.

Ich hoffe, ihr könnt mir folgen. Ich grübel schon seit langem daran rum, komme aber nicht weiter.
Auch für hilfreiche Links bin ich dankbar.
Dies ist mein erster Beitrag im Forum, also bitte verzeiht irgendwelche Netiquette Patzer. :)
THX im vorraus
Heiko
 
So, hab wo anders ein paar Gedankenanstöße bekommen.
Hier ist jetzt der Code:

PHP:
$start = '09:00:00';
$ende = '12:15:00';
$pauseAnfang = '10:30:00';
$pauseEnde ='11:00:00';
$interval = '15';

$current = strtotime($start);
$end = strtotime($ende);
$pA = strtotime($pauseAnfang);
$pE = strtotime($pauseEnde);
?>
<table width=40% class="table" border="1">
 <tbody>
 <tr>
 <td align="center" width=50%><b>Zeit</b></td>
 <td align="center" width=50%><b>Status</b></td>
 </tr>
 <?PHP
  do{
  	echo '<tr>';
  	echo '<td align="center">';
 	echo date('H:i', $current);
 	echo '</td>';
 	echo '<td align="center">button</td>';
 	$current = strtotime( + $interval.'Minutes', $current);
 	if ($current == $pA) {
 		$current = $pE;
 	}
  }
 while ( $current <= $end );
?>
 </TR>
  </TBODY>
 </TABLE>
 
Zurück