如何通过Codeigniter活动记录按年份和月份分组?

刷新

我想按年和月在我的网站上对杂志的发行进行分组。

我的数据库中有年和月字段,这些字段将用于按年和月分组数据。(例如2013年4月)。我要获取的示例(按DESC排序):

2014
  December
  November
  October
  ....

2013
  December
  November
  October
  ....

模型:

public function get_all_mag($type){
   $this->db->where('type', $type); 
   $this->db->order_by("mag_year", "desc"); 
   $query = $this->db->get('magazine');
   return $query->result();
}

控制器:

$data['magarchive'] = $this->Mdl_magazine->get_all_mag($id);

看法:

<?php foreach ($magarchive as $archive): ?>
    <div class="arhive_block">
        <span class="year"><?php echo $archive->mag_year; ?></span>
        <div class="ar_nom">
            <a href="<?php echo base_url();?>magazine/issue/<?php echo $archive->id; ?>">
                <img src="<?php echo base_url();?>upload/<?php echo $archive->photo_footer; ?>" alt="">
            </a>
            <a href="<?php echo base_url();?>magazine/issue/<?php echo $archive->id; ?>" class="month"><?php echo $archive->mag_month; ?></a>
        </div>
    </div>
<?php endforeach; ?>

现在,我得到了这样的东西:

2014
 December
2014
 November
...
2013
 December
2013
 November
...

我不是Codeigniter的专家,我是不久前才刚开始的,所以请不要射击初学者。太感谢了。

扎克花

像您描述的那样分组和显示肯定会有些混乱。首先,你要一个添加$this->db->group_by(array("mag_year", "mag_month"));get_all_mag()方法。

public function get_all_mag($type) {
    $this->db->where('type', $type); 
    $this->db->order_by("mag_year", "desc"); 
    $this->db->group_by(array("mag_year", "mag_month"));
    $query = $this->db->get('magazine');
    return $query->result();
}

这将按年然后按月对结果进行分组,因此您将获得期望的数据。不幸的是,当您输出数据时,仍然会得到相同的结果,但是如果更新get_all_mag()方法以返回对象数组(键为Year),它将使输出数据变得更加容易。

public function get_all_mag($type) {
    $this->db->where('type', $type); 
    $this->db->order_by("mag_year", "desc"); 
    $this->db->group_by(array("mag_year", "mag_month"));
    $query = $this->db->get('magazine');

    $magarchive = array();

    if ( $results = $query->result() ) {
        foreach ( $results as $result ) {
            if ( !isset($mag[$result->mag_year]) ) {
                $magarchive[$result->mag_year] = array();
            }

            $magarchive[$result->mag_year][] = $result;
        }
    }

    return $magarchive;
}

这将返回对象数组,而不是单个对象。要以所需的方式输出响应,您必须将视图更改为具有嵌套循环,以便首先输出年份,然后输出该年份下的每个月。

<?php foreach ($magarchive as $year => $months): ?>
    <div class="arhive_block">
        <span class="year"><?php echo $year; ?></span>
        <?php foreach ( $months as $archive ) : ?>
            <div class="ar_nom">
                <a href="<?php echo base_url();?>magazine/issue/<?php echo $archive->id; ?>">
                    <img src="<?php echo base_url();?>upload/<?php echo $archive->photo_footer; ?>" alt="">
                </a>
                <a href="<?php echo base_url();?>magazine/issue/<?php echo $archive->id; ?>" class="month"><?php echo $archive->mag_month; ?></a>
            </div>
        <?php endforeach; ?>
    </div>
<?php endforeach; ?>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过Codeigniter活动记录按年份和月份分组?

来自分类Dev

mysql按年份分组与按年份和月份分组

来自分类Dev

按日期列的月份和年份分组

来自分类Dev

Ruby:按年份和月份对日期范围进行分组

来自分类Dev

需要帮助按年份和区分月份对行进行分组

来自分类Dev

nHibernate按年份和月份分组(带计数)

来自分类Dev

按年份和月份对事件进行分组

来自分类Dev

熊猫分组的月份和年份

来自分类Dev

通过按年份和月份名称查询的mySql顺序

来自分类Dev

如何按 ID 和月份分组?

来自分类Dev

Python Pandas分组的月份和年份

来自分类Dev

按日期和/或月份和/或年份检索记录的最有效方法是什么?

来自分类Dev

按年份和月份将Rails中的红宝石阵列分组

来自分类Dev

我需要根据结构为yyyyMMddHHmmss 20170227141500的时间戳按年份和月份分组

来自分类Dev

我需要根据结构为yyyyMMddHHmmss 20170227141500的时间戳按年份和月份分组

来自分类Dev

如何在Excel中按年份然后按月份对列排序进行分组?

来自分类Dev

按年份和月份名称排序

来自分类Dev

如何将Codeigniter活动记录中的“喜欢”分组?

来自分类Dev

通过提供月份和年份获取日期

来自分类Dev

如何计算和记录具有特定月份/年份值的工作表中的行数

来自分类Dev

如何从设定的日期和设定的月份中检索所有记录,但年份是可变的?

来自分类Dev

按年份扩展月份

来自分类Dev

报表-SQL按周数和年份分组

来自分类Dev

按年份和布尔列postgres分组

来自分类Dev

如何按年份和月份将文件分类到“文件夹”中?

来自分类Dev

在php和mysql中从特定月份和年份获取记录

来自分类Dev

按月份名称和年份对大熊猫输出分组

来自分类Dev

将类似的月份和年份分组在列表中

来自分类Dev

PHP选择并按日期(月份和年份)以及用户分组

Related 相关文章

  1. 1

    如何通过Codeigniter活动记录按年份和月份分组?

  2. 2

    mysql按年份分组与按年份和月份分组

  3. 3

    按日期列的月份和年份分组

  4. 4

    Ruby:按年份和月份对日期范围进行分组

  5. 5

    需要帮助按年份和区分月份对行进行分组

  6. 6

    nHibernate按年份和月份分组(带计数)

  7. 7

    按年份和月份对事件进行分组

  8. 8

    熊猫分组的月份和年份

  9. 9

    通过按年份和月份名称查询的mySql顺序

  10. 10

    如何按 ID 和月份分组?

  11. 11

    Python Pandas分组的月份和年份

  12. 12

    按日期和/或月份和/或年份检索记录的最有效方法是什么?

  13. 13

    按年份和月份将Rails中的红宝石阵列分组

  14. 14

    我需要根据结构为yyyyMMddHHmmss 20170227141500的时间戳按年份和月份分组

  15. 15

    我需要根据结构为yyyyMMddHHmmss 20170227141500的时间戳按年份和月份分组

  16. 16

    如何在Excel中按年份然后按月份对列排序进行分组?

  17. 17

    按年份和月份名称排序

  18. 18

    如何将Codeigniter活动记录中的“喜欢”分组?

  19. 19

    通过提供月份和年份获取日期

  20. 20

    如何计算和记录具有特定月份/年份值的工作表中的行数

  21. 21

    如何从设定的日期和设定的月份中检索所有记录,但年份是可变的?

  22. 22

    按年份扩展月份

  23. 23

    报表-SQL按周数和年份分组

  24. 24

    按年份和布尔列postgres分组

  25. 25

    如何按年份和月份将文件分类到“文件夹”中?

  26. 26

    在php和mysql中从特定月份和年份获取记录

  27. 27

    按月份名称和年份对大熊猫输出分组

  28. 28

    将类似的月份和年份分组在列表中

  29. 29

    PHP选择并按日期(月份和年份)以及用户分组

热门标签

归档