Автор Тема: Ошибка в запросе (вывод данных)  (Прочитано 4639 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Rodent

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 133
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.unimix.ru
Ошибка в запросе (вывод данных)
« : 24 Марта 2006, 20:26:15 »
Всем Доброе время суток.

В корневой директории на хостинге имеется файл error.php, в котором есть вот такая строчка:
-----
[20-Mar-2006 23:49:53] PHP Warning:  mysql_num_rows(): supplied argument is not a valid MySQL result resource /weare/index.php on
line 27
-----

26-28 строчка

----
26 $news=mysql_query("select * from we_topics where forum_id=\'5\' order by tid desc limit $from,$maxmess");   
27 for ($i=0; $i28   $n=mysql_fetch_array($news);
-----

Сколько я не лазил по коду но так и не могу понять почему, она выскакивает. Т.к. на самой странице все отображается верно.


Мне подсказали, что в строчке

for ($i=0; $i
ошибка может быть, если подоваемые данные не являются mysql result resource, они у вас и не являются, они
являются только query.

Но что это означает я не понял...
Объясните мне бестолковому что ЭТО?

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
Ошибка в запросе (вывод данных)
« Ответ #1 : 24 Марта 2006, 21:47:57 »
$news=mysql_query("select * from we_topics where forum_id=\'5\' order by tid desc limit $from,$maxmess");

1. перепиши:
$news=mysql_query("select * from we_topics where forum_id=\'5\' order by tid desc limit $from,$maxmess") or die("Error" . mysql_error());

и если выдаст ошибку выпиши ее сюда.

2. for ($i=0; $iзачем тебе данные поналобились выводить внутри цикла ?

чем не устраивает:

while($n = mysql_fetch_array($news)){

}
[off]Безработный[/off]

Оффлайн Rodent

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 133
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.unimix.ru
Ошибка в запросе (вывод данных)
« Ответ #2 : 24 Марта 2006, 22:38:37 »
for_i_0
Добавил конструкцию  or die("Error" . mysql_error());
никаких ошибок не последовало. посмотрим, что напишется в файле error_php....
пока ничего....

Кстати, у меня возник вопрос по поводу использования операторов цикла
что лучше использовать и в каких случаях
for
foreach
while
???

Оффлайн andymc

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 400
  • +1/-0
  • 0
    • Просмотр профиля
Ошибка в запросе (вывод данных)
« Ответ #3 : 24 Марта 2006, 23:43:28 »
100% - ошибка при запросе $news=mysql_query. Почему то он не работает и не даёт результат. Почему?
1. Мб не существует каких-то полей, которые названы в запросе.
2. Скорее всего надо проверить переменные $from,$maxmess. выведи их через echo и посмотри - мб там ошибка, или они пустые, или являются строчными.
Может, limit выходит за вообще возможный предел количества строк в таблице.
3. И ещё.... Перед вызовом mysql_query у тебя в коде дб выбор базы данных mysql_db_query. Без него нихрена не сработает. Сам неоднократно трах-ся с этим, пока не понял что к чему.

Вывод - смотри переменные $from,$maxmess

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
Ошибка в запросе (вывод данных)
« Ответ #4 : 25 Марта 2006, 00:09:35 »
Rodent
в случае с выборкой данных из БД использовать while выигрываешь на пересчете.

for - используй где без пересчета необойтись.

foreach - очень удобен для массивов.

Раз все чисто:
ИЛИ данные не соответсвуют условию WHERE
ИЛИ или $maxmess = 0; именно 0 а не \'\' и не undefined.
[off]Безработный[/off]

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
Ошибка в запросе (вывод данных)
« Ответ #5 : 25 Марта 2006, 00:11:59 »
andymc
Не уверен - не пиши!
1. Выводится ошибка
2. Выводится ошибка
3. Выводится ошибка
[off]Безработный[/off]

Оффлайн andymc

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 400
  • +1/-0
  • 0
    • Просмотр профиля
Ошибка в запросе (вывод данных)
« Ответ #6 : 25 Марта 2006, 00:28:08 »
Я на своей шкуре знаю и видел, что такое
mysql_num_rows(): supplied argument is not a valid MySQL result resource /weare/index.php on line 27
Проблема в запросе или в переменных. Мы не знаем что там было до, поэтому трудно ответить.

А то, что возникает ошибка - это понятно.
Ошибки - это я вижу в 50% случаев тестирования с error_reporting[0]

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
Ошибка в запросе (вывод данных)
« Ответ #7 : 25 Марта 2006, 13:48:01 »
Цитировать
andymc:
А то, что возникает ошибка - это понятно.


именно or die(mysql_error()) - выводит. А он говорит что ошибки не последовало!

Цитировать
andymc:
Ошибки - это я вижу в 50% случаев тестирования с error_reporting[0]


[OFF]ИМХО для ловли ошибок, не требуется столько внимания, сколько умения пользыватся error handling functions. Думаю ты и без меня знаешь что их в PHP предостаточно. [/OFF]
[off]Безработный[/off]

Оффлайн andymc

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 400
  • +1/-0
  • 0
    • Просмотр профиля
Ошибка в запросе (вывод данных)
« Ответ #8 : 25 Марта 2006, 14:58:30 »
for_i_0
Цитировать
for_i_0:
ИМХО для ловли ошибок, не требуется столько внимания, сколько умения пользыватся error handling functions. Думаю ты и без меня знаешь что их в PHP предостаточно.

Знаю, читал недавно, но всё чё-то пока не пойму надобности в них - ошибки ведь и так выводятся...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28