ich muss mich korrigieren, mit DEINEN Code und nur der POST Information hatte ich noch nicht getestet. Werde ich machen und melde mich ein wenig später.
Hallo Arne, ich werde den neuen Code in eine eigene Datei übernehmen und neu testen, dauert ein wenig.
- - - Aktualisiert - - -
Hallo zusammen, ich habe den korrigierten Quellcode von Arne in meinen Ablauf kopiert und getestet. Der Syntaxfehler ist weg! Das Update funktioniert trotzdem nicht, siehe Ausgabeergebnis.
<html>
<?php
header('Content-Type: text/html; charset=ISO-8859-1');
?>
<head>
<link rel="stylesheet" type="text/css" href="tische_buchen.css">
<script type="text/javascript">
function send(ak,id)
{
if(ak==1)
document.f.ak.value = "up";
else
return;
document.f.id.value = id;
document.f.submit();
}
</script>
</head>
<body>
<h2>Tisch belegen</h2>
<p> </p>
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
// error_reporting(-1);
$nach = "Nachname";
$vor = "Vorname";
SESSION_START();
$con = mysqli_connect("","root");
mysqli_select_db($con, "firma");
/* Aktion ausführen */
if(isset($_POST['ak']))
{
/* ändern */
if( $_POST['ak'] == 'up' ) {
$id = $_POST['id'];
$sql_tmp = "update `reservierungen` set `resanzpers` = '{post_id}', `reskundenach` = 'Nachname', `reskundevor` = 'Vorname' where `res_id` = {id}";
$sql = strtr($sql_tmp, [
'{post_id}' => $_POST['pe'][$id],
'{id}' => $id
]);
echo 'Vor mysqli_query, Query = ' . $sql . '<br>';
mysqli_query($con, $sql)
or die('MySQL-Error: ' . mysqli_error($con));
echo 'Reservierungen wurde aktualisiert';
}
}
/* Formular-Beginn */
echo "<form name='f' action='3tische_buchen.php' method='post'>";
echo "<input name='ak' type='hidden' />";
echo "<input name='id' type='hidden' />";
/* Tabellen-Beginn */
echo "\n\n<table border>"
. "<tr>"
. "<td>ResDatum</td>"
. "<td>ResZeit</td>"
. "<td>Tisch</td>"
. "<td>MinPers</td>"
. "<td>MaxPers</td>"
. "<td>AnzPers</td>"
. "<td>Status</td>"
. "</tr>";
/* SQL-Abfrage ausführen */
$resdatum2 = $_SESSION['resdatum2'];
$anzpers = $_SESSION['respersonen'];
echo "Reservierung für Anzahl Personen: " . $anzpers;
echo "<br />";
echo "<br />";
$sql = "select * from reservierungen";
$sql .= " where resdatum = $resdatum2";
$sql .= " and resmin <= $anzpers";
$sql .= " and resmax >= $anzpers";
$sql .= " and resanzpers = 0";
$sql .= " order by resdatum";
$res = mysqli_query($con, $sql);
/* Anzahl Datensätze ermitteln und ausgeben */
$num = mysqli_num_rows($res);
// echo "$num Reservierungs-Datensätze gefunden<br />";
// echo "<br />";
/* Alle vorhandenen Datensätze */
while ($dsatz = mysqli_fetch_assoc($res))
{
$id = $dsatz['res_id'];
echo "\n\n<tr>"
. "<td><input name='rd[$id]' value='" . $dsatz['resdatum'] . "' size='15' /></td>"
. "<td><input name='rz[$id]' value='" . $dsatz['reszeit'] . "' size='10' /></td>"
. "<td><input name='ti[$id]' value='" . $dsatz['restisch'] . "' size='10' /></td>"
. "<td><input name='mi[$id]' value='" . $dsatz['resmin'] . "' size='10' /></td>"
. "<td><input name='ma[$id]' value='" . $dsatz['resmax'] . "' size='10' /></td>"
. "<td><input name='pe[$id]' value='" . $dsatz['resanzpers'] . "' size='10' /></td>"
. "<td><a href='javascript:send(1,$id);'>Tisch wird jetzt belegt</a>"
. "</tr>";
}
echo "</table>";
echo "</form>";
mysqli_close($con);
?>
</body>
</html>
Alles anzeigen
Ausgabeergebnis:
Tisch belegen
Vor mysqli_query, Query = update `reservierungen` set `resanzpers` = '4', `reskundenach` = 'Nachname', `reskundevor` = 'Vorname' where `res_id` = 1105
Reservierungen wurde aktualisiert Reservierung für Anzahl Personen: 2
ResDatumResZeitTischMinPersMaxPersAnzPersStatus Tisch wird jetzt belegt Tisch wird jetzt belegt
Ich habe die beiden Post-Felder mit einem Vorschlagswert vorbelegt (Tagesdatum und Anzahl Personen 2). Da ich keinen Syntax-Fehler bekomme, MUSS doch das Feld $_Post['pe'] vorhanden sein. Vielleicht wird es über die Vorschlagswerte überschrieben???? Noch eine Frage in diesem Zusammenhang. Die beiden Variablen habe ich in der Ausgabe nicht angelistet. Wichtig ist nur die Personenzahl aus dem Post. Kann das zu einem Fehler führen?
- - - Aktualisiert - - -
Hier ein Auszug der DB:
| Alles anzeigen|
Anzahl der Datensätze:
Zeilen filtern: Nach Schlüssel sortieren:
+ Optionen res_id resdatum reszeit restisch resmin resmax resanzpers reskundenach reskundevor reskundetel Bearbeiten Kopieren Löschen 1105 2017-05-02 1 3 2 4
Bearbeiten Kopieren Löschen 1106 2017-05-02 1 5 1 2
Bearbeiten Kopieren Löschen 1107 2017-05-02 1 6 4 8
Bearbeiten Kopieren Löschen 1108 2017-05-02 1 7 2 2
Alles anzeigen
Der ausgewählte Datensatz 1105 wurden nicht geschrieben.
- - - Aktualisiert - - -
Ich habe das Ausgabeergebnis mal per Hardcopy eingefügt. Dann kann man sich den Ablauf besser vorstellen. Über einen LINK im Statusfeld "soll" die Eingabe im Feld Anzpers und die beiden Konstanten in die DB geschrieben werden.
Tisch belegen
Vor mysqli_query, Query = update `reservierungen` set `resanzpers` = '4', `reskundenach` = 'Nachname', `reskundevor` = 'Vorname' where `res_id` = 1105
Reservierungen wurde aktualisiert Reservierung für Anzahl Personen: 2
ResDatum |
ResZeit |
Tisch |
MinPers |
MaxPers |
AnzPers |
Status |
|
|
|
|
|
|
Tisch wird jetzt belegt |
|
|
|
|
|
|
Tisch wird jetzt belegt |
- - - Aktualisiert - - -
Das Hardcopy hat nicht alle Werte gezeigt. Hier noch ein Snapshot, die Tabellenwerte sind aus den bestehenden Datensätze vorbelegt!