Zur Startseite Ein schönes Praxisbeispiel, dass ich früher mal in einer meiner MySQL-Schulungen verwendet habe:
Stellen Sie sich vor, Sie betreiben ein Hotel mit 15 Zimmern und möchten gern Ihren Kunden eine Reservierung im Internet anbieten. Die Vorteile liegen auf der Hand: Ihr Kunde kann sich die noch freien Zimmer für seinen Aufenthalt anzeigen lassen und so optimal planen. Bereits im Internet reservierte Zimmer werden bei der nächsten Anfrage nicht mehr angezeigt.
Das Programm soll hier in zwei Stufen entwickelt werden. In der ersten Stufe wird die notwendige Tabelle mit einigen Beispieldaten angelegt. Weiterhin wird in der ersten Stufe erläutert, wie man ein freies Zimmer im angegebenen Zeitraum findet:
<html>
<head>
<title>Hotelbuchung</title>
</head>
<body>
<?
$db = mysql_connect('localhost', 'root');
mysql_query("use test", $db);
$sql = "drop table if exists zimmer";
mysql_query($sql);
$sql = "create table zimmer
(id INT primary key auto_increment,
nummer int,
status ENUM('frei', 'belegt',
'reserviert', 'nicht verfügbar'),
name VARCHAR(80),
anreise DATE,
abreise DATE)";
if (!mysql_query($sql))
print ("Fehler: ".mysql_error()."<br>\n");
Zunächst wird hier die Tabelle angelegt. Um die Sache einfacher zu machen, soll zur Demonstration nur eine Tabelle verwendet werden, in der die verfügbaren Zimmer gespeichert werden.
for ($k = 1; $k <= 15; $k++)
{
$sql = "insert into zimmer
(id, nummer, status) values (0, $k, 'frei')";
mysql_query($sql);
}
Um später die freien Zimmer abfragen zu können, wird für jedes möglicherweise verfügbare Zimmer ein Datensatz angelegt. Dieser "Dummy-Datensatz" dient später lediglich dazu, die verfügbaren Zimmer gegen die schon belegten zu vergleichen.
// Reservierung für Schmidt eintragen $sql = "insert into zimmer (id, nummer, status, name, anreise, abreise) values (0, 3, 'reserviert', 'Schmidt', '2001-04-10', '2001-04-15')"; mysql_query($sql); // Reservierung für Müller eintragen $sql = "insert into zimmer (id, nummer, status, name, anreise, abreise) values (0, 5, 'reserviert', 'Müller', '2001-04-10', '2001-04-15')"; mysql_query($sql);