Php 仅打印一个订单号以及与该订单号关联的项目
我有一个mysql表,其中包含我购物车数组中的项目,例如项目id、大小、数量,并且每行中都有一个订单号,因此如果我有3个项目,那么这三行的订单id将为2。还有另一个名为orders的表,其中包含这些项目的订单号以及名称、地址等。我希望能够打印出每个订单号以及与该订单号匹配的项目,但是它会重复订单号并打印三次,有没有其他我可以只订购编号:1那么下面的三个项目呢 此查询会打印出正确的信息,但会显示orderid 3次Php 仅打印一个订单号以及与该订单号关联的项目,php,mysql,distinct,Php,Mysql,Distinct,我有一个mysql表,其中包含我购物车数组中的项目,例如项目id、大小、数量,并且每行中都有一个订单号,因此如果我有3个项目,那么这三行的订单id将为2。还有另一个名为orders的表,其中包含这些项目的订单号以及名称、地址等。我希望能够打印出每个订单号以及与该订单号匹配的项目,但是它会重复订单号并打印三次,有没有其他我可以只订购编号:1那么下面的三个项目呢 此查询会打印出正确的信息,但会显示orderid 3次 $sql = mysql_query("SELECT transactions.*
$sql = mysql_query("SELECT transactions.*, orders.orderid, orders.date
FROM transactions
LEFT JOIN orders
ON transactions.orderid=orders.orderid
WHERE orders.userid = '$userID'");
mysql\u查询在技术上根本不显示任何内容。它只是从数据库中查询您的数据,并使其在本地可访问,以便处理您想要的数据。 因此,您实际上需要更改的地方是显示代码。它可以像下面这样按照您的预期工作
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"];
}
以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"];
}
查询不需要更改。。。循环遍历resultset(此处未显示)的代码不。。。你需要在循环代码中做一个测试,只在orderid实际发生变化时才显示它。我想知道如何编写一个if语句来检查orderid是否发生了变化?谢谢,这很好,尽管它不会显示之后的下一个订单号,当用户有两个订单号3和4时,只显示订单号3。谢谢!这已经困扰了我一段时间了,效果很好。