一、wid的问题
date(‘W’,$tm) $tm 为2013.12.30 和31时返回值为1 。2013-12-30 – 2014-01-05是一周。 之前预想的是应该返回53的。用这个作为周期出了点问题。
修复方法:取时间所在周的周一
function DateWeek($tm)
{
$w = date(‘w’, $tm);
// 周日的处理
if ($w == 0)
{
$w = 7;
}
$time = $tm + (7-$w)*24*3600;
return date(“YW”, $time);
}
二、广告发布问题。
购买时间后的第二天中午发布,按发布时间依次上。同一天可能买到很远的时间后。
购买记录buy_log按购买时间 的年月分表。如buy_log201401
显示当天该上的广告 pubtm < time() < outtm
发布的时候需要查询某房间广告排期的最后结束时间,maxOutTm 。
因用户可能在201301的分表买到了2014 01月该上的广告,只能循环从 最小的表-最大的表 查询最大的maxOutTm。比较费劲。
简单的方式应该是 单独建立个发布表publish_log (rid,pubtm,outtm) 可以按rid分表。 查询最大的outtm。方便清楚。
三、数据库int字段越界update返回为0
给同事的一个号测试返币老是报错,就他一个号报错。后来查日志才发现,是我上次给他加币写了一坨9,存了个int的最大值 4294967295 ,无法在增加了。自己设置的坑。。。