MySQL - 博客后期调度系统

时间:2010-09-21 01:45:48

标签: php mysql codeigniter blogs

我正在使用CodeIgniter创建一个博客文章调度系统。我希望每天有10个帖子出现。 posts表中有一个名为scheduled_date的字段,我将获得小于或等于当前日期的帖子。当管理员用户向数据库添加新记录时,我需要一个SQL语句,以某种方式帮助我计算数据库中具有最新日期的记录数。例如:

// 9 records returned for the date 2011-01-01
$numbers_of_records == 9;
if($numbers_of_records == 10){
    // inserts record with `scheduled_date`='2011-01-01'
}else{
    // inserts record with the date latest date +1 day
}

我将如何有效地完成这项工作?

由于

1 个答案:

答案 0 :(得分:0)

这样就可以了。它简单而有效。

<?php

//  It is very bad to have floating values, especially for settings
//  it is good to use some sort of factory or settings class
$maxDailyPosts = (int) SettingsFactory::getSettings()->get('maxDailyPosts');
$date = '2011-01-01';

//  Load # of post for data
$numberOfRecords = (int) getNumberOfPostPerDate($date);

//  Figure out the interval for increment
$dayInterval = ($numberOfRecords >= $maxDailyPosts ) ? 1 : 0;

//  
$query = "INSERT INTO tbl (publish_date, ...) VALUES (DATE_ADD('$date', INTERVAL $dayInterval DAY), ...)";

?>