我正在使用管理员php数据库中的数据生成收据,而我能弄清楚如何做的唯一方法是编写许多这样的sql语句:
我还需要一种方法,能够在HTML页面上使用提交表单来更改订单编号,并使收据更新为相应的商品
$sql = 'SELECT * FROM cust NATURAL JOIN orderpay NATURAL JOIN item NATURAL JOIN tran WHERE orderid =15';
$resultCustomer = mysqli_query($conn, $sql);
while($row = mysqli_fetch_array($resultCustomer, MYSQLI_NUM)) {
$orderid = $row[0];
$itemid = $row[1];
$custid = $row[2];
$name = $row[3];
$email = $row[4];
$address = $row[5];
$city = $row[6];
$country = $row[7];
$date = $row[8];
$cardnum = $row[9];
$cardtype = $row[10];
$totalpay = $row[11];
$iname = $row[12];
$unitprice = $row[13];
$cat = $row[14];
$quantity = $row[15];
$totalPrice = $unitprice * $quantity;
}
$sql1 = 'SELECT * FROM cust NATURAL JOIN orderpay NATURAL JOIN item NATURAL JOIN tran WHERE cat = "chilled" AND orderid = 15';
$resultCustomer1 = mysqli_query($conn, $sql1);
$row1 = mysqli_fetch_assoc($resultCustomer1);
$sql2 = 'SELECT * FROM cust NATURAL JOIN orderpay NATURAL JOIN item NATURAL JOIN tran WHERE cat = "drinks" AND orderid = 15';
$resultCustomer2 = mysqli_query($conn, $sql2);
$row2 = mysqli_fetch_assoc($resultCustomer2);
$sql3 = 'SELECT * FROM cust NATURAL JOIN orderpay NATURAL JOIN item NATURAL JOIN tran WHERE cat = "foodcupboard" AND orderid = 15';
$resultCustomer3 = mysqli_query($conn, $sql3);
$row3 = mysqli_fetch_assoc($resultCustomer3);
$sql4 = 'SELECT * FROM cust NATURAL JOIN orderpay NATURAL JOIN item NATURAL JOIN tran WHERE cat = "fresh" AND orderid = 15';
$resultCustomer4 = mysqli_query($conn, $sql4);
$row4 = mysqli_fetch_assoc($resultCustomer4);
$sql5 = 'SELECT * FROM cust NATURAL JOIN orderpay NATURAL JOIN item NATURAL JOIN tran WHERE cat = "frozen" AND orderid = 15';
$resultCustomer5 = mysqli_query($conn, $sql5);
$row5 = mysqli_fetch_assoc($resultCustomer5);
$sql6 = 'SELECT * FROM cust NATURAL JOIN orderpay NATURAL JOIN item NATURAL JOIN tran WHERE cat = "nonfood" AND orderid = 15';
$resultCustomer6 = mysqli_query($conn, $sql6);
$row6 = mysqli_fetch_assoc($resultCustomer6);
$sql7 = 'SELECT quantity FROM cust NATURAL JOIN orderpay NATURAL JOIN item NATURAL JOIN tran WHERE cat = "chilled" AND orderid = 15';
$resultCustomer7 = mysqli_query($conn, $sql7);
$row7 = mysqli_fetch_assoc($resultCustomer7);
$sql8 = 'SELECT unitprice FROM cust NATURAL JOIN orderpay NATURAL JOIN item NATURAL JOIN tran WHERE cat = "chilled" AND orderid = 15';
$resultCustomer8 = mysqli_query($conn, $sql8);
$row8 = mysqli_fetch_assoc($resultCustomer8);
$sql9 = 'SELECT * FROM cust NATURAL JOIN orderpay NATURAL JOIN item NATURAL JOIN tran WHERE cat = "chilled" AND orderid = 15';
$resultCustomer9 = mysqli_query($conn, $sql9);
$row9 = mysqli_fetch_assoc($resultCustomer9);
$sql10 = 'SELECT quantity FROM cust NATURAL JOIN orderpay NATURAL JOIN item NATURAL JOIN tran WHERE cat = "drinks" AND orderid = 15';
$resultCustomer10 = mysqli_query($conn, $sql10);
$row10 = mysqli_fetch_assoc($resultCustomer10);
$sql11 = 'SELECT unitprice FROM cust NATURAL JOIN orderpay NATURAL JOIN item NATURAL JOIN tran WHERE cat = "drinks" AND orderid = 15';
$resultCustomer11 = mysqli_query($conn, $sql11);
$row11 = mysqli_fetch_assoc($resultCustomer11);
$sql12 = 'SELECT * FROM cust NATURAL JOIN orderpay NATURAL JOIN item NATURAL JOIN tran WHERE cat = "drinks" AND orderid = 15';
$resultCustomer12 = mysqli_query($conn, $sql12);
$row12 = mysqli_fetch_assoc($resultCustomer12);
$sql13 = 'SELECT quantity FROM cust NATURAL JOIN orderpay NATURAL JOIN item NATURAL JOIN tran WHERE cat = "foodcupboard" AND orderid = 15';
$resultCustomer13 = mysqli_query($conn, $sql13);
$row13 = mysqli_fetch_assoc($resultCustomer13);
$sql14 = 'SELECT unitprice FROM cust NATURAL JOIN orderpay NATURAL JOIN item NATURAL JOIN tran WHERE cat = "foodcupboard" AND orderid = 15';
$resultCustomer14 = mysqli_query($conn, $sql14);
$row14 = mysqli_fetch_assoc($resultCustomer14);
$sql15 = 'SELECT * FROM cust NATURAL JOIN orderpay NATURAL JOIN item NATURAL JOIN tran WHERE cat = "foodcupboard" AND orderid = 15';
$resultCustomer15 = mysqli_query($conn, $sql15);
$row15 = mysqli_fetch_assoc($resultCustomer15);
?>
请帮助!
答案 0 :(得分:0)
当您从联接中SELECT *
时,将获得所有字段,因此无需进行后续的重复查询,而只需检索单个字段即可。
此外,您可以更改WHERE
条件以对多个字段进行过滤。例如,“ WHERE orderid = 15 AND cat IN(“饮料”,“冷藏”,“等”)。
这意味着您可以将所有15个查询减少为一个查询:
SELECT *
FROM cust
NATURAL JOIN orderpay
NATURAL JOIN item
NATURAL JOIN tran
WHERE cat IN ("chilled", "drinks", "etc.")
AND orderid = 15;
这为您提供了一个大表结果,并将其作为循环遍历mysqli_fetch_assoc()
结果以检索所有数据的练习。
注意:
item.*
foo LEFT INNER JOIN table ON(foo.table = table.id)
,以便您的条件更加明确。