Предупреждение: mysql_fetch_array (): предоставленный аргумент не является допустимым ресурсом результата MySQL

Когда я запускаю следующий PHP-код, цикл while работает только один раз, даже если в practice_calendar_times имеется более одной строки.

$sql = " SELECT * FROM practice_calendar_times; "; $result = mysql_query($sql, $con); if($result){ while($practice = mysql_fetch_array($result)){ //... Prints data from the row + more ... } } 

На веб-странице появляется печатное предупреждающее сообщение: «Warning: mysql_fetch_array (): предоставленный аргумент не является допустимым ресурсом результата MySQL в /rmounts/vol0-nas/yorkweb/webs/fencing/MyWebSite/homecontent.php в строке 113" ,

Строка 113 – это цикл while. Я просмотрел его и, по-видимому, это вызвано синтаксической ошибкой с запросом mysql. Однако здесь это не так; mysql правильно вытаскивает первую строку из базы данных, а цикл while работает один раз. Если я заменил это время на, если он не жалуется и печатает одну строку. Я также попытался удалить все, кроме одной строки, на практике_calendar_times, но все равно получить предупреждающее сообщение. Однако, когда я удаляю все строки, он не выводит предупреждение.

Любые идеи о том, как заставить цикл while перебираться по столу и перестать жаловаться?

Вы изменяете значение $result в теле цикла while? Почему бы не изменить его на if и var_dump($result) после него, чтобы убедиться, что он все еще является ресурсом?

у вас дикий ; в определении $ sql

Правильно ли вы получаете первый результат?

попробуйте удалить точку с запятой в запросе .. так что просто

 $sql = "SELECT * FROM practice_calendar_times";