我想为我的商店管理员制作一个页面,显示特定产品的订单。 我已经拥有所有订单和产品的参考资料'列中记录的列是唯一的。我尝试了以下查询,但它显示了所有产品以及所请求的产品显示的额外行。我只想要显示要求的特定产品的订单。 $ _REQUEST ['的productid'];正在根据显示列表中所有产品的管理页面获取产品ID,并且该信息正在成功检索。
$reference = $_REQUEST['productid'];
mysqli_query($db,"SELECT * FROM products INNER JOIN orders ON orders.reference='".$reference."'");
感谢任何帮助。
答案 0 :(得分:1)
我只想要要求特定产品的订单 显示
你不想要这个吗?
$reference = mysqli_real_escape_string($db, $_REQUEST['productid']);
mysqli_query($db, "SELECT * FROM orders WHERE reference = " . $reference);
答案 1 :(得分:1)
您的查询只有联接,它缺少WHERE语句:
$reference = $_REQUEST['productid'];
mysqli_query($db,"SELECT *
FROM products
INNER JOIN orders
ON orders.reference='".$reference."'
WHERE products.id = '".$reference."'");
此外,由于您只想检索订单,您可能需要像下面这样重写:
$reference = $_REQUEST['productid'];
mysqli_query($db,"SELECT orders.*
FROM orders
INNER JOIN products
ON orders.reference=products.id
WHERE products.id = '".$reference."'"
GROUP BY orders.id);
现在这是一个正确的JOIN,因为它映射了两个表中的两个字段。此外,由于订单可能有两个对同一产品的引用,我添加了可选的GROUP BY语句,因此每个订单只显示一次(如果没有必要,只删除该部分)。