我正在尝试从数据库中计算$active_ids
。但我不知道如何做到最好。作为免责声明,我还在学习MySQL / PHP。
这就是它现在的回声
1,3,4,1,1
并且如果算起来会是什么样子
3,1,1
<?php
$active_ids = '1, 3, 4';
$query = "SELECT * FROM users WHERE id IN ({$active_ids})";
$result = $mysqli->query($query);
if($result->num_rows > 0){
while($row = $result->fetch_assoc()){
echo $row['username'], "<br/>";
}
$query = "SELECT COUNT(*) FROM timetable WHERE dj IN ({$active_ids})";
$result = $mysqli->query($query);
while($row = $result->fetch_assoc()){
echo $row['dj'], "<br/>";
}
}
?>
答案 0 :(得分:1)
我真的不懂PHP,但我知道SQL。听起来你想要使用GROUP BY子句,如下所示:
select dj, count(*) as n from timetable
where dj in ({$active_ids})
group by dj
选择的每一行都有两列。第一列(名为“dj”)是dj的用户ID,第二列(名为“n”)是具有该dj id的时间表中的条目数。您应该可以打印这样的计数:
echo $row['n'], "<br/>";