Отображение количества строк, созданных каждым пользователем

Мне нужно показать количество записей, созданных каждым пользователем в таблице с именем «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>";
}

?>

Что мне не хватает?

0

Решение

Вдобавок ко всему, подсчет различных значений может быть не тем, что вы хотите, а также у вас может быть пустая строка, в дополнение к NULL для ваших «пустых записей». Если это так, то было бы целесообразно подсчитать записи, которые не являются NULL и не пустая строка.

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

Другие решения

Правильный способ подсчета «непустых» результатов выглядит примерно так:

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

Это предполагает, что «пустой» NULL,

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector