| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > supplied argument is not valid MySQL result |
| Автор: kb64 8.2.2008, 14:56 | ||
пишет "Warning mysql_fetch_array() supplied argument is not valid MySQL result" также ругается на mysql_num_rows помогите с выводом, я не понимаю,что я делаю неправильно. П.С. запрос работает!. |
| Автор: solenko 8.2.2008, 15:02 | ||||
Как он может работать без "="?
Вы когда проверяете запросы, длайте так:
Тогда будуту точно уверены что проверяете имеено то, что выполняется в скрипте. Кстати, ";" в конце запроса лишняя. |
| Автор: drpain 8.2.2008, 15:04 | ||
Попробуй for заметь на while
помоему так.... Скорее всего у тебя один лишний запрос mysql_fetch_array когда $query_final уже закончился |
| Автор: skyboy 8.2.2008, 15:09 |
не-а. запрос не работает. раз mysql_query вернул "not valid MySQL result"(а это могло быть только false), значит, произошла ошибка. либо нет подключения к БД.(mysql_connect был?) либо не правильно выбрана БД(mysql_select_db вызывал?) либо запрос неверен с точки зрения синтаксиса SQL(в частности, это может быть при "вроде работающем запросе", если в переменных PHP содержится кавычки; тогда в результате вставки переменных кавычки станут закрываться в "ненужном месте"). а знаешь, как проверить на ошибку? сравнить результат выполнения http://php.net/mysql_query с false; если там == false, то произошла ошибка. а знаешь, как посмотреть сообщение об ошибке MySQL? Использовать функцию http://php.net/mysql_error(естественно, тогда, когда mysql_query вернул false; когда нет ошибки, бессмысленно использовать mysql_error) а знаешь, как быстрее находить ответы? правильно задавать вопросы. у тебя проблема не с тем, что "не хочет выводиться", а с тем, что выполнение функции вызывает ошибку. определяешь, какая функция, потом - какая она принимает аргументы и какими эти аргуемнты могут быть согласно http://php.net/. Если не совпадает тип/значение аргументов - выясняешь, отчего аргументы имеют "неожиданные"(для тебя) значения. |
| Автор: drpain 8.2.2008, 15:15 |
| Странно!!! Если запрос не работает... почему тогда mysql_num_rows возвращает значение которое позволяет зайти в цикл????? и происходит вызов mysql_fetch_array |
| Автор: kb64 8.2.2008, 15:34 |
| Подправил запрос, но проблема не решилась. |
| Автор: Golda 8.2.2008, 17:26 |
Эта фраза не содержит информации, которая могла бы помочь понять, в чем проблема, и помочь Вам решить ее. Что значит - проблема не решилась? Какие ошибки выдает скрипт? Советую перечитать рекомендации skyboy и, если проблема не решиться, вернуться сюда с большим количеством информации |
| Автор: kb64 8.2.2008, 17:37 | ||
ошибка такая же Warning mysql_fetch_array() supplied argument is not valid MySQL result с простым запрсом "SELECT * FROM table ...." не ругается, почему - это для меня загадка. |
| Автор: Golda 8.2.2008, 17:58 | ||
| 1. Что выводит echo $sql; ? 2. Измените предпосленюю строку следующим образом и напишите, что выводится
Внимание! Этот вариант - для отладки, а не для использования в окончательном варианте скрипта |
| Автор: skyboy 8.2.2008, 21:40 |
Внимание, вопрос! Ты что-нибудь про зарезервированные слова слышал? нельзя использовать в запросе зарезервированные слова в качестве идентификаторов(table, create, where, from и кучу других). чтоб парсер не работал со строкой, как с зарезервированным словом, надо обрамлять их(идентификаторы, совпадающие с зарезервированными словами) обратными апострофами(на руссифицированной клаиватуре находится на одной кнопке вместе с "ё", но в английской раскладке). а чтоб точно не было проблем и в будущем(при дальнейшем расширении синтаксиса и, соотвественно, вводе новых зарезервированных слов) надо обрамлять обратными апострофами все имена полей и таблиц(включая псевдонимы полей и таблиц). и обрати пристальнейшее внимание на mysql_error, про который мы с Golda только в этой теме уже два раза упомянули(воспользовался бы поиском, встретил бы с полтысячи ссылок на эту функцию). |