Я пытаюсь рассчитать количество студентов, которые закончили домашнее задание для онлайн-книги, и я не могу понять код из …
// 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 (): предоставленный аргумент не является допустимым ресурсом результата MySQL в строке 108 $ numtotal Предупреждение: mysql_num_rows (): предоставленный аргумент не является допустимым ресурсом результата MySQL в строке 117 $ numpassed Предупреждение: деление на ноль в строке 124 0
Хорошо – пока я благодарю всех за их заботу, удалив @ … никто не заметил, что проблема заключалась в использовании mysqli _query, а затем mysql _num_rows. Его нужно было изменить на mysqli _num_rows.
Спасибо хоть 🙂
Скорее всего, запрос не сработал.
Также mysql_query вернет FALSE при ошибке, чтобы вы могли это проверить.
$result = mysql_query('SELECT * WHERE 1=1'); if (!$result) { die('Invalid query: ' . mysql_error()); }
Btw: Возможно, вы захотите удалить оператор @
перед mysql_query, чтобы вы видели, что там что-то не так.
Удалите подавление ошибок (@) в коде и используйте методы проверки print_r ($ var) и var_dump ($ var), чтобы проверить возвращаемые значения вызовов базы данных.