Вы используют это:
mysql_fetch_array($result)
Чтобы получить сообщение об ошибке, это означает, что $ result
не является ресурсом.
В вашем коде $ result
получается следующим образом:
$result = mysql_query("SELECT * FROM student WHERE IDNO=".$_GET['id']);
Если запрос SQL завершается неудачно, $ result
не будет ресурсом , а будет логическим - - см. mysql_query
.
Я полагаю, что в вашем SQL-запросе есть ошибка - поэтому он не работает, mysql_query
возвращает логическое значение, а не ресурс, и mysql_fetch_array
не может работать на что.
Вы должны проверить, возвращает ли запрос SQL результат или нет:
$result = mysql_query("SELECT * FROM student WHERE IDNO=".$_GET['id']);
if ($result !== false) {
// use $result
} else {
// an error has occured
echo mysql_error();
die; // note : echoing the error message and dying
// is OK while developping, but not in production !
}
При этом вы должны получить сообщение, указывающее на ошибку, которая произошла при выполнении вашего запроса - это должно помочь выяснить, в чем проблема; - )
Также вам следует избегать данных, которые вы помещаете в свой SQL-запрос, чтобы избежать SQL-инъекций !
Например, здесь вы должны убедиться, что $ _ GET ['id']
не содержит ничего, кроме целого числа, используя что-то вроде этого:
$result = mysql_query("SELECT * FROM student WHERE IDNO=" . intval($_GET['id']));
Или вы должны проверить это перед попыткой выполнения запрос, чтобы отобразить более удобное сообщение об ошибке для пользователя.