Спустя 24 минуты, 1 секунда (20.10.2011 - 16:15) imbalance_hero написал(а):
hecby
Врядли.
ORDER BY RAND() LIMIT 10 - так ты выбирал 10 случайных?
Врядли.
ORDER BY RAND() LIMIT 10 - так ты выбирал 10 случайных?
Спустя 24 секунды (20.10.2011 - 16:15) Michael написал(а):
Цитата |
Может быть такое чудо? |
чудес не бывает, сынок. А вот логические ошибки в алгоритмах случаются, это да. А так - код в студию.
Спустя 28 минут, 5 секунд (20.10.2011 - 16:43) hecby написал(а):
Свернутый текст
$k=0;
$d=1;
$uss=1; //ид, который выбирать нельзя
while($k<=$d)
{
$zap1=mysql_query("SELECT max(id) FROM game_user");
$zap2=mysql_fetch_array($zap1);
$p=$zap2[0];
if($p>10)
$d=9;
else
$d=$p-2;//беда кроется здесь, вначале было $d=$p-1;
$r=1;
$z=0;
while($r==1)
{
$c=0;
$px=mt_rand(1, $p);
$e=count($users);
for($i=0; $i<=$e; $i++)
{
if($px==$users[$i][0])
{
echo(err);
$r=1;
$c=1;
}
}
if($px==$uss)
{
$r=1;
$c=1;
}
if($c==0)
$r=0;
$z++;
if($z>=100)
$r=0;
}
$zap5=mysql_query("SELECT id, level, nick FROM game_user WHERE id='$px' AND zdorovye=zdorovye2");
$zap6=mysql_fetch_array($zap5);
if($zap6[0]!='')
{
$users[$k][0]=$zap6[0];
$users[$k][1]=$zap6[1];
$users[$k][2]=$zap6[2];
$k++;
}
} //Если нужно закомментирую непонятные места, order by rand - где-то читал, что могет выдать одинаковые, поэтому боялся использовать, нужны только уникальные
! |
Winston |
Спустя 9 минут, 4 секунды (20.10.2011 - 16:52) imbalance_hero написал(а):
hecby
Он выдаст как раз то, что тебе надо. Я выше же показал, как сделать надо. Сделай и проверяй.
Он выдаст как раз то, что тебе надо. Я выше же показал, как сделать надо. Сделай и проверяй.
Спустя 2 минуты, 58 секунд (20.10.2011 - 16:55) hecby написал(а):
Эт я понимаю, мне хочется все-таки этот, я его немного оптимизирую, меня интересует "чудо" с обходом условий
*тут было заявление, что человек не умеет пользоваться ORDER BY RAND()*
*тут было заявление, что человек не умеет пользоваться ORDER BY RAND()*
Спустя 2 минуты, 15 секунд (20.10.2011 - 16:57) imbalance_hero написал(а):
Нельзя, нельзя в цикле использовать запросы, это правило плохого тона.
Если можно сделать 1 запрос, не надо из-за этого делать 100 запросов.
А если не знаешь, как работает - то в справочники и читай, пробуй. Пойми, если у тебя есть кучка навоза, украсив её вишенкой, она такой же кучей и останется.
Если можно сделать 1 запрос, не надо из-за этого делать 100 запросов.
А если не знаешь, как работает - то в справочники и читай, пробуй. Пойми, если у тебя есть кучка навоза, украсив её вишенкой, она такой же кучей и останется.
Спустя 4 минуты, 35 секунд (20.10.2011 - 17:02) hecby написал(а):
Вы меня конечно извините, я не собираюсь никого учить, я наткнулся на нестандартную ситуацию и решил спросить у знающих людей, не нужно мне помагать оптимизировать код, к тому же ранд в запросе работает медленней чем мой вариант, о правилах плохого тона: запрос выполнится не больше чем десять раз, в ид таблицы разрывов нет и не будет.
Спустя 2 минуты, 48 секунд (20.10.2011 - 17:05) imbalance_hero написал(а):
"или после 100 оборотов". Ага, 100 оборотов, какие тут "не больше чем десять раз"
Спустя 2 минуты, 38 секунд (20.10.2011 - 17:07) imbalance_hero написал(а):
Сообщением выше ты написал, что не умеешь пользоваться ORDER BY RAND(), А тут на тебе, уже умный, но не собираешься учить
Спустя 7 минут, 4 секунды (20.10.2011 - 17:15) hecby написал(а):
На американском форуме - задаешь вопрос, получаешь ответ, на израильском - задаешь вопрос, тебе отвечают вопросом, на русском - задаешь вопрос и тебе долго обьясняют, почему ты идиот... Вот и я попал в такую ситуацию... Вопрос следующий меня тревожил: почему $d=$p-2; работает, а $d=$p-1; работает, но не выполняет условие, точнее при тестировании видно, что проверка значения несколько раз срабатывает, заставляя цикл генерить новое значение, но все-таки один раз пропускает его, причем каждый раз количество выполнения условий разное, вот это и странно, база тут не при чем, поскольку, как видно в коде, запрос к базе пойдет, когда сгенерированное число пройдет проверку, а оно как-то раз умудряется ее проскочить, если вследствие $d=$p-1; цикл становится бесконечным
Спустя 3 минуты, 12 секунд (20.10.2011 - 17:18) Winston написал(а):
Цитата (hecby @ 20.10.2011 - 17:15) |
На американском форуме - задаешь вопрос, получаешь ответ, |
Задавайте вопросы на американских форумах
Спустя 4 минуты, 3 секунды (20.10.2011 - 17:22) imbalance_hero написал(а):
Согласен с предыдущим оратором. Если я сделаю за тебя, то ты должен будешь заплатить мне деньги. Наш форум для нормальных и профессиональных советов.
Спустя 2 минуты, 53 секунды (20.10.2011 - 17:25) hecby написал(а):
Хорошо товарищи, давайте профессиональные советы кому-нибудь другому, если сумеете, потому как больше похожи на бабок у подьезда, чем на профессионалов. Спс за помощь, закрывайте тему
Спустя 1 минута, 31 секунда (20.10.2011 - 17:26) m4a1fox написал(а):
Чер! Надо себе снипет сделать, по поводу экстрасенсорных способностей здешних обитателей!!!!! Фуууух код покажи, пожалуйста!
Спустя 1 минута, 13 секунд (20.10.2011 - 17:27) imbalance_hero написал(а):
За ваши деньги любой каприз!
Спустя 13 минут, 22 секунды (20.10.2011 - 17:41) hecby написал(а):
код есть, там где большой красный знак восклицания