php/mysql
1511
4
вопрос такой
php-скрипт делает два запроса и обрабатывает их результаты следующим образом:
while($res1=mysql_fetch_array($query1)){
while($res2=mysql_fetch_array($query2)){
...
}
...
}

так вот, на втором шаге первого while mysql_fetch_array($res2) ничего не возвращает, то есть результат второго запроса можно использовать только один раз.. как быть?
QRaga
так вот, на втором шаге первого while mysql_fetch_array($res2) ничего не возвращает, то есть результат второго запроса можно использовать только один раз.. как быть?
Совершенно логично, первый проход по while выбрал поочередно все записи из $res2 и теперь $res2 находится в состоянии EOF. Так что второй раз цикл не начинается оттого, что новых записей-то нет! Перед циклом тогда надо либо переоткрывать набор данных, либо позиционироваться в начало.

P.S. А вообще, странный код. Похож на обработку таблиц master-detail, но слишком коряво, если это так.
Well
Я использую такой вариант для отправки рассылки - первым запросом выясняется, кто из пользователей на какую новость подписан, а вторым создается массив новостей. Вариант с повтором запроса явно отпадает, так как если выбирать новости каждый раз для каждого пользователя, будет огромная нагрузка на базу. Стало быть, приемлем вариант с возвратом в начало массива. Подскажите, плиз, как это сделать.
QRaga
Вы, батенька, SQL знаете? Если нет, то сформулируйте задачу поподробнее: что есть, что нужно, какая структура данных.
QRaga
Naskol'ko ya ponimayu, otnoshenie polzovatel-novost' = many to many? Esli da, to delaetsa 2 INNER JOIN-a -- perviy t tablitse polzovateley na tablitsu sootvetstviy, vtoroy ot sootvetstviy k novostyam, i obrabotka result seta elementarnaya.

Esli vse-taki nado vashim strannim sposobom delat' -- est takaya funktsia mysql_data_seek, tol'ko ne vzdumayte virubat' keshirovaniye rezultatov zaprosa, a to ploho budet:улыб:

A voobshe, esli vam dlya etogo dela 2 zaprosa nado, to vi libo SQL ne znaete, libo architectura bazy parshivaya.