Codeigniter count_all_results然后获取返回错误号1066

时间:2018-07-28 13:13:19

标签: php mysql codeigniter codeigniter-3 codeigniter-query-builder

我想通过在查询中使用$this->db->count_all_results()计算所有结果,然后获得查询结果$this->db->get,而无需重置任何字段值。我遵循Limiting or Counting Results上的用户指南

但是,此方法还重置您可能传递给select()的所有字段值。如果需要保留它们,可以将FALSE作为第二个参数传递:

我已将FALSE参数传递给函数,但出现数据库错误:

  

错误号:1066不是唯一的表/别名:'my_table'

这是我尝试过的代码

$this->db->select('title', 'content', 'date');
$this->db->like('title', 'Post');
$this->db->order_by('title', 'DESC');

$records = $this->db->count_all_results('my_table', FALSE);
$query = $this->db->get('my_table', 20);

谢谢

2 个答案:

答案 0 :(得分:0)

为什么不只像这样计算查询结果集中的行:

$this->db->select('title', 'content', 'date');
$this->db->like('title', 'Post');
$this->db->order_by('title', 'DESC');

$query = $this->db->get('my_table');

$records = $query->num_rows();

答案 1 :(得分:0)

希望这对您有帮助:

my_table中为count_all_results命名,如下所示:

$this->db->select('p.title, p.content, p.date');
$this->db->like('p.title', 'title');
$this->db->order_by('p.date', 'DESC');

$data['count'] = $this->db->count_all_results('my_table p', FALSE);
$data['records'] = $this->db->get('my_table')->result();
print_r($data);

了解更多:http://www.mysqltutorial.org/mysql-alias/