如何在codeigniter中按日期降序排序

时间:2016-08-10 12:14:04

标签: php jquery codeigniter datatables

我想显示时间戳降序,但我的查询不起作用,这是我的代码:

 $this->db->order_by("DATE(field_name)", "DESC");

我得到了这个,但是当我在jquery数据表中显示时,它变成了升序,如何解决这个问题?

5 个答案:

答案 0 :(得分:1)

您需要在查询中删除DATE。

请尝试以下

$this->db->order_by("field_name", "DESC");

此处,filed_name =您的表字段值(在这种情况下为时间戳。)

此外,如果它不起作用,请提供您的错误。

答案 1 :(得分:1)

在jQuery Datatable中,您有一个配置选项可以对表进行排序,默认情况下是第一个。如果您想保留特定的数据顺序,请确保它位置正确。

$('#myDataTable').DataTable({
    order: [[0, 'desc']],
});

第一个参数0是要排序的列的索引(此处为第一列,第二列为1,等等。)

或者,您可以禁用数据表排序,将空数组传递给order选项:

$('#myDataTable').DataTable({
    order: [],
});

答案 2 :(得分:0)

试试这段代码:

$this->db->order_by("field_name", "DESC");

答案 3 :(得分:0)

这里的问题是Jquery Datatable,默认情况下按表的第一列排序。

  

如果启用了排序(排序),则DataTables将在初始化期间执行第一次传递顺序。使用此参数,您可以定义执行订单的列和订购方向。顺序必须是一个数组数组,每个内部数组由两个元素组成:

Datatables Order

上查看更多内容

这里有两个选项,所有这些都在JS代码中,不用担心PHP代码。

  1. 数据表中的订单:
  2. 像这样:

    var key_attributes = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('key'),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    });
    key_attributes.initialize();
    
      $('.attr-row').last().find('.taginput-key').typeahead({
        hint: true,
        highlight: true,
        minLength: 0
      }, {
        name: 'key',
        display: 'key',
        source: key_attributes.ttAdapter()
    });
    
    1. 在初始加载期间从Datatables中删除订单功能
    2. 这样:

      $("#table").dataTable({
          "order":[[positionofcolumtoorder,'desc']]
      });
      

答案 4 :(得分:0)

$this->db->order_by("field_name", "DESC");