我正在尝试设置一个Cron作业,它将按顺序选择一个精选视频。
因此,例如,视频ID 1是当前的精选视频。在几周后,它将是ID 2.我想在之后加载视频3-18。
这可以使用Active Record或MySQL Statement吗?
这是一个很难解释的问题,所以如果您需要更多信息,请发表评论,我会回复您。
非常感谢。
答案 0 :(得分:2)
我同意@Daan的评论。
在数据库中添加一个新列(current_featured_id
),它可以是TINYINT
,默认值为0.如果有视频,则current_featured_id
中的行将为1列。
就实际的cron作业而言,在crontab中添加一个命令,每周运行一次函数* 0 * * 0 featured_vid
(每周日午夜运行)
function featured_vid() {
//get the current featured id
$featured_id = $this->db->select('video_id')
->from('table_name')
->where('current_featured_id',1)
->get()->row()->video_id;
$new_featured_id = $featured_id+1;
$update_featured = array(
array(
'video_id' => $featured_id,
'current_featured_id' => 0
),
array(
'video_id' => $new_featured_id,
'current_featured_id' => 1
),
);
//update your db
$this->db->update_batch('table_name', $update_featured, 'video_id');
}