我有一个mysql表,其中包含我的购物车数组中的商品,例如item_id,大小,数量以及它们在每一行中都有一个订单号,所以如果我有3个项目,那么这三行的订单ID为2.还有另一个名为orders的表,其中包含这些项目的订单号和名称,地址等我希望能够打印出每个订单号和与该订单号匹配的项目,但是它重复订单号并将其打印出三次,无论如何我可以只有订单号:1然后三个这下面的项目?
此查询会打印出正确的信息,但会显示orderid 3次
$sql = mysql_query("SELECT transactions.*, orders.orderid, orders.date
FROM transactions
LEFT JOIN orders
ON transactions.orderid=orders.orderid
WHERE orders.userid = '$userID'");
答案 0 :(得分:1)
mysql_query在技术上根本不显示任何内容。它只是从您的数据库中查询您的数据,并使其可以在本地访问,以便根据您的需要进行操作。 因此,您实际需要更改内容的地方在于显示代码。它可以像以下一样按预期工作。
first = true;
while ($row = mysql_fetch_assoc($sql)){
if (first){
// put everything that shall only be written once here.
echo $row["orderid"];
first = false;
}
// put everything that shall be written for every row here.
echo $row["date"];
}
答案 1 :(得分:0)
以FlyingFoX为例
$currentOrderId = 0;
while ($row = mysql_fetch_assoc($sql)){
if ($currentOrderId != $row["orderid"]){
// put everything that shall only be written once here.
echo $row["orderid"];
$currentOrderId = $row["orderid"];
}
// put everything that shall be written for every row here.
echo $row["date"];
}