У меня проблема с моим скриптом php, который подсчитывает записи столбца id, которые соответствуют определенному идентификатору вопросника. Результаты кажутся довольно антисоциальным и просто не хотят, чтобы группа по некоторым причинам ....Группа по id не группируется в php
$sql30 = <<<SQL
SELECT id, COUNT(id)
FROM `QuestionnaireAnswers`
WHERE questionnaireID='$questionnaireID'
GROUP BY id
SQL;
if(!$result30 = $db->query($sql30)){ die('There was an error running the query [' . $db->error . ']');}
while($row30 = $result30->fetch_assoc()){
if ($row30['COUNT(id)'] == '' OR $row30['COUNT(id)'] == '0'){$numberofresponses = '0';}
else {$numberofresponses = $row30['COUNT(id)'];}
echo '<td>'.$numberofresponses.'</td>';
}
Если я использую образец questionnaireID из 1327809154 и выполнить следующий запрос в PHPMyAdmin:
SELECT id, COUNT(id)
FROM `QuestionnaireAnswers`
WHERE questionnaireID = '1327809154'
GROUP BY id
LIMIT 0 , 30
я получаю следующие результаты:
id COUNT(id)
129 1
130 1
131 1
132 1
133 1
134 1
277 1
278 1
280 1
281 1
282 1
284 1
290 1
419 1
424 1
425 1
426 1
так ..... это, кажется, подсчет результатов, но не группируя их, чтобы дать мне в общей сложности .........
EDIT, я теперь изменил его:
$sql30 = <<<SQL
SELECT questionnaireID, COUNT(questionnaireID)
FROM `QuestionnaireAnswers`
WHERE questionnaireID='$questionnaireID'
GROUP BY questionnaireID
SQL;
if(!$result30 = $db->query($sql30)){ die('There was an error running the query [' . $db->error . ']');}
while($row30 = $result30->fetch_assoc()){
if ($row30['COUNT(questionnaireID)'] == '' OR $row30['COUNT(questionnaireID)'] == '0'){$numberofresponses = '0';}
else {$numberofresponses = $row30['COUNT(questionnaireID)'];}
echo '<td>'.$numberofresponses.'</td>';
}
Это возвращает:
questionnaireID COUNT(questionnaireID)
1327809154 17
это работает в PHPMyAdmin, но почему-то ничего не возвращается в мой сценарий, столбец таблицы, где счетчик должно быть пустым.
ahh Я вижу, так что было бы лучше сгруппировать с помощью questionnaireID? –
Хорошо, что, похоже, работает в phpmyadmin, если я использую questionnaireID, так как он возвращает 17, но по какой-то причине в моем выпуске скрипта у меня все еще есть пустой столбец в моей таблице. –
Да, если вам это нужно в результате. В противном случае вы можете просто выбрать 'COUNT (id)'. – joe776