Mysql Count查询返回“查询为空”

时间:2012-11-28 14:45:54

标签: php mysql count

我使用以下脚本来尝试计算表中的行,我不断遇到的问题是错误:

查询为空 测验名称

和一个空白页面。我是COUNT的新手,所以我想我可能弄得一团糟:-S。 我的数据库布局如下:

itsnb_chronoforms_data_createquestions cf_id ,cf_uid,cf_created ,cf_modified, cf_ipaddress,    cf_user_id, quizID, questionID, quizquestion, quizanswer1, quizanswer2, quizanswer3, quizanswer4,     questionformat ,correctanswer

我正在处理的脚本是:

    // Define Quiz Variables
    $quiz = $row['quizID'];
    $quizcfid = $row['cf_id'];
    $quizname = $row['quizname'];
    // Finish Define Quiz Variables  

    ///////////////////////////////////////////////////////////////////////////////////////////////
    // Make a MySQL Connection

    $query8 = "SELECT COUNT(*) as 'numberofquestions' FROM employees WHERE quizID='$quiz'"; 

    $result8 = mysql_query($query) or die(mysql_error());

    // Print out result
    while($row8 = mysql_fetch_array($result8)){
        echo 'There are '. $row8['COUNT(quizID)'] . ' questions';
    } 
    ///////////////////////////////////////////////////////////////////////////////////////////////

6 个答案:

答案 0 :(得分:3)

您的问题是您运行的是错误的查询,您正在运行$query而不是$query8

改为:

$result8 = mysql_query($query8) or die(mysql_error());

乍一看,你也应该改为:

echo 'There are '. $row8['numberofquestions'] . ' questions';

numberofquestion设置为计数别名。

答案 1 :(得分:2)

$result8 = mysql_query($query) or die(mysql_error());

应该是

$result8 = mysql_query($query8) or die(mysql_error());

因为我猜测变量$ query是空的,你之前传递过它。

至于COUNT()远离COUNT(*),而是使用COUNT(field_name),为了更快的结果,确保field_name在正在使用的索引中。

Count只计算为指定字段返回的总行数。

另外,请注意在innodb中使用COUNT(*),因为如果不在索引上使用WHERE子句,它将强制执行TABLE SCAN。

答案 2 :(得分:2)

替换以下行:

echo 'There are '. $row8['COUNT(quizID)'] . ' questions';

这个:

echo 'There are '. $row8['numberofquestions'] . ' questions';

由于numberofquestions是查询结果集中唯一字段的名称。

答案 3 :(得分:2)

要获取结果中的行数,请使用mysql_num_rows:

$numberOfRows = mysql_num_rows($result8)

答案 4 :(得分:1)

你错误地输入了这个

$result8 = mysql_query($query8) or die(mysql_error());

以及

echo 'There are '. $row8['numberofquestions'] . ' questions';

答案 5 :(得分:1)

sql的句子我看对了。 但我用这个

$result8 = mysql_query($query) or die(mysql_error());
$count = mysql_fetch_row($result8);


echo 'There are '.$count[0].' '. questions';

其他选项:

 while($row8 = mysql_fetch_array($result8,MYSQL_ASSOC)){
        echo 'There are '. $row8['numberofquestions'] . ' questions';
    }