Задавайте вопросы, мы ответим
Вы не зашли.
Задача следующая - из таблицы нужно вывести случайную запись, но не из всех, имеющихся в наличии, а только из удовлетворяющих определенным условиям. Как я понимаю, логика должна быть следующей: 1) выбираем id записей, отвечающих необходимым условиям 2) загоняем отобранные id в массив 3)из массива с помощью array_rand выбираем случайный id 4)выводим запись с этим id. Если это правильный ход рассуждений, то как это реализовать на php? Собственно, я знаю, как сделать все, кроме 2-го шага, т.е. как создать массив.
Вот, например, этот кусок кода выводит все нужные мне id:
Неактивен
Топорное решение
Неактивен
Я прочитала, что при большом количестве записей на обработку таких запросов уходит очень много времени, поэтому сразу решила сделать как-то более правильно из принципиальных соображений. У меня вряд ли в этой таблице когда-нибудь появится больше пары сотен записей, но вдруг...
Неактивен
Если только SELECT id (а не SELECT *) и только пара сотен записей, то это оптимальное решение. Преждевременная оптимизация - корень всех зол.
Если записей будет много, то нужно их посчитать (SELECT count(*) from `video` WHERE `to_show`=1) - скажем их N. Затем сгенерировать целое случайное число M от 0 до N-1. Затем выбрать одно число на m-м месте.
Неактивен
Ok, спасибо!
Неактивен