Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Голосования


Автор: Mystery_of_being 8.11.2006, 00:52
Привет всем. Если Голосование Одно. То это не проблем..


Но вот вопрос. У меня Галерея Юзеров. И в ней надо сделать голосование. Голосовать могут только зарегестрированные.
Но не могу же я на всех за кого Юзер проголосовал отсылать ему Кукис. 

Я так понимаю мне придется писать Всех за кого он голосовал в Базу данных, а потом юзая КРОН в 24:00 очишать базу данных ? 

Автор: SelenIT 8.11.2006, 02:33
Mystery_of_being, если я верно понял задачу, то надо реализовать ограничение "не более 1 голоса от 1 юзера в сутки"? Или "не более 1 голоса за каждую кандидатуру в сутки от 1 юзера"?

Впрочем, реализация обоих вариантов похожа. Только в первом пишем в базу "id_кто_голосовал - дата/время", а во втором - "id_кто_голосовал - id_за_кого_голосовал - дата/время", предварительно проверяя наличие точно такой же записи моложе 24 часов (если есть - запрещаем). А удалять старые записи (>24ч) можно не только по крону, но и просто раз в 100 запросов (например).

Автор: Mystery_of_being 8.11.2006, 22:09
Ты меня правильно понял. Ну это понятно. Только вот делема с удалением... как понять 1 раз в сто запросов? 


Смотри. Вот юзер проголосовал за Олю и Диму в 22:00 и в 01:00 он опять за них может проголосовать. То есть это уже чисто по Крону ?  А есть альтернатива какая-то ? 

Автор: Powerhead 8.11.2006, 22:39
Зачем крон, если ты сохранил время голосования в базе? 
Если  TO_DAYS(now()) - TO_DAYS(`твое_поле`) больше нуля - голосовать можно. Для хранения времени используй тип TIMESTAMP 

http://www.mysql.ru/docs/man/Date_and_time_functions.html

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