код
do{$id=mt_rand(10000,99999);
$sql22="SELECT * FROM `table` WHERE `id`='$id'";
$result22=mysql_query($sql22);
}
while($result22);
Выдает ожидание свыше 30 сек(подозрение на бесконечный процесс), почему?
Спустя 3 минуты, 45 секунд (17.07.2011 - 02:48) Roman_Zorin написал(а):
Так ты повторяешь запрос к БД $id раз.
Так и сервак повесить можно.
Так и сервак повесить можно.
Спустя 2 минуты, 44 секунды (17.07.2011 - 02:51) Nikitian написал(а):
$sql22="SELECT * FROM `table` WHERE `id`='$id'";
$result22=mysql_query($sql22);
if(is_resource($result22) && mysql_num_rows($result22)>0){
while($res = mysql_fetch_assoc($result22)){
$id=mt_rand(10000,99999);
}
}
Старайтесь не использовать цикл do-while для выборки из бд - это неверно.
Кстати, мой код так же не имеет смысла, но отработает без ошибок. Что именно вам требуется?
Цитата (Roman_Zorin @ 17.07.2011 - 02:48) |
Так ты повторяешь запрос к БД $id раз. Так и сервак повесить можно. |
Не совсем так. В том виде, делаются запросы к бд до тех пор, пока бд не вернёт ошибку или скрипт не будет прерван.
Спустя 5 минут, 52 секунды (17.07.2011 - 02:57) Strannik написал(а):
насчет подвеса сервака согласен.
мне нужно чтобы $id был равен случ. значению от 10000 до 90000 которого нет конкретной таблице базы данных
мне нужно чтобы $id был равен случ. значению от 10000 до 90000 которого нет конкретной таблице базы данных
Спустя 1 минута, 59 секунд (17.07.2011 - 02:59) Haotarez написал(а):
Цитата |
почему? |
потому что даже если в выборке 0 строк, $result22 все равно остается true.
вот так будет правильнее завершить цикл я полагаю
while(mysql_num_rows($result22) > 0);
Спустя 2 минуты, 51 секунда (17.07.2011 - 03:02) Strannik написал(а):
Цитата (Haotarez @ 17.07.2011 - 02:59) | ||
потому что даже если в выборке 0 строк, $result22 все равно остается true. вот так будет правильнее завершить цикл я полагаю while(mysql_num_rows($result22) > 0); |
Предположение верное, спасибо=)
Спустя 6 минут, 44 секунды (17.07.2011 - 03:09) Haotarez написал(а):
Всегда пожалуйста