要区分新旧消息,解决问题的关键是要得到能够分隔新旧消息的关键点。这个关键点就是用户点击显示消息页面时,显示第一条消息的那一点(系统消息一般是按时间顺序显示的)。
同时,由于数据表中有ID字段,而ID字段又是以时间顺序排列的,新消息的ID总比旧消息的ID要大,所以,我们可以充分利用这个特性,在显示第一条消息时,记下这个ID。算法描述如下:
RESULT=”SELECT * FROM table WHERE to_id=34123 ORDER BY time DESC” //把SQL结果放入变量RESULT
MAXID=-1
WHILE (RESULT) //循环,直到显示完RESULT的内容才结束
IF (MAXID ==-1) MAXID=RESULT[“ID”] //如果MAXID为-1则赋值
…… // 显示部分
MAXID的值可以通过URL、COOKIE或SESSION等方法传递给删除消息的页面,删除消息的SQL描述如下:
DELETE FROM table WHERE to_id=34123 AND id<=MAXID
同时,由于数据表中有ID字段,而ID字段又是以时间顺序排列的,新消息的ID总比旧消息的ID要大,所以,我们可以充分利用这个特性,在显示第一条消息时,记下这个ID。算法描述如下:
RESULT=”SELECT * FROM table WHERE to_id=34123 ORDER BY time DESC” //把SQL结果放入变量RESULT
MAXID=-1
WHILE (RESULT) //循环,直到显示完RESULT的内容才结束
IF (MAXID ==-1) MAXID=RESULT[“ID”] //如果MAXID为-1则赋值
…… // 显示部分
MAXID的值可以通过URL、COOKIE或SESSION等方法传递给删除消息的页面,删除消息的SQL描述如下:
DELETE FROM table WHERE to_id=34123 AND id<=MAXID
delete from table where to_id=XXX and 短消息id<打开页面得到的最大id号