Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> supplied argument is not valid MySQL result, mysql_fetch_array, mysql_num_rows 
V
    Опции темы
kb64
Дата 8.2.2008, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 2.2.2008

Репутация: нет
Всего: нет



Код


$db_day = $_POST['day'];
$db_m = $_POST['month'];
$db_year = $_POST['year'];
$sql = "SELECT sgn, s.sgn b.sal FROM sg, se AS s, bill AS b WHERE sgi = s.sgi AND s.s_id = b.s_id AND b.date = $db_year-$db_m-$db_day";
echo $sql;
$query_db = mysql_query($sql);
$row = mysql_fetch_array($query_db);



пишет "Warning mysql_fetch_array() supplied argument is not valid MySQL result"
также ругается на mysql_num_rows

помогите с выводом, я не понимаю,что я делаю неправильно.
П.С. запрос работает!.

Это сообщение отредактировал(а) kb64 - 8.2.2008, 17:53
PM MAIL   Вверх
solenko
Дата 8.2.2008, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



Как он может работать без "="? 
Цитата

 AND b.date \"$

Вы когда проверяете запросы, длайте так:
Код

$sql = "SELECT service_group_name, s.service_name, b.ammount FROM service_group, service AS s, billing AS b WHERE service_group_id = s.service_group_id AND s.service_id = b.service_id AND b.date \"$db_year\"-\"$db_m\"-\"$db_day\";";
echo $sql;
mysql_query($sql);

Тогда будуту точно уверены что проверяете имеено то, что выполняется в скрипте.
Кстати, ";" в конце запроса лишняя.



--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
drpain
Дата 8.2.2008, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 27.9.2007

Репутация: нет
Всего: нет



Попробуй for заметь на while

Код

while($f = mysql_fetch_array($query_final))
{

}


помоему так....


Скорее всего у тебя один лишний запрос mysql_fetch_array когда $query_final уже закончился
PM MAIL   Вверх
skyboy
Дата 8.2.2008, 15:09 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(kb64 @  8.2.2008,  13:56 Найти цитируемый пост)
запрос работает!.

не-а. запрос не работает.
раз mysql_query вернул "not valid MySQL result"(а это могло быть только false), значит, произошла ошибка.
либо нет подключения к БД.(mysql_connect был?)
либо не правильно выбрана БД(mysql_select_db вызывал?)
либо запрос неверен с точки зрения синтаксиса SQL(в частности, это может быть при "вроде работающем запросе", если в переменных PHP содержится кавычки; тогда в результате вставки переменных кавычки станут закрываться в "ненужном месте").
а знаешь, как проверить на ошибку? сравнить результат выполнения mysql_query с false; если там == 
false, то произошла ошибка.
а знаешь, как посмотреть сообщение об ошибке MySQL? Использовать функцию mysql_error(естественно, тогда, когда mysql_query вернул false; когда нет ошибки, бессмысленно использовать mysql_error)
а знаешь, как быстрее находить ответы? правильно задавать вопросы. у тебя проблема не с тем, что "не хочет выводиться", а с тем, что выполнение функции вызывает ошибку. определяешь, какая функция, потом - какая она принимает аргументы и какими эти аргуемнты могут быть согласно мануалу. Если не совпадает тип/значение аргументов - выясняешь, отчего аргументы имеют "неожиданные"(для тебя) значения.
PM MAIL   Вверх
drpain
Дата 8.2.2008, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 27.9.2007

Репутация: нет
Всего: нет



Странно!!!

Если запрос не работает... почему тогда mysql_num_rows возвращает значение которое позволяет зайти в цикл????? и происходит вызов mysql_fetch_array
PM MAIL   Вверх
kb64
Дата 8.2.2008, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 2.2.2008

Репутация: нет
Всего: нет



Подправил запрос, но проблема не решилась.
PM MAIL   Вверх
Golda
Дата 8.2.2008, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

Репутация: 20
Всего: 42



Цитата(kb64 @  8.2.2008,  15:34 Найти цитируемый пост)
Подправил запрос, но проблема не решилась. 


Эта фраза не содержит информации, которая могла бы помочь понять, в чем проблема, и помочь Вам решить ее. Что значит - проблема не решилась? Какие ошибки выдает скрипт? Советую перечитать рекомендации skyboy и, если проблема не решиться, вернуться сюда с большим количеством информации 


--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
kb64
Дата 8.2.2008, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 2.2.2008

Репутация: нет
Всего: нет



Код

$db_day = $_POST['day'];
$db_m = $_POST['month'];
$db_year = $_POST['year'];
$sql = "SELECT sgn, s.sgn b.sal FROM sg, se AS s, bill AS b WHERE sgi = s.sgi AND s.s_id = b.s_id AND b.date = $db_year-$db_m-$db_day";
echo $sql;
$query_db = mysql_query($sql);
$row = mysql_fetch_array($query_db);

ошибка такая же
Warning mysql_fetch_array() supplied argument is not valid MySQL result

с простым запрсом "SELECT * FROM table ...." не ругается, почему - это для меня загадка.

Это сообщение отредактировал(а) kb64 - 8.2.2008, 17:51
PM MAIL   Вверх
Golda
Дата 8.2.2008, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

Репутация: 20
Всего: 42



1. Что выводит echo $sql; ?
2. Измените предпосленюю строку следующим образом и напишите, что выводится

Код

$query_db = mysql_query($sql) || echo mysql_error();


Внимание! Этот вариант - для отладки, а не для использования в окончательном варианте скрипта




--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
skyboy
Дата 8.2.2008, 21:40 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(kb64 @  8.2.2008,  16:37 Найти цитируемый пост)
SELECT * FROM table

Внимание, вопрос! Ты что-нибудь про зарезервированные слова слышал?
нельзя использовать в запросе зарезервированные слова в качестве идентификаторов(table, create, where, from и кучу других). чтоб парсер не работал со строкой, как с зарезервированным словом, надо обрамлять их(идентификаторы, совпадающие с зарезервированными словами) обратными апострофами(на руссифицированной клаиватуре находится на одной кнопке вместе с "ё", но в английской раскладке). а чтоб точно не было проблем и в будущем(при дальнейшем расширении синтаксиса и, соотвественно, вводе новых зарезервированных слов) надо обрамлять обратными апострофами все имена полей и таблиц(включая псевдонимы полей и таблиц).
и обрати пристальнейшее внимание на mysql_error, про который мы с Golda только в этой теме уже два раза упомянули(воспользовался бы поиском, встретил бы с полтысячи ссылок на эту функцию).
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0501 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.