php - Mysql COUNT,未按预期计数

标签 php mysql sql count while-loop

<分区>

我正在使用以下脚本来计算记录,我认为它应该以这种方式工作。

'一些标题' x4

而是输出 '一些标题' 1x 1x 1x 1x

    include("connectmysqli.php"); 
    if (isset($_GET['questionnaireID'])) {$questionnaireID = $_GET['questionnaireID'];}else {$questionnaireID = '';}
    echo '<p><strong>View Questionnaire Results</strong></p>';

    $sql1 = <<<SQL
        SELECT answer1, COUNT(answer1)
        FROM `QuestionnaireAnswers`
        WHERE questionnaireID='$questionnaireID'
        GROUP BY answer1
    SQL;
    if(!$result1 = $db->query($sql1)){ die('There was an error running the query [' . $db->error . ']');}

    while($row1 = $result1->fetch_assoc()){ 

    echo $row1['COUNT(answer1)'] . ' X <strong>' . $answer1 . '</strong><br />';
    }

这是表格的例子 enter image description here

所以用上面的截图,answer1列统计的时候应该是2x,但是实际显示的是1x 1x

如果我根据 phpmyadmin 中的答案运行查询,我会得到:

enter image description here

最佳答案

您正试图在 PHP 中使用 MySQL 函数(COUNT)。我从未见过这样的用法。 对 answer1 的计数使用别名:

$sql1 = <<<SQL
    SELECT answer1, COUNT(*) as cnt
    FROM `QuestionnaireAnswers`
    WHERE questionnaireID='$questionnaireID'
    GROUP BY questionnaireID
SQL;

然后在 fetch_assoc() 方法之后使用它作为

 echo $row1['cnt'];

关于php - Mysql COUNT,未按预期计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17213380/

相关文章:

php - 索引 PHP 下载而不是执行它

mysql - 计算MySQL表中不同行的结果

mysql - Java 8 java.time 未正确映射到 mysql

mysql - 每第二次命中获得 "Access denied for user..."

php - MYSQL/PHP 选择

SQL Server 算术溢出错误将表达式转换为数据类型日期时间

php - 使用 jquery 和 php 检查登录表单并显示错误消息

php - 如何创建 "All edits are tracked"

php - 如何使用JQuery异步上传文件

mysql - 如何选择与另一个值不关联的值?