我使用以下脚本来尝试计算表中的行,我不断遇到的问题是错误:
查询为空 测验名称
和一个空白页面。我是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';
}
///////////////////////////////////////////////////////////////////////////////////////////////
答案 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';
}