2009-10-19 2 views
-1

в моей системе мне нужно получить годовой отчет. как я могу получать годовой отчет только один раз в год. У меня есть кнопка, которая генерирует отчет, но это должно быть только один раз в год. поэтому он не должен быть кнопкой, потому что это означает, что отчет можно получить более одного раза в год. какие-либо предложения? Кстати, я использую php.кнопка для годового отчета

ответ

2

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

CREATE TABLE annual_report_views (
    id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    viewed DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' 
); 

Вы хотели бы вставить время даты в формате YYYY -MM-DD HH: II: SS в эту таблицу после того, как пользователь нажал кнопку в первый раз.

Вы можете затем запросить эту таблицу каждый раз, когда пользователь находится на странице, содержащей кнопку годовой отчет, используя переменную как и сравнить даты:

$date = date('Y-m-d H:i:s', strtotime('-1 year')); 

Если дата в таблице выше, чем дата возвращенный из этой переменной, не показывайте кнопку, потому что она находится в течение последнего года.

+0

Это хорошая идея, но что если кнопка нажата сегодня (2009), то в январе (2010), так как это новый год, кнопка будет отображаться снова, даже если она еще не год. – noob

1

, что это хорошая идея, но что, если кнопка нажата сегодня (2009), затем в января (2010), так как новый год кнопка будет отображаться снова , даже если он не был в год все же

Ну, поле «год» хранит год, о котором идет речь, а не год нажатия кнопки (или любого другого) ... Таким образом, вы можете узнать, 2009 год уже был рассмотрен ...

1

Я думаю, что здесь есть смысл использования, который нуждается в рассмотрении. Вы должны быть в состоянии получить отчет любого времени, но вы должны быть в состоянии получить отчет только за конкретный год. Система должна иметь возможность определять (на основе даты), которая является текущим годовым отчетом (и если имеется полный отчет, или нет).

например. в противном случае, что произойдет, если вы нажмете кнопку, получите свой отчет, а затем случайно удалите его? Вы не сможете получить этот отчет снова, не так ли?

+0

Я согласен с вами в этом, хотя его строка «У меня есть кнопка, которая генерирует отчет» также может означать, что отчет сохраняется на диске. –