使用PHP / MySQL计算百分比

时间:2011-03-03 15:07:18

标签: php mysql

我正在尝试计算完成在线成绩簿作业的学生人数,我无法计算出代码...

    // 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

3 个答案:

答案 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)来验证返回的数据库调用值。