将结果拆分为while循环

时间:2018-05-01 05:35:27

标签: php mysqli

这里我使用查询来获取许可证号码的最后两个碰撞发生日期,如下所示:

<?php
$licence=$_POST['licence'];
$sel=mysqli_query($con,"select cdate from tblcollision where licence_number='$licence'");
while($s=mysqli_fetch_row($sel))
{
    echo $s[2];
}
?>

我希望将结果拆分为单独的字段。这意味着文本字段中的date1和另一个文本字段中的date2。其实我什么都不知道。请帮我。  我的数据库设计是

+--------------------------------------------------+
|    CID    |  ID  |  LICENCE_NUMBER  |   CDATE   |
+--------------------------------------------------+
|    1      |  1   |  3/4858/2012     | 2018-02-06 |
|    2      |  1   |  3/4858/2012     | 2018-03-20 |
+--------------------------------------------------+

1 个答案:

答案 0 :(得分:0)

正如mickmackusa所述,如果针对单个许可证号过滤查询,则无法在SQL语句中对结果进行分组,然后在PHP中展开结果。只需读取行并对结果日期进行计算。

但是,以更一般的方式,如果处理多个许可证,可以在SQL语句中进行分组。尽管增加了爆炸结果的成本,但它将简化分组过程。

您需要在查询中使用GROUP_CONCAT

SELECT licence_number, GROUP_CONCAT(cdate) AS Events_dates
FROM tblcollision
WHERE licence_number='$licence'
GROUP BY licence_number;

这将返回:

3/4858/2012 | 2018-02-06, 2018-03-20