Codeigniter получить номер строки из поискового запроса - PullRequest
1 голос
/ 01 ноября 2011

У меня в контроллере есть запрос, который ищет термин / ключевое слово в 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;
    }

}

Я хотел бы знать, как я могу вернуть количество строк, найденных в результатах поиска, в контроллер.Затем я буду использовать количество строк, найденных для нумерации страниц.

Как я могу получить количество строк в контроллере ????

Ответы [ 2 ]

1 голос
/ 01 ноября 2011

Вы можете просто использовать

$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() );
1 голос
/ 01 ноября 2011

Вы можете добавить функцию в вашей модели, которая возвращает счетчик и вызывает его.

Пример:

// model
public function getAffectedRows()
{
    return $this->db->affected_rows();
}

...

// controller
$this->Search_model->doQuery();
$numRows = $this->Search_model->getAffectedRows();
...