Предупреждение: mysql_fetch_array () ожидает, что параметр 1 будет ресурсом, строка указана в C: \ xampp \ htdocs \ test \ index.php в строке 19
<?php $con = mysql_connect('localhost'); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("schedule", $con); $sql = "SELECT * FROM classes LIMIT 0,50\n"; mysql_query($sql); IF (!$sql) { ECHO 'broken'; }; while($row = mysql_fetch_array($sql, MYSQL_BOTH)) { echo $row['language'] . " " . $row['level']; echo "<br />"; } mysql_close($con); ?>
Зачем? запрос работает в phpmyadmin
Ваш параметр для функции mysql_fetch_array () – это строка оператора SQL. Вот что говорит ваше предупреждение. Вы должны сначала использовать $ res = mysql_query ($ sql); и передать $ res как параметр в mysql_fetch_array ()
Вход в mysql_fetch_Array – это ресурс, который также является возвращаемым значением из mysql_query. Если вы передадите значение $ sql в mysql_query (), он не будет изменять параметр, поскольку он передается по значению. Вы должны назначить возвращаемое значение другой переменной, которая будет желаемым ресурсом.
$result = mysql_query($sql);
Затем передайте параметр result в mysql_fetch_array:
$row = mysql_fetch_array($result, MYSQL_BOTH)
Еще одно важное замечание. Как вы можете видеть во всех связанных потоках, прочитайте красную рамку в php.net для этих функций.
Использование этого расширения не рекомендуется. Вместо этого следует использовать расширение MySQLi или PDO_MySQL. См. Также MySQL: выбирая руководство по API и связанные с ним FAQ для получения дополнительной информации. Альтернативы этой функции включают:
mysqli_query () PDO :: query ()
Изменить: mysql_query ($ sql); Кому: $sql = mysql_query($sql);
Процитировано из PHP.net о mysql_query()
:
Для SELECT, SHOW, DESCRIBE, EXPLAIN и других операторов, возвращающих набор результатов, mysql_query () возвращает ресурс с успехом или FALSE при ошибке.
Для других типов операторов SQL INSERT, UPDATE, DELETE, DROP и т. Д. Mysql_query () возвращает TRUE при успешном завершении или FALSE при ошибке.
В вашем случае ресурс возвращается, но вы забыли присвоить его чему-либо.
Измените mysql_query($sql)
на $resource = mysql_query($sql)
.
Полная документация прямо здесь: http://php.net/manual/en/function.mysql-query.php