Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не работает обращение к базе, цикл в цикле

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
maksmib
Отправлено: 20 Января, 2011 - 10:22:50
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Добрый день, господа.
Странная проблема.

У меня есть цикл, в котором я обрабатываю поочередно пользователей, а внутри этого цикла, еще один цикл по другой табличке:

PHP:
скопировать код в буфер обмена
  1. $res = @mysql_query('SELECT * FROM users', $db);
  2. while ($usr = @mysql_fetch_array($res))
  3. {
  4.     //что то делаю
  5.     $res2 = @mysql_query('SELECT * FROM articles WHERE usr_id='.$usr['id'], $db);
  6.     while ($data = @mysql_fetch_array($res2))
  7.     {
  8.         //что то делаю..
  9.     }
  10. }
  11.  


И вот вложенный цикл работает не верно, а именно, mysql_fetch_array пишет, что:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in .../index.php on line 185

Подскажите пожалуйста, что я делаю не так? Не понял

З.Ы. причем если вызвать после обращения к таблице articles функцию mysql_num_rows, она покажет, что обработаны все строки таблицы(их там всего две пока что)! А на практике, обрабатывается только первая строка, после чего mysql_fetch_array выбрасывает вышеописанную ошибку Недовольство, огорчение
 
 Top
Мелкий Супермодератор
Отправлено: 20 Января, 2011 - 10:30:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




phpfaq.ru/debug
http://forum.php.su/topic.php?fo...8&topic=1140

+ почитайте объединение таблиц на досуге, не городите кучи запросов.


-----
PostgreSQL DBA
 
 Top
maksmib
Отправлено: 20 Января, 2011 - 10:51:30
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




мда, видимо что то не то с логикой конечно..
пришлось пока проблему решить через жесткий переподвыподверт Улыбка
Спасибо за ссылку на тему, когда разберусь, опишу что и как, вдруг кому пригодится..
 
 Top
OrmaJever Модератор
Отправлено: 20 Января, 2011 - 12:16:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




как можно отлаживать скрипт с собакой?
Можно обойтись одним запросом и выглядеть будет он примерно так. (Пусть мелкий подправит если не так)
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM articles, users WHERE articles.usr_id=users.id ORDER BY user.id ASC


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
garvey
Отправлено: 20 Января, 2011 - 12:47:31
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 528
Дата рег-ции: Май 2010  
Откуда: Minsk


Помог: 3 раз(а)




Првильный запрос будет выглядеть так (проверено):
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `users` AS `u` LEFT JOIN `articles` AS `a` ON `u`.id = `a`.usr_id
 
 Top
maksmib
Отправлено: 20 Января, 2011 - 14:44:22
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Не понял спасибо, попробую Ниндзя
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB