PHP - отображение 1 случайной записи за каждую неделю - PullRequest
3 голосов
/ 26 апреля 2010

Я хочу отобразить 1 случайную запись из базы данных на основе недели.

Мне нужно определить, является ли это новой, а если это новая неделя, то выберите запись и отобразите новую запись.

Я думаю, что я могу просто использовать один день недели для создания новой записи, в любом случае будет работать.

Мне действительно трудно понять, как я буду хранить идентификатор записи, а не выбирать новый, когда кто-то снова заходит в тот же день или обновляет страницу.

Есть идеи? Дайте мне знать, если я не достаточно ясно.

Кроме того, у меня нет доступа к заданиям cron, так как это общий хостинг.

Ответы [ 3 ]

2 голосов
/ 26 апреля 2010

Создайте таблицу, содержащую идентификатор строки, которую вы хотите отобразить, и столбец даты / времени, в котором указано, когда эта строка была вставлена. Затем все, что вам нужно сделать, это обновить идентификатор, если прошло более недели с момента его вставки. К сожалению, вам придется делать эту проверку для каждого запроса. Если вы этого не хотите, вы можете создать задание cron, которое будет запускаться раз в неделю и обновлять таблицу.

0 голосов
/ 26 апреля 2010

Функция MySQL RAND() принимает целочисленный параметр N, который используется в качестве начального значения. Это позволяет получить одну и ту же последовательность в нескольких запросах - вы можете взглянуть на примеры в http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_rand. Я бы попытался использовать что-то вроде SELECT field_1, field_2, field_3 FROM table_name ORDER BY RAND($time) ASC LIMIT 1, где $time будет UNIX-меткой времени для начала текущего неделя.

0 голосов
/ 26 апреля 2010

Сделайте так, чтобы скрипт выбрал случайное значение из вашей базы данных, а затем поместите его в свободное место в вашей базе данных. Затем запустите скрипт, который отображает записанную точку в вашей базе данных. Таким образом, выбор сценария будет выполняться только один раз как задание cron.

В основном сценарий A извлекает записанный файл и заменяет вновь выбранный файл поверх старого, затем сценарий B указывает на эту запись таблицы. Если вы не можете создавать таблицы и записи, просто сохраните в текстовом файле идентификатор записанного в сценарии A, а затем считайте этот идентификатор в сценарий, который его отображает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...