无法从COUNT获得总数

时间:2017-11-13 13:26:34

标签: php mysql

我试图根据他们得到的标记从数据库中获取学生人数。我使用COUNT(*)来获取具有不同分数的学生人数:

SELECT COUNT(*) FROM marks WHERE totalmarks >=21 AND totalmarks <=30

它可以显示我的数据库sql中21到30之间标记的学生数。但是当我尝试PHP编码时,这个数字无法显示,这是我的编码:

<?php

require("config1.php");

$query="SELECT COUNT(*) FROM marks WHERE totalmarks >=21 AND totalmarks <=30";

try {
    $stmt   = $db->prepare($query);
    $result = $stmt->execute();
}catch (PDOException $ex) {
    $response["success"] = 0;
    $response["message"] = "Database Error!";
    die(json_encode($response));
}

$rows = $stmt->fetchAll();

if ($rows){
    $response["success"]=1;
    $response["message"]="No of student";
    $response["count"]=count($rows);
        array_push($response["count"]);
        echo json_encode($response);

        }else {
        $response["success"] = 0;
        $response["message"] = "No Available!";
        die(json_encode($response));
}
?>

结果是{"success":1,"message":"No of student","count":1}, 它只显示1,右边应该是4个学生。 感谢有人可以帮助我。 enter image description here

3 个答案:

答案 0 :(得分:0)

您的SQL查询的结果是包含值4的单行。您将其加载到$rows,如下所示:

Array
(
    [0] => Array
        (
            [count(*)] => 4
            [0] => 4
        )
)

现在您再次致电count,这次是$rows

您的答案“4”位于$rows[0][0]

答案 1 :(得分:0)

您可以使用column_name显示计数。

$query="SELECT COUNT(*) as count FROM marks WHERE totalmarks >=21 AND totalmarks <=30";

if ($rows){
    $response["success"]=1;
    $response["message"]="No of student";
    $response["count"]= $rows[0]['count'];
    array_push($response["count"]);
    echo json_encode($response);
} else {
    $response["success"] = 0;
    $response["message"] = "No Available!";
    die(json_encode($response));
}

答案 2 :(得分:-1)

如果没有给出列名,则无法检索列名,因此请更改SQL以匹配:

"SELECT COUNT(*) AS count FROM marks WHERE totalmarks >=21 AND totalmarks <=30"

它应该按预期工作:)