gpt4 book ai didi

php - 在 php 中进行循环时没有获取所有必要的数据

转载 作者:行者123 更新时间:2023-11-29 15:57:11 24 4
gpt4 key购买 nike

我正在尝试创建一个页面,在其中列出在不同月份出售商品的所有用户,但每个用户可能在该月的不同日期出售商品。这是什么我正在努力获得。

January
user 1
user 4
user 5

February
user 4
user 2
user 3

我已经设法让它列出月份,但它每月只显示一个用户。例如

January
user 1

February
user 4

这是我的代码

$sql = "SELECT * FROM users INNER JOIN items ON users.id = items.user_id GROUP BY Year(items.sold_date), Month(items.sold_date)";
$result = mysqli_query($con, $sql);

$mnt = "";
while($row = mysqli_fetch_array($result))
{
if($row['sold_date'] != $mnt)
{
echo date('F, Y', strtotime($row['order_date']));
echo "<br/>";
}

echo $row['name'];
}

我的用户表

id | name   | lastname        
1 | user 1 | user 1 lastname
2 | user 2 | user 2 lastname
3 | user 3 | user 3 lastname
4 | user 4 | user 4 lastname
5 | user 5 | user 5 lastname

我的元素表

id| name   |description         | user_id | sold_date
1 | item 1 | item 1 description | 3 | 2017-01-25
2 | item 2 | item 2 description | 1 | 2017-01-30
3 | item 3 | item 3 description | 5 | 2017-02-14
4 | item 4 | item 4 description | 2 | 2017-05-01
5 | item 5 | item 5 description | 1 | 2018-09-06
6 | item 6 | item 6 description | 4 | 2018-10-23

我希望我已经正确解释了。如果没有,请告诉我。

最佳答案

我建议使用GROUP_CONCAT()如果您想在带有分隔符的单行中打印 ids。查询看起来像这样:

SELECT 
Year(items.sold_date) as 'Year Sold',
Month(items.sold_date as 'Month Sold',
GROUP_CONCAT(distinct users.id) as 'Unique User Ids'
FROM users
INNER JOIN items
ON users.id = items.user_id
GROUP BY
Year(items.sold_date),
Month(items.sold_date);

如果您希望在每年/每月的几行中获得所需的结果,您只需将 users.id 列添加到您的组中即可:

SELECT * FROM users
INNER JOIN items
ON users.id = items.user_id
GROUP BY
Year(items.sold_date),
Month(items.sold_date),
users.id;

关于php - 在 php 中进行循环时没有获取所有必要的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56396442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com