do
{
$id = rand(1, 100000);
$query="SELECT id FROM theme WHERE id='$id'";
$sql = mysql_query($query);
$row = mysql_fetch_row($sql);
}while(!$row)
Я хочу создать рандомное число и сверить существует ли такое число в базе, но ни чего не выходит, прошу помощи! Или я совсем затупил

Спустя 8 минут, 36 секунд (16.07.2010 - 18:51) qpayct написал(а):
do тут не надо использовать. делай так
$id = rand(1, 100000);но учти, если такого id нет соответственно выводится ошибка, а елс и ты хочешь выводить рандомную запись из базы для этого есть функция sql
$query="SELECT id FROM theme WHERE id='". $id ."'";
$sql = mysql_query($query) or die ($query .'<br />'. mysql_error());
$row = mysql_fetch_row($sql);
print_r($row);
Спустя 15 минут, 47 секунд (16.07.2010 - 19:06) ZEREX написал(а):
я хочу вносить в базу новый ID после того как проверил, что такого id в базе не существует. т.е вначале у меня идет генерация числа $id = rand(1, 100000); потом я проверяю есть ли оно. Если есть то снова генерирую число и снова проверяю есть ли оно в базе? Если нету то добавляю запись с этим id . Подскажите подходящую для меня конструкцию пожалуйста!
Спустя 5 минут, 44 секунды (16.07.2010 - 19:12) Ice написал(а):
А не легче ль присвоить столбцу id первичный ключ и автоинкремент?
Спустя 14 минут, 24 секунды (16.07.2010 - 19:27) ZEREX написал(а):
Хочется конкретно тот способ который я описал, он нужен
Спустя 2 минуты, 24 секунды (16.07.2010 - 19:29) qpayct написал(а):
лучше научись сразу, как надо - быстрее в сотни раз будет выполнятся
Спустя 1 час, 29 минут, 48 секунд (16.07.2010 - 20:59) Nikitian написал(а):
Ну раз надо, то...
Можете увеличивать максимальное количество итераций в разумных пределах, но никогда, повторяю: никогда не делайте циклы с неявным окончанием!
$maxiter_=$maxiter=50;
do
{
$id = rand(1, 100000);
$query="SELECT id FROM theme WHERE id='$id' limit 1";
$sql = mysql_query($query);
if($sql && mysql_num_rows($sql)==1)
$row=false;
else
$row=true;
$maxiter--;
if($maxiter<0){
echo'Превышено максимальное количество попыток '.$maxiter_;
break;
}
}while(!$row)
Можете увеличивать максимальное количество итераций в разумных пределах, но никогда, повторяю: никогда не делайте циклы с неявным окончанием!