开发者

Using PHP/MySQL to Calculate Percentages

I'm trying to calculate the number of students who've completed an their homework for an online gradebook, and I can't figure the code out...

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

I get the following error:

Warning: mysql_num_rows(): supplied argument is not a valid M开发者_如何学CySQL result resource on line 108 $numtotal Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource on line 117 $numpassed Warning: Division by zero in on line 124 0


Okay - while I thank everyone for their concern removing the @ ... no one noticed that the problem was using mysqli_query and then mysql_num_rows. It needed to be changed to mysqli_num_rows.

Thanks though :)


Chances are the query has failed.

Also mysql_query will return FALSE on error so you can check for that.

$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
    die('Invalid query: ' . mysql_error());
}

Btw: You might want to remove the @ operator before mysql_query so you see if something goes wrong there.


Remove error suppression (@) in your code and use inspection methods print_r($var) and var_dump($var) to verify the returned database call values.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜