按ID计算数据库行

时间:2015-10-28 02:43:25

标签: php sql

我正在尝试从数据库中计算$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/>";
            }
        }
    ?>

1 个答案:

答案 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/>";