Codeigniter从搜索查询中获取行数



我有一个查询在我的控制器搜索在url中的术语/关键字。

示例/search/keyword

然后通过我的控制器执行搜索:

   $viewdata['search_results'] = 
$this->Search_model->search(strtolower($this->uri->segment(2)),$limit,$offset);

然后我检查数据库从我的模型,像这样:

    function search($searchquery, $limit, $offset) {
        $this->db->from('content');
        $this->db->like('title', $searchquery);
        $this->db->or_like('content', $searchquery);
        $query = $this->db->limit($limit, $offset)->get();
        $results = Array();
        foreach ($query->result() as $row) {

            $results[] = Array(
                'title' => '<a href="' . base_url() . $row->anchor_url . ' ">' . strip_tags($row->title) . '</a>',
                'link' =>  base_url() . $row->anchor_url,
                'text' => str_ireplace($searchquery, '<b>' . $searchquery . '</b>', strip_tags(neatest_trim($row->content,220,$searchquery,120,120)))
            );
        }
        return $results;
    }
}

我想知道如何将搜索结果中发现的行数返回给控制器。然后,我将使用找到的行数进行分页。

如何将行数输入控制器????

您可以在模型中添加一个返回计数的函数并调用它。

的例子:

// model
public function getAffectedRows()
{
    return $this->db->affected_rows();
}
...
// controller
$this->Search_model->doQuery();
$numRows = $this->Search_model->getAffectedRows();

你可以直接使用

$viewdata['search_results'] = 
$this->Search_model->search(strtolower($this->uri->segment(2)),$limit,$offset);
$viewdata['search_result_count'] = count( $viewdata['search_results'] );

或者您可以从模型返回一个包含计数的结构化数组。就像

return array( 'results' => $result, 'num_results' => $this->db->num_rows() );

相关内容

  • 没有找到相关文章

最新更新