我是一个非常新的编码和尝试学习php和mysql。我要做的是,在同一个表中对相同的customerid查询进行分组,同时生成一个echo。目前,我的代码回响所有分开的查询。我有一张像这样的table
ID CustomerID DATE Company
1 1 2018-11-19 A
2 1 2018-11-19 A
3 2 2018-11-19 B
4 3 2018-11-19 C
5 4 2018-11-19 D
6 4 2018-11-19 D
我的代码
$query = "SELECT `customers`.ID, `customers`.customerid, `customers`.date
FROM `customers` WHERE month(DATE)= month(CURRENT_DATE()) AND YEAR(DATE) = YEAR(CURRENT_DATE());
$result = $mysqli->query($query);
while($resultquery = $result->fetch_array())
{
$queryresult[] = $resultquery;
}
if (!empty($queryresult)) {
foreach($queryresult as $queryresults)
{
$id = $queryresults['id'];
$customerid = $queryresults['customerid'];
$date = $queryresults['date'];
?>
然后我回音,结果是
Company Name: A
ID CustomerID DATE
1 1 2018-11-19
Company Name: A
ID CustomerID DATE
2 1 2018-11-19
Company Name: B
ID CustomerID DATE
3 2 2018-11-19
Company Name: C
ID CustomerID DATE
4 3 2018-11-19
<?php }} ?>
等。。
但是我想要的是比较customerid,如果有多个具有相同id的,则将它们作为一个组在表中进行回显。
Company Name: A
ID CustomerID DATE
1 1 2018-11-19
2 1 2018-11-19
Company Name: B
ID CustomerID DATE
3 2 2018-11-19
Company Name: C
ID CustomerID DATE
4 3 2018-11-19
我用group|concat进行了一个sql查询,并使用分隔符“|”)对结果进行了分组,它是有效的,但我认为实现这一点不是最好的,所以请帮助。谢谢您
1条答案
按热度按时间xzlaal3s1#
将数据Map到以company为键的键值数组中(在查询中包括company:
$query=“选择
customers
.id号,customers
.客户ID,customers
。日期,公司起始日期customers
其中月(日期)=月(当前日期()),年(日期)=年(当前日期())“;然后使用键对项目进行分组以简化数据收集:
然后您可以使用foreach显示信息: