发新话题
打印

如何用最简单的方法实现如下功能?

如何用最简单的方法实现如下功能?

原文题:  
一个客户表,一个访问记录表  
已有功能  
列出每个客户的最后出访时间,如果最后出访时间超过2星期,则会自动提醒.  
提醒时列出所有2星期内没有访问的客户列表  
现想实现如下功能:  

在列表中的客户,如果想暂时取消访问某个客户的提醒,点击该客户对应的按钮即可。  

例如:  

客户名称                        最后访问时间                          操作  
   小王                              2005-01-05                            暂时取消提醒  
   小张                              2005-01-20                            暂时取消提醒  

当我点小王对应的暂时取消按钮时,小王就暂时不会出现在提醒的列表中,  
而这个暂时是从点击按钮当天开始到2个星期之后,也就是相当于点击后修改了最后访问时间为点击当天。  

如何用最简单的方法实现如下功能?  
注:不能直接修改最后访问时间,这样做造成信息不准确

TOP

以下讨论基于mysql  
1、增加一个字段,保存点击暂时取消按钮时的时间  
设增加的字段为“暂时取消”则  
SELECT  *  FROM  tbl_name  where  subdate(now(),INTERVAL  14  DAY)>if(暂时取消>最后访问时间,暂时取消,最后访问时间)  
仅仅是设一个标志是不行的  

2、借助原字段,用年度来附加日期差  
当点击“暂时取消”时,计算出“最后访问时间”与当前时间相差的天数,并将该天数当作年数加到最后访问时间”上,查询时取出增加的年数作为参数调整“最后访问时间”  
SELECT  *  FROM  tbl_name  where  subdate(now(),INTERVAL  14  DAY)>subdate(adddate(最后访问时间,INTERVAL  YEAR(最后访问时间)-YEAR(now())  DAY),  INTERVAL  YEAR(最后访问时间)-YEAR(now())  YEAR)  

这样可以不增加字段而充分利用原字段。  
存在一个小问题:计算是基于当前时间的,因此跨年份时就不准确了。

TOP

发新话题