Я думаю, что ошибка немного сложнее. Из-за того, что ваш SQL недействителен, вы не получаете набор результатов. Ваш код PHP не обрабатывается корректно!
Итак, помимо исправления вашего SQL, как предлагали другие, обязательно обработайте случай, когда вы не получите никаких результатов или ваш запрос приведет к ошибке в вашем PHP-коде!
Вторая часть вашего решения выглядит следующим образом:
$result = mysql_query(...);
if ($result)
{
while (...)
...
}
Это гарантирует, что mysql_query
фактически возвращается результирующий набором и не false
, что он делает в случае возникновения ошибок (из-за ваш неправильный код SQL, но и в других случаях). Поэтому просто исправлять ваш SQL недостаточно, чтобы сделать ваш скрипт ошибкой.
Но снова не используйте функции mysql_....
! Они устарели.
Г-н Уотсон говорит: «Где и что происходит в неправильном порядке ...» (И серьезно отнесся к замечанию Энди Лестера, что инъекция SQL вредна) – ppeterka
** Вы оставляете себя широко открытыми для атак SQL-инъекций. ** Пожалуйста, узнайте об использовании параметризованных запросов, желательно с модулем PDO, для защиты вашего веб-приложения. На http://bobby-tables.com/php есть примеры, чтобы вы начали. –
Ошибка PHP говорит, что проблема не в SQL, а в PHP-коде. –