[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Случайное значение по условию
Strannik
Здравствуйте. Подскажите в чем ошибка.
код
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 которого нет конкретной таблице базы данных

Спустя 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 написал(а):
Всегда пожалуйста
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.