Haciendo un pedido y reciba el Id. De reserva que viene con el formulario SQL, PHP, html5
Tengo un par de formas:
En el primer formulario que ingreso: fecha de reserva, información del cliente y la tabla que les estoy asignando para esa fecha.
I el segundo formulario que ingreso: Datos para tomar un pedido, ingreso la fecha y la tabla y quiero saber qué ID de reserva está vinculada a eso.
Ahora no puedo entender cómo hacerlo, ya que la fecha de reserva, el número de tabla y el ID de reserva no se extraen de la tabla de reserva utilizando la siguiente consulta:
SELECT o.OrderID
, o.MenuItemID
, o.ReceiptID
, r.Res_Datum
, r.Tafel_Id
, r.Reservering_Id
FROM Orders o
JOIN reserveringen r
ON o.Res_ID = r.Reservering_Id
GROUP
BY o.Res_Datum
, o.Res_ID
, o.Tafel_Id
in embargo, esta consulta funciona:
$sql = "
SELECT O.Res_Datum
, O.Res_ID
, O.Tafel_Id
, O.ReceiptID
, SUM(MI.ItemPrice) TotalReceiptPrice
FROM Orders O
JOIN MenuItem MI
ON O.MenuItemID = MI.MenuItemID
GROUP
BY O.Res_Datum
, O.Res_ID
, O.Tafel_Id
";
El problema con esto es que tengo que ingresar todo manualmente, incluso el ID de reserva y luego puedo calcular cuál es el precio total del pedido de esa tabla para esa fecha.
Quiero el ID de reserva de la reserva que está vinculada a la tabla reservada ese día, así que sé quién hizo qué pedido. Por lo tanto, no tengo que escribirlo manualmente.
He buscado todo, desde JOINS, Vieuws y declaraciones de selección múltiple, pero no puedo entenderlo. También probé claves foráneas pero esto hace las cosas aún más confusas.
Lo que estoy tratando de lograr: 1.Para hacer y ver reservas y asignar una tabla (esto funciona) 2.Para tomar una orden y ver el precio total de la tabla -> con booking_id (y fecha) (esto funciona pero solo cuando ingreso el ID de reserva manualmente en sql.)
Abajo es lo que ya he creado. Ya ves que ya casi termino. Solo necesito esta última consulta para trabajar, y estaría muy feliz de saber lo que estoy haciendo mal.
Mi base de datos:
MenuItem:
MenuItemID int(11)
ItemName varchar(255)
ItemPrice double
orders:
OrderID int(11)
MenuItemID int(11)
ReceiptID int(11)
Res_Datum date
Tafel_Id int(11)
Res_ID int(11)
receipt:
ReceiptID int(11)
ReceiptPrice double
reserveringen:
Reservering_Id int(11)
Tafel_Id int(11)
VoorNaam varchar(255)
AchterNaam varchar(255)
TelefoonNummer varchar(255)
Email varchar(255)
Res_Datum date
continuación, voy a agregar dos de mis archivos php para crear un pedido. Si copia, pegue el código de los 2 formularios y use el mismo nombre, podrá volver a crearlos.
Bestelling.php:
<form action="/restaurant/maak_bestelling.php" method="POST">
<h2>Enter Order</h2>
Table Number:<br>
<input type="text" name="tafelnummer" value=""><br><br>
Receipt Id:<br>
<input type="text" name="receiptid" value=""><br><br>
Menu_Item:<br>
<input type="text" name="menu_item" value=""><br><br>
Date: <br>
<input type="date" name="date" value=""><br><br>
<input type="submit" value="Submit">
</form>
<h2>Pending Orders:</h2>
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "restaurant";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//MY Query i am trying to run
// $sql = "SELECT O.Res_Datum, R.Reservering_Id, O.Tafel_Id,O.ReceiptID, SUM(MI.ItemPrice) AS TotalReceiptPrice
// FROM Orders, Reserveringen AS O INNER JOIN MenuItem AS MI ON O.MenuItemID = MI.MenuItemID
// AS O LEFT JOIN Reservering_Id AS R on O.Reservering_Id = R.reservering_Id
// GROUP BY O.Res_Datum, O.Res_ID, O.Tafel_Id ";
//The statement I get with an Empty reservation_ID
$sql = "SELECT O.Res_Datum, O.Res_ID, O.Tafel_Id,O.ReceiptID, SUM(MI.ItemPrice) AS TotalReceiptPrice
FROM Orders AS O INNER JOIN MenuItem AS MI ON O.MenuItemID = MI.MenuItemID
GROUP BY O.Res_Datum, O.Res_ID, O.Tafel_Id ";
$result = $conn->query($sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "Res_datum: ". $row["Res_Datum"]. " ReservationID : " . $row["Res_ID"]. " - Table_Number: " . $row["Tafel_Id"]. " Total Order Price: " . $row["TotalReceiptPrice"]." ". "<br>";
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>
</div>
maak_bestelling.php:
<?php
$con = mysqli_connect('localhost','root','');
if(!$con) {
echo 'Not connected with server';
}
if(!mysqli_select_db ($con,'restaurant')) {
echo 'Database Not selected';
}
$tablenumber = $_POST['tafelnummer'];
$receiptid = $_POST['receiptid'];
$menu_item = $_POST['menu_item'];
$date = $_POST['date'];
$sql = "INSERT INTO Orders (orders.Tafel_Id, orders.ReceiptID, orders.MenuItemID, orders.Res_Datum )
VALUES ('$tablenumber', '$receiptid', '$menu_item', '$date')";
if(!mysqli_query($con,$sql)){
echo 'insert did not work';
}else {
echo 'Order created successfully';
}
header("refresh:1; url=bestelling.php");
?>
Tengo dos archivos más para crear la reserva. El formulario se ve así si desea tener una impresión:
<form action="/restaurant/maak_reservering.php" method="POST">
Voornaam:<br>
<input type="text" name="voornaam" value=""><br><br>
Achternaam:<br>
<input type="text" name="achternaam" value=""><br><br>
Email:<br>
<input type="text" name="email" value=""><br><br>
Telefoonnummer:<br>
<input type="text" name="telefoonnummer" value=""><br><br>
Tafel:<br>
<input type="text" name="tafel" value=""><br><br>
Reserverings Datum:<br>
<input type="date" name="datum" value="dd//mm//yy"><br><br>
<input type="submit" value="Submit">
</form>
<div id="Tafels">
<h3>Gereserveerde Tafels</h3>
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "restaurant";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// $sql = "SELECT reserveringen.Tafel_Id, reserveringen.Res_Datum
// FROM reserveringen
// INNER JOIN tafels ON reserveringen.Tafel_Id=tafels.Tafel_Id";
// $result = $conn->query($sql);
//andere query welke ik heb geprobeerd met reservering nummer
//tafels.tafel_Nummer,reserveringen.Res_Datum,reserveringen.Reservering_Id FROM tafels INNER JOIN reserveringen ON reserveringen.Res_Datum = reserveringen.Res_Datum AND reserveringen.Reservering_Id = reserveringen.Reservering_Id
//$sql = "SELECT tafels.tafel_Nummer,reserveringen.Res_Datum,reserveringen.Reservering_Id FROM tafels LEFT JOIN reserveringen ON reserveringen.Res_Datum = reserveringen.Res_Datum AND reserveringen.Reservering_Id = reserveringen.Reservering_Id";
$sql = "SELECT Reservering_Id, Tafel_Id, Res_Datum, VoorNaam, AchterNaam FROM reserveringen ORDER BY Res_Datum DESC";
$result = $conn->query($sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "reserveringID: ". $row["Reservering_Id"]. " tafelnummer: " . $row["Tafel_Id"]. " - Reservering_datum: " . $row["Res_Datum"]. " " . $row["VoorNaam"]." ".$row["AchterNaam"]. " ". "<br>";
}
} else {
echo "0 results";
}
mysqli_close($conn);