Php 使用codeigniter显示按值分组的结果

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

问题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: 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);