我有一个看起来像这样的表结构,这里将随机生成orderid。
id orderid product Cost userid
1 1 P1 C1 1
2 1 P2 C2 1
3 1 P3 C3 1
4 2 P4 C2 1
5 2 P5 C1 1
6 3 P2 C2 2
7 3 P3 C3 2
8 4 P4 C2 3
9 4 P5 C1 3
我希望根据orderid(按照用户ID)来匹配这些数据,然后将这些数据显示为一个表格,其中具有相同orderid的产品应该一起显示。
它就像一个购物车,我在购物车中放置多个产品,当我确认订单(所有产品在一起)时,会为该订单生成一个唯一的订单。现在我想显示符合该orderid的产品,并希望在每个orderid下显示所有产品
视图应该看起来像这样(根据用户ID)
我目前用于显示数据的代码是
<?php
$sql = "SELECT * FROM cart where userid='".$userid."'";
$result = mysqli_query($con, $sql);
if (mysqli_num_rows($result) > 0)
{
while($row=mysqli_fetch_assoc($result))
{
/*
*
code for displaying tabular data
*
*/
}
}
?>
问题是我无法将他们聚在一起
答案 0 :(得分:0)
使用ORDER BY
<?php
$sql = "SELECT * FROM cart where userid='".$userid."' ORDER BY orderid asc, id asc";
$result = mysqli_query($con, $sql);
if (mysqli_num_rows($result) > 0)
{
while($row=mysqli_fetch_assoc($result))
{
/*
*
code for displaying tabular data
*
*/
}
}
?>
答案 1 :(得分:0)
请解决此问题。但我没有原始数据可供测试
<?php
$sql = "SELECT * FROM cart where userid='".$userid."'";
$result = mysqli_query($con, $sql);
$test=NULL /// first store data in a single array.
if (mysqli_num_rows($result) > 0)
{
while($row=mysqli_fetch_assoc($result))
{
$test[$row['orderid']][]=$row;
}
}
//Now we have stored all data in $test
// test output. please add gui as u need
foreach($test as $orderid => $products)
{
echo'<br/>OrderID: '.$orderid;
foreach($products as $p)
{
echo'<br/>Product: '.$p['product'].' Cost:'.$p['cost'];
}
}
?>
这个实现的好处是所有数据都在数组中获取,以便它可以作为一个整体返回。