Php 使用codeigniter显示按值分组的结果
问题1: 正在查看以下分组的一些事件:Php 使用codeigniter显示按值分组的结果,php,codeigniter,Php,Codeigniter,问题1: 正在查看以下分组的一些事件: 2013 November 08/11/2013 - Name 1: Desc 1 December 31/12/2013 - Name 2: Desc 2 2014 February 14/02/2014 - Name 3: Desc 3 March 25/03/2014 - Name 4
2013
November
08/11/2013 - Name 1: Desc 1
December
31/12/2013 - Name 2: Desc 2
2014
February
14/02/2014 - Name 3: Desc 3
March
25/03/2014 - Name 4: Desc 4
年份月份
活动详情请点击此处 数据库具有以下结构:
event_year | event_month | event_day | event_name | event_description
2013 | 11 | 08 | Name 1 | Desc 1
2013 | 12 | 31 | Name 2 | Desc 2
2014 | 02 | 14 | Name 3 | Desc 2
2014 | 03 | 25 | Name 4 | Desc 4
我希望它显示如下:
2013
November
08/11/2013 - Name 1: Desc 1
December
31/12/2013 - Name 2: Desc 2
2014
February
14/02/2014 - Name 3: Desc 3
March
25/03/2014 - Name 4: Desc 4
问题2:
桌子上还有过去的事件,当然我们只想显示即将发生的事件。我将如何解决这个问题?到目前为止,我成功地显示了所有事件,效果非常好,我还计算了如何按年份和月份对它们进行排序,但它只给出了所有事件的列表,而没有分组
以下是模型的代码:
function getEvents($limit = 20, $offset = 0) {
$this->db->select('*');
$this->db->from('events_posts');
$this->db->limit($limit, $offset);
$this->db->order_by('event_year', 'desc');
$b = $this->db->get()->result();
return $b;
}
function getAllEvents() {
$this->db->select('*');
$this->db->from('events_posts');
$b = $this->db->get();
return $b;
}
这是控制器:
$events = $this->events_model->getEvents($config['per_page'], $from);
$this->outputData['events'] = $events;
$this->load->view('events/index',$this->outputData);
和我的意见页:
<?php foreach($events as $event) { ?>
<a href="<?php echo site_url('events/view/' . $event->id); ?>"><h2><b><?php
echo $this->lang->line('Event:'); ?> <?php echo $event->title ?></b></h2></a>
<?php echo $event->descriptions ?>
<?php echo $event->event_day ?>/<?php echo $event->event_month ?>/<?php echo $event->event_year ?> a las <?php echo $event->event_hour ?>:<?php echo $event->event_min ?> horas
<?php } ?>
//a:霍拉斯
我很好奇:你到底为什么要用不同的字段来存储年、月、日的日期?为什么不只是一个日期字段?不要使用三个字段来存储日期。从语义上讲,它是一个日期,所以将其存储为日期。当你不需要的时候,你会在各种各样的痛苦中验证数字的真实性和正确性。例如,2015年2月29日发生了什么?mysql函数可以为您完成所有工作。看,你需要担心时区吗?如果是这样,您需要使用datetimes。对于问题2。使用where条件。ie where date>curdate()。例如,$this->db->where(“event\u date
>=curdate()”,null,false);