|
|
|
| Есть таблица link с полями id, url, title, category, active.
В этой таблице хранится список ссылок на сайты (url), название сайта (title),
категория (category), active (одобрен модератором, тип boolean). id это уникальный идентификатор.
Запрос такой SELECT url, title FROM link WHERE category=foto AND active=true
в PHP есть rand, это я знаю.
После этого запроса скрипт получит список сайтов,
теперь надо выбрать из получившегося списка случайным образом 10 разных сайтов.
Вот как это сделать не знаю, какой SQL-запрос использовать? | |
|
|
|
|
|
|
|
для: lovop
(18.10.2008 в 22:08)
| | добавьте в запрос "ORDER BY RAND() LIMIT 10" | |
|
|
|
|
|
|
|
для: ddhvvn
(18.10.2008 в 22:57)
| | Вы ответили:
"ORDER BY RAND() LIMIT 10"
Я кое что не понял.
Это сам сервер mysql вызывает функцию rand?
С запросом LIMIT я знаком, поэтому знаю что это лимит.
Да, идея правильная. Но эта rand может сгенерировать
одинаковые значения, а мне надо разные каждый раз.
Может результат первого запроса добавить с массив (как функция file) и из этого массива
for i=1 to 10 и каждый раз в теле цикла
вызывать rand (0, длина_массива)
и после этого удалять из массива выбранный элемент? | |
|
|
|
|
|
|
|
для: lovop
(18.10.2008 в 23:40)
| | Он всякий раз будет генерировать разные значения, постоянная случайная последовательность возникает только в том случае, если передать какой-нибудь числовой параметр функции RAND(). Впрочем в любом случае этот режим в конструкции ORDER BY не должен работать. | |
|
|
|
|
|
|
|
для: cheops
(19.10.2008 в 02:40)
| | >...Впрочем в любом случае этот режим в конструкции ORDER BY не должен работать.
В смысле? Тут уже я не понял... | |
|
|
|
|
|
|
|
для: ddhvvn
(19.10.2008 в 10:45)
| | Вам не удастся обработать запрос ORDER BY RAND(10), только ORDER BY RAND() | |
|
|
|
|
|
|
|
для: cheops
(19.10.2008 в 12:01)
| | ясно =) | |
|
|
|