我想从CodeIgniter数据库中获得promotion
的start_date
和expire_date
,以便促销自动出现在start_date
上,并在expire_date
之后消失。
我怎样才能做到这一点呢?
这是数据库的布局:
promotion:
id(primary,autmatic),
image(varchar,255),
description(longtext),
start_date(datetime),
expire_date(datetime),
内容示例如下:
id image description start_date expired_date
1 1.jpg textpromo1 1/10/2015 5/10/2015
2 2.jpg textpromo2 8/10/2015 22/10/2015
2 3.jpg textpromo3 1/11/2015 12/11/2015
这是我在视图中的查询代码
<?php $query = $this->db->get('promotion'); ?>
<?php foreach($query->result() as $val): ?>
<div class="promotion">
<p><?php echo image; ?></p>
<p><?php echo description; ?></p>
<p><?php echo start_date; ?></p>
<p><?php echo expired_date; ?></p>
</div>
<?php endforeach; ?>
结果是:
1.jpg textpromo1 1/10/2015 5/10/2015
2.jpg textpromo2 8/10/2015 22/10/2015
3.jpg textpromo3 1/11/2015 12/11/2015
根据讨论,您希望获取开始日期和到期日期之间的记录
SELECT *
FROM promotion
WHERE start_date <= '2015-10-23' AND expire_date >= '2015-10-23'
在codeigniter中这样做,
<?php
$this->db->where('start_date <= ' , date('Y-m-d'));
$this->db->where('expired_date >= ' , date('Y-m-d'));
?>
你可以把今天的日期在一些变量中使用。
使用如下条件
$this->db->where('start_date >= ' , date('Y-m-d'));
$this->db->where('expire_date <= ' , date('Y-m-d'));
$query = $this->db->get('promotion');
您可以在这里获得更多信息
https://ellislab.com/codeigniter/user-guide/database/active_record.html