- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有几种形式:
在第一个表单中我输入:预订日期、客户信息以及我为该日期分配的餐 table 。
我输入的第二种形式:接受订单的数据,我输入日期和表格,我想知道哪个预订 ID 与其相关联。
现在我不知道如何执行此操作,因为使用以下查询未从预订表中提取预订日期、table_number 和预订 ID:
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
这个查询确实有效:
$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
";
问题是我必须手动输入所有内容,甚至包括reservation_id,然后我可以计算出该日期该表的总订单价格。
我想要当天绑定(bind)到预订表的预订中的reservation_id,这样我就知道谁下了什么订单。所以我不必手动输入它。
我已经从 JOINS、Viewuws 和多个 select 语句中查找了所有内容,但我无法弄清楚。也尝试过外键,但这使事情变得更加困惑。
我想要完成的任务: 1.创建和查看预订并分配一个表(这有效) 2.接受订单,并查看表的总订单价格 -> 带有预订ID(和日期)(这有效但只有当我手动将reservation_id输入到sql中时。)
以下是我已经创建的内容。你看我快完成了。只需要最后一个查询即可工作,并且很高兴知道我做错了什么。
我的数据库:
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
下面我将添加两个 php 文件来创建订单如果您复制粘贴两个表单中的代码并使用相同的名称,您应该能够重新创建。
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");
?>
我还有两个用于创建预订的文件,表格看起来像这样,您可能想留下印象:
<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);
最佳答案
预订和分配的 table :
select
reserveringen.Reservering_Id
, orders.Tafel_Id
from reserveringen
inner join orders on orders.Res_ID = reserveringen.Reservering_Id
inner join MenuItem on MenuItem.MenuItemID = orders.MenuItemID
inner join receipt on receipt.ReceiptID = orders.ReceiptID
订单、表格、预订以及菜单项价格总和:
select
orders.OrderID
, reserveringen.Reservering_Id
, orders.Tafel_Id
, sum(MenuItem.ItemPrice) as sum
from reserveringen
inner join orders on orders.Res_ID = reserveringen.Reservering_Id
inner join MenuItem on MenuItem.MenuItemID = orders.MenuItemID
inner join receipt on receipt.ReceiptID = orders.ReceiptID
where orders.OrderID = ? --insert the OrderID
group by
orders.OrderID
, reserveringen.Reservering_Id
, orders.Tafel_Id
关于php - 下订单并接收附带的reservation_id SQL、PHP、html5 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54335418/
我的代码无法通过。我收到错误消息,表明“reservation_id”没有默认值。表reservation_participate_details 的reservation_id 是来自父表reser
我是一名优秀的程序员,十分优秀!