我正在使用以下脚本尝试计算表中的行数,我不断遇到的问题是错误:
查询为空测验名称
和空白页。我是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';
}
///////////////////////////////////////////////////////////////////////////////////////////////
您的问题是您正在运行错误的查询,您正在运行$query
而不是$query8
更改为此:
$result8 = mysql_query($query8) or die(mysql_error());
再看一眼,您还应该更改为:
echo 'There are '. $row8['numberofquestions'] . ' questions';
当您将numberofquestion
设置为计数别名时。
$result8 = mysql_query($query) or die(mysql_error());
应该是
$result8 = mysql_query($query8) or die(mysql_error());
因为我猜测变量$query是空的,您之前传递它。
至于 COUNT(),请远离 COUNT(*),而是使用 COUNT(field_name),为了获得更快的结果,请确保field_name在正在使用的索引中。
计数仅计算为指定字段返回的总行数。
另外,请注意在 innodb 中使用 COUNT(*),因为如果不与索引上的 WHERE 子句一起使用,它将强制进行表扫描。
替换以下行:
echo 'There are '. $row8['COUNT(quizID)'] . ' questions';
对于这个:
echo 'There are '. $row8['numberofquestions'] . ' questions';
As numberofquestions
是查询结果集中唯一字段的名称。
要获取结果中的行数,请使用mysql_num_rows:
$numberOfRows = mysql_num_rows($result8)
你打错了这个
$result8 = mysql_query($query8) or die(mysql_error());
还有
echo 'There are '. $row8['numberofquestions'] . ' questions';
句子 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';
}