codeigniter 从表中获取每月数据

vi4fp9gy  于 2022-12-07  发布在  其他
关注(0)|答案(2)|浏览(125)

我有这样表:

ID     Date             Content      
1   2016-07-29   content for july 29th
2   2016-07-30   content for july 30th
3   2016-08-01   content for august 1st
4   2016-08-02   content for august 2nd

我想要这样的结果:
2016年7月归档
2016年7月29日-7月29日的内容
2016年7月30日-7月30日的内容
供应2016年08月归档
2016年8月01日-8月1日的内容
2016年8月02日-8月2日的内容
我创建了手动foreach循环来显示数据,如下所示:
我的模特:

public function get_july16(){
$this->db->select('*');
$this->db->from('table');
$this->db->where('month(date)','07');
$july16 = $this->db->get();
return $july16->result();
}
public function get_aug16(){
$this->db->select('*');
$this->db->from('table');
$this->db->where('month(date)','08');
$aug16 = $this->db->get();
return $aug16->result();
}

我观点:

<h3>July 2016</h3>
<?php foreach($july16 as $e): ?>
<h4><?php echo $e->date;?></h4>
<div><?php echo $e->content;?></div>
<?php endforeach; ?>

<h3>August 2016</h3>
<?php foreach($aug16 as $e): ?>
<h4><?php echo $e->date;?></h4>
<div><?php echo $e->content;?></div>
<?php endforeach; ?>

我想知道是否有最简单的方法来一次完成foreach循环,而不是一个一个地创建。

rqcrx0a6

rqcrx0a61#

Wolfgang1983是正确的。
但这里有一个快速的解决方案来解决你的问题。(未验证)
(You可以使用<?=代替<?php echo

$this->db->select('*');
$this->db->from('table');
$datas = $this->db->get()->result();

$months = [];
foreach ($datas as $d) {
    $date = strtotime($d->date);
    $actualMonth = date("F Y", $date); // get July 2016, August 2016...
    $months[$actualMonth][$date] = $d; // Insert data into board
}

// loop into all months
foreach ($months as $month => $days) {
    echo "<h3>$month</h3>"; // Display month
    foreach ($days as $day) {
        echo "<h4>".$day->date."</h4>";
        echo "<div>".$day->content."</div>";
    }
}
a9wyjsp7

a9wyjsp72#

Callmemath有权限,你也可以把生成日期移到SQL查询中,做这样的事情(没有经过测试):

$this->db->select('date, content, CONCAT(MONTHNAME(date), " ", YEAR(date)) as humanDate');
$this->db->from('table');
$this->db->order_by("date", "asc");
$all = $this->db->get()->result();

然后您可以创建一个foreach,在foreach中检查humanDate是否已更改,并创建新的头文件<h3>

相关问题