我正在尝试计算完成在线成绩簿作业的学生人数,我无法计算出代码...
// SELECT THE TOTAL
$gettotal = "SELECT enroll FROM student_course WHERE classID = $classID";
$showtotal = @mysqli_query ($dbc, $gettotal); // Run the query.
//THIS IS LINE 108
$numtotal = mysql_num_rows($showtotal);
echo '$numtotal';
// SELECT THOSE PASSED
$getpassed = "SELECT entry FROM grades WHERE classID = $classID AND test_result >= 80";
$showpassed = @mysqli_query ($dbc, $getpassed); // Run the query.
$numpassed = mysql_num_rows($showpassed);
//THIS IS LINE 117
echo '$numpassed';
// PERFORM THE PERCENTAGE FUNCTION
function percent($numpassed, $numtotal) {
$count1 = $numpassed / $numtotal;
$count2 = $count1 * 100;
$count = number_format($count2, 0);
echo $count;
}
//THIS IS LINE 124
percent($numpassed, $numtotal);
我收到以下错误:
警告:mysql_num_rows():提供的参数不是第108行的有效MySQL结果资源 $ NUMTOTAL 警告:mysql_num_rows():提供的参数不是第117行的有效MySQL结果资源 $ numpassed 警告:在第124行划分为零 0
答案 0 :(得分:1)
好的 - 虽然我感谢大家关注删除@ ...没有人注意到问题是使用 mysqli _query然后 mysql _num_rows。需要将其更改为 mysqli _num_rows。
谢谢:)
答案 1 :(得分:0)
查询失败的可能性很小。
同样mysql_query将在出错时返回FALSE,以便您可以检查。
$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
die('Invalid query: ' . mysql_error());
}
顺便说一下:你可能想在mysql_query之前删除@
运算符,这样就可以看出那里出了什么问题。
答案 2 :(得分:0)
删除代码中的错误抑制(@),并使用检查方法print_r($ var)和var_dump($ var)来验证返回的数据库调用值。