首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下单并接收附带的reservation_id、html5表单

下单并接收附带的reservation_id、html5表单
EN

Stack Overflow用户
提问于 2019-01-24 04:50:33
回答 1查看 46关注 0票数 0

我有几个表单:

在第一个表单中,我输入了:预订日期、客户信息以及我为该日期分配给他们的表。

我在第二个表单中输入:要接受订单的数据,我输入日期和表格,我想知道哪个预订ID与此相关联。

现在我不知道如何做到这一点,因为使用以下查询没有将预订日期、table_number和预订id从预留表中提取出来:

代码语言:javascript
复制
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

不过,此查询确实有效:

代码语言:javascript
复制
$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,然后我可以计算出该表在该日期的总订单价格。

我想要那天被绑定到预约桌的预订的reservation_id,这样我就可以知道谁下了什么订单。这样我就不必手动输入了。

我已经查找了从JOINS、Vieuws到多个select语句的所有内容,但我找不到它。我也尝试过外键,但这让事情变得更加混乱。

我要做的是:1.创建和查看预订并分配一个表(这行得通)2.接受订单,查看带有reservation_id (和日期)的表->的totalorderprice (这行得通,但只有在我手动将reservation_id输入sql中时才行)。)

下面是我已经创建的内容。你看我就快做完了。只需要这个最后的查询工作,并将非常高兴知道我做错了什么。

我的数据库:

代码语言:javascript
复制
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:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
<?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");





?>

我还有两个用于创建预订的文件,表单看起来像这样,你可能想要有一个印象:

代码语言:javascript
复制
<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);
EN

回答 1

Stack Overflow用户

发布于 2019-01-24 06:21:47

预留和分配的表:

代码语言:javascript
复制
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

菜单项价格的顺序、表格、预留和总和:

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54335418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档