Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > SELECT случайных неповторяющ строк используя MySQL


Автор: Black 3.5.2005, 20:50
Вообщем, делаю галерею картинок (изображений).

Хочется сделать показ случайных картинок... одну картинку показывать проблем нету, рандомом генерим число в диапозоне от 0 до общего кол-ва картинок в БД MySQL.

Однако, как добиться того, чтобы получить пять случайных картинок??? причем чтобы ни одна из них не повторилась...

Конечно можно опять mt_rand использовать, но а если картинок всего 10???

Можно генерить числа и каждое из них записывать в массив, а потом новое сгенерированное число искать в этом массиве и если оно там есть, то попытаться сгенерировать другое :-)

Но при таком раскладе и при малом кол-ве изображений может возникнуть ситуация зацикливания скрипта...

Может можно сделать, чтобы база данных сама вернула нужное кол-во уникальных строк причем не по порядку а именно в разброс, т.е. чтобы ID полей шли не 1,2,3,4,5 а например: 1,3,7,9,2,5

Ну думаю вы поняли что я хотел сказать... может кто уже сталкивался...

Автор: Irokez 3.5.2005, 20:57
Код

select * from `gallery`order by rand() limit 5

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)