我设法获取返回的数据行以进行特定搜索,但我无法获得已找到的行数。这是我的代码
我的控制器
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可能会对您有所帮助。我以为它会
谢谢你。
答案 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;
}