->唠叨大哥请进:关于24小时内点击最高的新闻sql语句 select top 1 * from tablec where datez >='dateadd(day,-1,getdate())' and datez <='getdate()' order by dianj desc 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我这几天在做一个东西也需要一个周点击排行,我现在正在做是这样做的,加了几个字段,(最后点击时间戳,年月日周的点击次数5个字段和总点击次数)同时实现了记录年月日周的点击数.有了点击数统计就很好统计了呵,当天的点击查日点击次数就好了大概的代码这样的.呵呵,也不知道逻辑上有没有错误..因为还没有加到做的系统里面去.$oldTimeStamp = mktime(0,0,0,1,16,2005); //这个从数据库里取出来,这里模拟的//从数据库里初始化$hits = 10;$yhits = 10;$mhits = 10;$dhits = 10;$whits = 10;$nowDateArray = getdate();$oldDateArray = getdate($oldTimeStamp);//year processif($nowDateArray["year"] == $oldDateArray["year"]) $yhits ++;else $yhits = 1;//month processif($nowDateArray["year"] == $oldDateArray["year"] && $nowDateArray["mon"] == $oldDateArray["mon"]) $mhits ++;else $mhits = 1;//day processif($nowDateArray["year"] == $oldDateArray["year"] && $nowDateArray["mon"] == $oldDateArray["mon"] && $nowDateArray["mday"] == $oldDateArray["mday"]) $dhits ++;else $dhits = 1;//week process//取得本周的开始结束时间段//本周开始时间,从今天开始后退n天到星期天的0点,一个周从星期天开始.如果从星期一开始把0,0,0改为23,59,59$tmpStartDate = mktime(0,0,0,$nowDateArray["mon"],$nowDateArray["mday"],$nowDateArray["year"]) - ($nowDateArray["wday"] * 86400);//本周结束时间,本周六12点59$tmpEndDate = mktime(23,59,59,$nowDateArray["mon"],$nowDateArray["mday"],$nowDateArray["year"]) + ((6 - $nowDateArray["wday"]) * 86400);//如果上次更新在这个时间段内,为同一周if($oldTimeStamp >= $tmpStartDate && $oldTimeStamp <= $tmpEndDate) $whits ++;else $whits = 1;//接下来更新最后记录时间数据库$hits ++;//总点击数加1$sql = "UPDATE TABLE SET HITS=".$hits.", YHITS=".$yhits.",MHITS=".$mhits.",DHITS=".$dhits.",WHITS=".$whits.",LASTTIMESTAMP=".$nowDateArray[0]." WHERE OID=".$id; 求教链接数据库的效率方法 php smarty 如何綁定下拉框 急:在Smarty模板循环体中调用自定义函数 面向对象的讨论! 有人写过用pear的mail的mail类发送带附件的邮件程序吗?可以给我个例子吗? 【支持唠叨,大家来投票!】 来着有分! 为什么用WHILE不能遍历输出表 [急,狂甩分]如何实现复选框选中的删除操作 PHP session 问题 php验证用户名和密码出现错误错误 关于数字的问题!急!! [求救]简单问题:如何把内存按某一读取?
是这样做的,加了几个字段,(最后点击时间戳,年月日周的点击次数5个字段和总点击次数)
同时实现了记录年月日周的点击数.有了点击数统计就很好统计了呵,当天的点击查日点击次数就好了
大概的代码这样的.呵呵,也不知道逻辑上有没有错误..因为还没有加到做的系统里面去.
$oldTimeStamp = mktime(0,0,0,1,16,2005); //这个从数据库里取出来,这里模拟的
//从数据库里初始化
$hits = 10;
$yhits = 10;
$mhits = 10;
$dhits = 10;
$whits = 10;$nowDateArray = getdate();
$oldDateArray = getdate($oldTimeStamp);
//year process
if($nowDateArray["year"] == $oldDateArray["year"])
$yhits ++;
else
$yhits = 1;//month process
if($nowDateArray["year"] == $oldDateArray["year"] && $nowDateArray["mon"] == $oldDateArray["mon"])
$mhits ++;
else
$mhits = 1;//day process
if($nowDateArray["year"] == $oldDateArray["year"] && $nowDateArray["mon"] == $oldDateArray["mon"] && $nowDateArray["mday"] == $oldDateArray["mday"])
$dhits ++;
else
$dhits = 1;//week process
//取得本周的开始结束时间段//本周开始时间,从今天开始后退n天到星期天的0点,一个周从星期天开始.如果从星期一开始把0,0,0改为23,59,59
$tmpStartDate = mktime(0,0,0,$nowDateArray["mon"],$nowDateArray["mday"],$nowDateArray["year"]) - ($nowDateArray["wday"] * 86400);//本周结束时间,本周六12点59
$tmpEndDate = mktime(23,59,59,$nowDateArray["mon"],$nowDateArray["mday"],$nowDateArray["year"]) + ((6 - $nowDateArray["wday"]) * 86400);
//如果上次更新在这个时间段内,为同一周
if($oldTimeStamp >= $tmpStartDate && $oldTimeStamp <= $tmpEndDate)
$whits ++;
else
$whits = 1;//接下来更新最后记录时间数据库
$hits ++;//总点击数加1
$sql = "UPDATE TABLE SET HITS=".$hits.", YHITS=".$yhits.",MHITS=".$mhits.",DHITS=".$dhits.",WHITS=".$whits.",LASTTIMESTAMP=".$nowDateArray[0]." WHERE OID=".$id;