Hallo zusammen,
zunächst, ich bin ein Frischling in PHP und MySQL, habt bitte ein wenig Nachsicht mit mir.
Zu meinem Problem: Zunächst habe ich einen Datensatz in die Tabelle: "Anfragen" geschrieben. Zu jeder ERSTEN Anfrage eines Tages möchte ich in einer zweiten Tabelle: "Reservierung" mehrere Datensätze schreiben. Damit ich nicht mit jeder neuen Anfrage erneut Reservierungen erzeuge, frage ich mit dem Anfragedatum der ERSTEN Anfrage in den Reservierungen nach, ob schon ein Datensatz vorhanden ist. Falls zum Anfragedatum keine Reservierungen existieren, möchte ich mehrere Reservierungen schreiben. Falls Reservierungen existieren, das sollte nach der Logik bei jeder weiteren Anfrage der Fall sein, soll nichts passieren. Ich hoffe, dass ich das Problem gut beschrieben habe.
Alles funktioniert, bis auf den Select-Vergleich des Reservierungs-Datums gegen das Anfrage-Datum.
Vergleiche ich im Select-Befehl der Reservierung das Reservierungsdatum gegen eine Konstante z.B. "2017-04-02" funktioniert die Prüfung, vergleiche ich gegen ein übergebenes Datenfeld z.B. $Suchfeld (mit dem Inhalt "2017-04-02" funktioniert die Prüfung NICHT. Ich suche schon 3 Tage erfolglos nach einer Lösung. Danke für Eure Unterstützung und vielleicht sogar mit einer Lösung dieses Problems.
Hallo nochmal,
hier habe ich den Programmcode angefügt:
1. das Hauptprogramm
<html>
<?php
header('Content-Type: text/html; charset=ISO-8859-1');
?>
<head>
<?php
if (isset($_POST['gesendet']))
{
$con = mysqli_connect("","root");
mysqli_select_db($con, "firma");
$anfrdatum = $_POST['rd'];
$anfrzeit = $_POST['rz'];
$anfranzpers = $_POST['ap'];
$anfrkundenach = $_POST['kn'];
$anfrkundevor = $_POST['kv'];
$anfrkundetel = $_POST['kt'];
$anfrpersnr = $_POST['pn'];
$anfrstatus = $_POST['st'];
echo "<p>";
echo "Das ist das Anfragedatum: $anfrdatum";
echo "</p>";
$sql = "insert into anfragen
(anfrdatum, anfrzeit, anfranzpers, anfrkundenach, anfrkundevor, anfrkundetel, anfrpersnr, anfrstatus) value
('"
. $anfrdatum . "', '"
. $anfrzeit . "', '"
. $anfranzpers . "', '"
. $anfrkundenach . "', '"
. $anfrkundevor . "', '"
. $anfrkundetel . "', '"
. $anfrpersnr . "', '"
. $anfrstatus . "')";
mysqli_query($con, $sql);
$num = mysqli_affected_rows($con);
if ($num>0)
{
echo "<p><font color='#00aa00'>";
echo "Es wurde 1 Anfrage hinzugefügt";
echo "</font></p>";
/*
Nur die erste Anfrage des Tages generiert Reservierungen.
Dazu einen Select auf die Reservierungen mit dem Anfrage-Datums absetzen.
Werden keine Reservierung gefunden, dann werden alle Reservierungen erzeugt.
Datenübergabe:
Die Session muss immer zuerst gestartet werden, bevor
eine Ausgabe an den Browser erfolgt !!!
*/
SESSION_START();
$_SESSION['suchdatum'] = $anfrdatum;
include "ersteanfrage_inc.php";
// include "reservierungen_inc.php"; /* später aktivieren
}
else
{
echo "<p><font color='#ff0000'>";
echo "Es ist ein Fehler aufgetreten, ";
echo "es wurde kein Datensatz hinzugefügt";
echo "</font></p>";
}
// mysqli_close($con);
}
?>
</head>
<body>
<p>Geben Sie bitte einen Anfrage-Datensatz ein<br />
und senden Sie das Formular ab:</p>
<form action = "db_anfr_resgen.php" method = "post">
<p><input name="rd" /> Anfrage-Reservierungs-Datum</p>
<p><input name="rz" /> Anfrage-Reservierungs-Zeit</p>
<p><input name="ap" /> Anzahl-Personen</p>
<p><input name="kn" /> Kunde-Nachname</p>
<p><input name="kv" /> Kunde-Vorname</p>
<p><input name="kt" /> Kunde-Telefon</p>
<p><input name="pn" /> Personal-Nr</p>
<p><input name="st" /> Status</p>
<p><input type="submit" name="gesendet" />
<input type="reset" /></p>
</form>
<p>Alle Datensätze <a href="db_anfr_resgen_tab.php">anzeigen</a></p>
<?php
exit();
?>
</body>
</html>
// Hier beginnt die Bearbeitung der Reservierung
<?php
if (isset($_POST['gesendet']))
{
$con = mysqli_connect("","root");
mysqli_select_db($con, "firma");
$resdatum = $_POST['rd'];
$reszeit = $_POST['rz'];
$tisch = $_POST['ti'];
$anzpers = $_POST['ap'];
$kunde_id = $_POST['ki'];
$sql = "insert into reservierung
(resdatum, reszeit, tisch, anzpers, kunde_id, res_id) value ('"
. $resdatum . "', '"
. $reszeit . "', '"
. $tisch . "', '"
. $anzpers . "', '"
. $kunde_id . "', '"
. NULL . "')";
mysqli_query($con, $sql);
$num = mysqli_affected_rows($con);
if ($num>0)
{
echo "<p><font color='#00aa00'>";
echo "Es wurde 1 Datensatz hinzugefügt";
echo "</font></p>";
}
else
{
echo "<p><font color='#ff0000'>";
echo "Es ist ein Fehler aufgetreten, ";
echo "es wurde kein Datensatz hinzugefügt";
echo "</font></p>";
}
mysqli_close($con);
}
?>
</head>
<body>
<h2>Reservierungen erzeugen</h2>
<p>Reservierungen entstehen durch Anfragen und Abgleich freier Tische</p>
<p>Geben Sie VORLÄUFIG eine vollständige Reservierung ein<br />
und senden Sie das Formular ab:</p>
<form action = "db_res.php" method = "post">
<p><input name="rd" /> Res.Datum</p>
<p><input name="rz" /> Res.Zeit</p>
<p><input name="ti" /> Tisch</p>
<p><input name="ap" /> Anz.Pers</p>
<p><input name="ki" /> Kunde.ID</p>
<p><input type="submit" name="gesendet" />
<input type="reset" /></p>
</form>
<p>Alle Datensätze <a href="db_restab.php">anzeigen</a></p>
</body>
</html>
Alles anzeigen
2. Das Unterprogramm:
<html>
<?php
header('Content-Type: text/html; charset=ISO-8859-1');
?>
<body>
<?php
echo "Aus der SESSION wurde übergeben: " . $_SESSION['suchdatum'];
echo " <br />";
$suchdatum = $_SESSION['suchdatum'];
var_dump( $_SESSION['suchdatum'] );
/* Verbindung aufnehmen */
$con = mysqli_connect("","root");
/* Datenbank auswählen */
mysqli_select_db($con, "firma");
/* SQL-Abfrage ausführen */
$sql = "select resdatum from reservierungen";
// $sql .= " where resdatum = $suchdatum";
$sql .= " where resdatum = '2017-04-02'";
$res = mysqli_query($con, $sql);
echo "Feld Suchdatum ist: $suchdatum<br />";
/* Anzahl Datensätze ermitteln und ausgeben */
$num = mysqli_num_rows($res);
echo "$num Reservierungs-Datensätze gefunden<br />";
/* Datensätze aus Ergebnis ermitteln, */
/* in Array speichern und ausgeben */
while ($dsatz = mysqli_fetch_assoc($res))
{
echo $dsatz['resdatum'] . "<br />";
}
/* Verbindung schließen */
mysqli_close($con);
?>
</body>
</html>
Alles anzeigen
3. die Bildschirmausgabe:
Das ist das Anfragedatum: 2017-04-02
[COLOR=#00aa00]Es wurde 1 Anfrage hinzugefügt[/COLOR]
Aus der SESSION wurde übergeben: 2017-04-02
string(10) "2017-04-02" Feld Suchdatum ist: 2017-04-02
3 Reservierungs-Datensätze gefunden
2017-04-02
2017-04-02
2017-04-02
Geben Sie bitte einen Anfrage-Datensatz ein
und senden Sie das Formular ab:
Anfrage-Reservierungs-Datum
Anfrage-Reservierungs-Zeit
Anzahl-Personen
Kunde-Nachname
Kunde-Vorname
Kunde-Telefon
Personal-Nr
Status
Alle Datensätze [URL='http://localhost/restaurant/anfragen/anfrage_reservierung/db_anfr_resgen_tab.php']anzeigen[/URL]
Alles anzeigen
Danke für Eure Hilfe.