![]() |
Random query?
Подсакажите как сделать рандом запрос.
PHP код:
я пытаюсь выбрать одну строку в рандомальном порядке где recommended='1', как ето можно вычеслить на PHP? Без использования RANDOM(). |
Выбрать твою квери и в пхп и сделать rand(0, $max), прежде не забыв "рандомизировать" с помощью srand() ($max в ранде должен равнятся mysql_num_rows() твоего кверя).
Дальше - mysql_data_seek к получившимуся ранду... Кстати, почему бы не актуализировать заведомо глючный мускул? |
Ты бы не мог на примере ето показать?
//please |
$sql_q = "SELECT * FROM travel WHERE recommended='1' "
$qw = mysql_db_query($db, $sql_q); $max = mysql_num_rows($qw); $random_q = random(0, $max); mysql_db_seek($qw, $random); // dalshe delayesh mysql_result i vse chto tebe nado function random ($min, $max) { list($usec, $sec) = explode(' ', microtime()); $rand_t = $sec + ((float) $usec * 100000); srand($rand_t); return rand($min, $max); } |
Ужас какой... Тянуть из базы туеву хучу строк, чтобы выбрать одну. Кто-то из мудрых советовал так:
Код:
select rand()+0 as r, .... from ... where ... order by 1 limit 1 |
Мдя, быть может тоже правда. Хотя в принципе то order by rand тоже присутвует. Да и ху*ву тучу строк из базы тянуть не обязательно.
Запрос увесистый получается? Вопрос правильной организации данных (и конечно - качественого администрирования и апдейта мускула). Вот что странно : этот глюк касается только виндовозкого мускула (http://groups.google.com/groups?q=my....edu.tw&rnum=2) . Очень сомниваюсь что-бы на хостинге автора стоял Windows + Mysql . То есь на локалхосте проблемма? Почему бы его не обновить на более стабильную версию ? |
//
RAND() не отзывается хоть как на mysql 3.23.xx точно ты заметил что Bug только на Windows Cделал Upgrate to mysql 4.0.16 и всё ok, rand() работает как следует. |
а в мануале советуют MD5(RAND()) - я так пробовал...
работало... |
Оно так типа лучше рандомируется если с MD5? :)
Мне нужно что бы на заглавной странитце при загрузке поевлялось ADV, поетому нужен хороший рандомайзер. |
Цитата:
P.S. В версии 3.23.XX нет никакого глюка с rand. Там есть глюк с оптимизатором запросов. |
| Часовой пояс GMT +4, время: 09:12. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.