如何在Codeigniter中获取db查询后的行数?

时间:2013-11-28 21:29:02

标签: php mysql codeigniter

我设法获取返回的数据行以进行特定搜索,但我无法获得已找到的行数。这是我的代码

我的控制器

function searchdata(){
    $result = $this->posts->search($_POST['searchterm']);
    $data['posts']= $result['rows'];
    $data['num_results']= $result['num_rows']; // num_rows is the number of rows returned from a search 

    $this-> load-> view('results_index',$data);
}

我的模特

function get_search($keyword)
{
$q = $this-> db-> select('*')-> from ('blog');
$q= $this->db->like('title',$keyword);
$q= $this->db->or_like('description',$keyword);

$results['rows']= $q-> get()-> result();
//$results['num_rows']= $q-> num_rows(); <--- this doesn't work, invalid method, commented out
return $results;

}

如果有帮助,这https://www.codeigniter.com/user_guide/database/results.html可能会对您有所帮助。我以为它会

谢谢你。

1 个答案:

答案 0 :(得分:2)

问题是你试图在非CI-DB对象上执行num_rows,你在数组上执行num_rows并且不存在,你需要在返回this-&gt;的对象上调用num_rows。 DB-&GT;得到()

我会改变它:

function get_search($keyword)
{
$this-> db-> select('*')-> from ('blog');
$this->db->like('title',$keyword);
$this->db->or_like('description',$keyword);

$q = $this->db->get();

$results['num_rows']= $q->num_rows(); 
$results['rows'] = $q->result();
return $results;

}