显示每个用户创建的行数

时间:2017-07-29 11:16:54

标签: php mysql count distinct

我需要在名为" RE"的表中显示每个用户创建的条目数。 只有非空条目必须由名为" DD"的列计数。 结果必须显示在表格中。 我已经尝试过这样做,但无济于事:

<?php
if ($username = 'John Doe') {
    echo "<table>";
    $query = "SELECT user, COUNT(DISTINCT DD) AS number FROM RE GROUP BY user";

    $results = mysqli_query($conn, $query);

    for ($i = 0; $i < count($results); $i++) {

        foreach ($user[$i] as $field => $value) {

            if ($field == "number") {$number = $value;}
        }
        echo "<tr><td>".$user."</td><td>".$number."</td></tr>";
    }
    echo "</table>";
}

?>

我错过了什么?

2 个答案:

答案 0 :(得分:0)

离开我的头顶,计算不同可能不是你想要的,除了你的&#34;空条目的NULL之外,你还可以有空字符串。&#34;如果是这样,那么计算非NULL和非空字符串的条目可能是合适的。

SELECT
    user,
    SUM(CASE WHEN COALESCE(DD, '') <> '' THEN 1 ELSE 0 END) AS number
FROM RE
GROUP BY user

答案 1 :(得分:0)

正确的计算方法&#34;非空&#34;结果是这样的:

SELECT user, COUNT(DD) AS number
FROM RE
GROUP BY user;

这假设&#34;空&#34;是NULL