Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法从计数中获取总数_Php_Mysql - Fatal编程技术网

Php 无法从计数中获取总数

Php 无法从计数中获取总数,php,mysql,Php,Mysql,我正试图根据学生的分数从数据库中获取学生人数。我使用COUNT(*)获得不同分数的学生人数,使用: SELECT COUNT(*) FROM marks WHERE totalmarks >=21 AND totalmarks <=30 从totalmarks>=21和totalmarks的标记中选择计数(*) 结果是{“success”:1,“message”:“No of student”,“count”:1}, 如果只显示1个,那么应该是4个学生。 如果有人能帮我,我将不胜

我正试图根据学生的分数从数据库中获取学生人数。我使用COUNT(*)获得不同分数的学生人数,使用:

SELECT COUNT(*) FROM marks WHERE totalmarks >=21 AND totalmarks <=30
从totalmarks>=21和totalmarks的标记中选择计数(*)
结果是
{“success”:1,“message”:“No of student”,“count”:1}
, 如果只显示1个,那么应该是4个学生。 如果有人能帮我,我将不胜感激。

sql查询的结果是一行,其中包含值4。您正在将其加载到
$rows
,如下所示:

Array
(
    [0] => Array
        (
            [count(*)] => 4
            [0] => 4
        )
)
现在再次调用
count
,这次是在
$rows


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

中,您可以将其用作列名来显示计数

$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));
}

$query=“选择COUNT(*)作为totalmarks>=21和totalmarks的标记的计数如果没有提供列名,则无法检索列名,因此请更改SQL以匹配:

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

“选择COUNT(*)作为COUNT FROM marks,其中totalmarks>=21和totalmarks这不会解决问题,因为他使用php中的COUNT来计算返回的行数,因此即使列名为“COUNT”,它也将始终是1行。哎呀,我没注意到。。是 啊它周围没有count()。mysql已经返回该值。这解决了部分问题,但不是问题的解决方案。请同时修改解决方案。我遗漏了什么?
"SELECT COUNT(*) AS count FROM marks WHERE totalmarks >=21 AND totalmarks <=30"