php - codeigniter group by 不起作用

标签 php codeigniter

我正在尝试制作存储在数据库中的事件的时间表:

db table

我已在我的模型中使用此代码来获取数据

    $query = $this->db->select('*');
    $query = $this->db->group_by('data'); 
    $query = $this->db->order_by('data', 'desc'); 
    $query = $this->db->get('istorija');
    return $query->result();

然后输出代码我查看

        <?php
        foreach($istorija as $info) {
        ?>
        <li class="time-label">
            <span class="bg-red"><?php echo ucfirst(strftime("%B %e, %Y", $info->data)); ?></span>
        </li>

        <li>
            <i class="fa fa-<?php echo $info->ikona; ?> bg-<?php echo $info->fonas; ?>"></i>
            <div class="timeline-item">
                <span class="time"><i class="fa fa-clock-o"></i> <?php echo strftime("%H:%M", $info->data); ?></span>
                <h3 class="timeline-header"><a href="#"><?php echo $info->pavadinimas; ?></a></h3>
                <div class="timeline-body">
                    <?php echo nl2br($info->tekstas); ?>
                </div>
            </div>
        </li>
        <?php
        }
        ?>

我希望它能够按日期和日期内的事件呈现 View ,即

[date 1]
  - event 1
  - event 2
[date 2]
  - event 1

但是显示是这样的

event list

怎样才能让它正确显示?

最佳答案

正如您刚才所演示的那样,Group By 工作得非常完美。如果按没有重复数据的列进行分组,则没有任何内容可分组。您的所有数据记录都是不同的。

鉴于您没有在数据库中使用日期字段,而是出于某种原因存储 php 时间戳,这似乎有点奇怪,如果您有两个足够相同的时间戳以进行分组,我会感到惊讶有任何影响。

鉴于您所显示的数据,您不需要分组依据,实际上,即使使用日期字段,它也不会按照您预期的方式工作。

收集数据并按时间戳升序排序。然后在您的显示中,只需为您显示的当前日期设置一个 temp_date 变量,即 2016 年 9 月 6 日。然后在循环的下一次迭代中,检查日期是否已更改,如果已更改,则显示新的日期date,设置临时变量并继续循环。像这样的东西:

<?php
$temp_date = '';
foreach($istorija as $info) 
{ 
    $this_date = ucfirst(strftime("%B %e, %Y", $info->data);
    if ($this_date != $temp_date) 
    {
        $temp_date = $this_date;

        // output your date header
        ....
    }

    // output your date listing
    ....
}
?>

希望有帮助,

保罗。

关于php - codeigniter group by 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39356063/

相关文章:

php - Laravel 尝试将 HTML 保存在数据库中

php - Codeigniter 购物车 - 在披萨上添加番茄酱

php - 干预图片圆角上传

php - 代码点火器 : getting data between two dates in mysql using php

codeigniter - 为什么 Flashdata 值在重定向到 Codeigniter 中的另一个函数时变为空值?

php - CodeIgniter 从 View 中的 Controller 检索特定数据

php - 从两个 Mysql 表中获取信息

php - 获取 Mysql 中两个日期之间所有周的开始和结束日期的问题

PHP array_merge 不工作

php - 查询或 PHP 中 mysql 的列总计?