在同一行中插入每种类型的项目的数量

时间:2018-04-03 13:39:29

标签: php mysql html-table

我有问题,每个项目的数量出现在同一行。学号为1234的学生应该有他的大包数量为2,小包数量应该是3.而学生数65527应该有3大包但0小包。 下面是我使用GROUP_CONCAT命令之前表格的显示方式:

年份不会出现在年份列,而是出现在小行列中,数量显示在不同的行上。

下面是我尝试使用GROUP_CONCAT命令时的样子:

年份仍然没有出现在年份列中,每个行李的数量出现在同一列上。

这是我的mysql GROUP_CONCAT命令的样子:

$sql_join = "SELECT s.student_id,s.student_name,s.student_contact,s.student_status,s.student_room, i.invstu_year, i.invstu_sem, l.location_house, GROUP_CONCAT(b.baggage_type) as 'Products', GROUP_CONCAT(i.invbag_quantity) as 'Quantity', GROUP_CONCAT(b.price) as 'Price' FROM inventory i JOIN student s on i.invstu_id = s.student_id JOIN baggage b on b.baggage_id = i.invbag_id JOIN location l on l.location_id = i.invloc_id GROUP BY i.invstu_id";
$result_join =  mysqli_query($connect,$sql_join);       

这就是我为table指定命令的方法:

<?php
    $counter = 1;
    while($row_join= mysqli_fetch_assoc($result_join))
    { ?>
     <tr>
     <td><?php echo $counter; ?></td>
     <td><?php echo $row_join["student_name"]; ?></td>
     <td><?php echo $row_join["student_id"]; ?></td>
     <td><?php echo $row_join["Quantity"]; ?></td>
     <td><?php echo $row_join["invstu_year"]; ?></td>
     <td><?php echo $row_join["invstu_sem"]; ?></td>
     <td><?php echo $row_join["location_house"]; ?></td>
     </tr>
    <?php   
        $counter++;
    }
    ?>

我试图寻找其他例子,但找不到它。我可能会错过一些例子,如果有任何我可以参考的建议示例,我会非常感激。

1 个答案:

答案 0 :(得分:0)

GROUP_CONCAT会将这两个值组合在同一个字符串中,如果值总是在同一个地方,您可以使用PHP Explode来拆分字符串。

这样的东西
$Bags = explode(",", $row_join["Quantity"]);

<td><?php echo $Bags[0]; ?></td>
<td><?php echo $Bags[1]; ?></td>

为了澄清,它正在将值分组为“2,3”当前,作为函数爆炸将字符串拆分为数组,$ Bags变为[2,3],因此您将使用$ Bags [0]访问第一个号码,$ Bags [1]访问第二个号码。