php如何做有时间限制的置顶贴功能 本帖最后由 dancer3319 于 2011-10-19 16:37:02 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你不是有置顶的起始时间么?转换成时间戳然后跟需要置顶几天的时间戳做做个比较就可以了。在时间戳内的显示,不在的不显示。不用纠结在SQL上,让PHP来完成。 分开最简单了。单独取置顶的。只加一个字段就行了。就是置顶过期时间。查置顶的信息时候 WHERE top_time > now() select * from news order by istop and DATE_ADD(topdate,INTERVAL topday DAY)<=now(), news_date desc 第一次看到如此强大的order by。 偶也是第一次见过如此强捍之order 第一次见如此强悍之orderwhere ( (addtime+3600*24*3)>unix_timestamp() and is_top=1 ) or 1=1 order by is_top,addtime 学到了个新的函数DATE_ADD(date,INTERVAL expr type) 问题已经完美解决,谢谢大家。谢谢4楼的xuzuning,让我学到了一个好用的函数DATE_ADD;我把实际应用时碰到问题说一下,算作个补充吧,希望能对后面遇到的朋友有帮助:DATE_ADD是个mysql的函数,用法DATE_ADD(date,INTERVAL expr type)date这个参数必须是"2011-10-20"或"2011-10-20 12:20:50"这样的时间格式,用"1319338463"这样的时间戳是不行的;还要记得istop 也要desc才可以。我的完整sql语句是:select * from newstable order by istop and DATE_ADD(topdate,INTERVAL topday DAY)>=now() desc,adddate desc其中istop 是否置顶int 0/1topday 置顶天数inttopdate 置顶开始时间 datetimeadddate 新闻发布时间 varchar 更正一下,前面说的"date这个参数必须是"2011-10-20"或"2011-10-20 12:20:50"这样的时间格式",好像不对,这个时间格式应该跟DATE_ADD(date,INTERVAL expr type) 里面的type有关;也许是我这里用了DAY所以不能用时间戳;用其它的只要对应了类型应该也可以的,我没有试过;说话还是严谨点好,不要误导了后人,呵呵 求教:PHP从一个数据库读取数据,写入另一个数据库里 SQL thinkPHP怎么和smarty整合, 关于 跨域传值的问题 为何创建完对象,函数就已经调用啦? 请问我现在要一个时间格式 显示 php 二维数组 部分数据 批量处理mysql数据时,如何加上筛选条件?请高手能直接给出代码,谢谢! 关于分页,大家帮我看看是什么问题? 大家请进,up有分,如何解决字符串全词匹配的问题? 类成员默认访问标识符是什么 这段代码哪里错了,关于$_POST[]
偶也是第一次见过如此强捍之order
问题已经完美解决,谢谢大家。谢谢4楼的xuzuning,让我学到了一个好用的函数DATE_ADD;我把实际应用时碰到问题说一下,算作个补充吧,希望能对后面遇到的朋友有帮助:DATE_ADD是个mysql的函数,用法DATE_ADD(date,INTERVAL expr type)date这个参数必须是"2011-10-20"或"2011-10-20 12:20:50"这样的时间格式,用"1319338463"这样的时间戳是不行的;
还要记得istop 也要desc才可以。
我的完整sql语句是:select * from newstable order by istop and DATE_ADD(topdate,INTERVAL topday DAY)>=now() desc,adddate desc其中
istop 是否置顶int 0/1
topday 置顶天数int
topdate 置顶开始时间 datetime
adddate 新闻发布时间 varchar