Forum Webscript.Ru

Программирование => PHP => Тема начата: listopad от 03 Сентября 2002, 13:19:18

Название: mysql_fetch_array();
Отправлено: listopad от 03 Сентября 2002, 13:19:18
У меня вот какая проблема......
Есть три цикла.... один вложен в другой и в третий...., и еще в каждом используется запрос к муэскюэл.... Все это выглядит примерно так...

for ($i=0;$i<9;$i++)
{
sql........ делаю выборку из таблицы....-- обрабатываю данные..

for ($q=0;$q<$num;$q++)
{
        $row = mysql_fetch_array($result);
 засовываю результат в переменные....
по итим переменным делаю другой sql запрос...... и обрабатываю данные ...

 for ($r=0;$r<$num1;$r++)
        {
        $row1 =mysql_fetch_array($result1);
--вот здесь все время какая то ошибка.... ОН пишет:
Warning: Supplied argument is not a valid MySQL result resource in c:/program files/apache group/apache/htdocs/mailer.php on line 67
}

}
}

А так в принципе все работает.... логических ошибок нет...

Может нельзя использовать mysql_fetch_array(); -два раза во вложенных циклах.... ?????:confused:
Название: mysql_fetch_array();
Отправлено: я... от 03 Сентября 2002, 14:18:33
можно, конечно...
попробуй выведи mysql_error(), скорее всего в запросе ошибка...
Название: mysql_fetch_array();
Отправлено: rembo от 04 Сентября 2002, 05:27:20
Судя по всему дело как раз в логике а конкретно в переменных $num и $num1, очень часто, если $num  и $num1 не является фактическим количеством записей выдернутых из базы, случаются логические ошибки и значение, скажем $num1, становится больше чем количество записей.
А если $num и $num1 призваны олицетворять количество записей то проще использовать не for а while типа:
while ($row = mysql_fetch_array($result)) {

засовываю результат в переменные....
по итим переменным делаю другой sql запрос...... и обрабатываю данные ...

while ($row1 =mysql_fetch_array($result1)) {
-- и никаких ошибок если запросы правильные
}

}
И никаких тебе $num-ов а если где-то нужен $q или $r то просто внутри соответствующего цикла добавь $q++ или $r++.
Название: mysql_fetch_array();
Отправлено: AlieN от 04 Сентября 2002, 14:28:34
логично предположить что SQL-запрос кривой
Название: mysql_fetch_array();
Отправлено: Tronyx от 04 Сентября 2002, 20:12:12
listopad выложи код.
Название: mysql_fetch_array();
Отправлено: Доктор от 04 Сентября 2002, 21:24:45
Цитировать
Supplied argument is not a valid MySQL result resource

Цитировать
скорее всего в запросе ошибка

Цитировать
логично предположить что SQL-запрос кривой

Сто прОцентов, что так и есть.  И вполне можно тему закрывать.
Название: mysql_fetch_array();
Отправлено: Dm от 04 Сентября 2002, 21:49:32
интересно, а точно mysql во втором случае возвращает хотя бы одну запись?
Название: mysql_fetch_array();
Отправлено: Доктор от 04 Сентября 2002, 23:39:08
Сколько бы он ни возвращал вот это:
Цитировать
Supplied argument is not a valid MySQL result resource

говорит только о том, что сам запрос ошибочный. Даже если бы пустой селект получился, то MySQL result был бы вполне такой себе valid :)
Название: mysql_fetch_array();
Отправлено: Dm от 05 Сентября 2002, 00:00:03
Доктор
что касается ошибочных запросов, mysql пишет:
You have an error in your SQL syntax near  :)

а "supplied argument is not a valid MySQL result resource ", когда вообще запрос не был выполнен или перепутана переменная.
Название: mysql_fetch_array();
Отправлено: Меняздесьдавнонет от 05 Сентября 2002, 10:41:44
Dm
А вот тут ошибочка :-)
"supplied argument is not a valid MySQL result resource" пишет РНР. И совершенно обоснованно пишет :-)
А является это следствием того, что mysql_query ничего не вернула, что, в свою очередь, является однозначным индикатором того, что при запросе произошла ошибка.

А вот You have an error in your SQL syntax near пишет муська, и только если попросишь mysql_error().

Так что Доктор прав как раз.
Название: mysql_fetch_array();
Отправлено: Tronyx от 05 Сентября 2002, 14:12:09
А ещё возможно, что переменная результата была переопределена... И вообще где автор темы? Если нашёл решение проблемы то так и напиши, чтобы ни кто не гадал где у тебя ошибка.
Название: mysql_fetch_array();
Отправлено: listopad от 05 Сентября 2002, 18:33:20
Все, наконец-то разобрался..... ошибка была просто глупой ..... в именах переменных.....

А запросы , кстати, все в порядке....

Спасибо !!!!
Название: mysql_fetch_array();
Отправлено: Dm от 05 Сентября 2002, 21:33:07
RomikChef, формулировки/формальности? ;)


Цитировать
ошибка была просто глупой ..... в именах переменных.....

дык я это и сразу сказал :)
Название: mysql_fetch_array();
Отправлено: Доктор от 06 Сентября 2002, 02:47:41
[OFF]
Цитировать
Цитата:
ошибка была просто глупой ..... в именах переменных.....
дык я это и сразу сказал


Ага. Вероятность только этого была процентов 10 при таких исходных данных...
[/OFF]