>백엔드 개발 >PHP 튜토리얼 >PHP 검색(쿼리) 기능

PHP 검색(쿼리) 기능

高洛峰
高洛峰원래의
2016-11-30 15:26:231517검색

오늘 문제가 발생했습니다. '검색' 기능을 사용할 때 쿼리 조건을 입력한 후 쿼리를 수행할 수 없습니다.

제가 하는 일은 데이터 테이블 패키지의 내용을 홈페이지에 표시하는 것인데, 홈페이지에 표시되는 내용도 필드 상태=0, 인쇄=0인 데이터여야 합니다. 홈페이지 목록에 표시될 수 있습니다.

페이지에 '검색' 기능이 있습니다. 조건을 입력하면 해당 조건에 따라 검색이 진행됩니다.

일반 검색의 경우 홈페이지 표시 목록 메소드 index()에 하나만 지정하면 됩니다.

$map=array();//쿼리 조건 초기화

$map = $this->_search();//쿼리 메서드 호출

$total = $this->Model->where ($map)->count() //이것은 주로

if ($total == 0) {
$_list = '';
} else {
$_list = $this->where ($map) ->limit( $post_data ['first'] . ',' . $post_data ['rows'] )->select();
}

그런 다음 _search()를 작성하세요. :

예:

보호 함수 _search(){

$map = array ();
$post_data = I ( 'post.' );

if ($post_data ['패키지 ID'] != '') {
$map ['패키지 ID'] = array (
'like',
'%' . $post_data [ 'packageid'] .'%'
);
}

return $map;

}

마지막으로 "Search"에서 이 검색 메서드를 호출합니다. " 설정 메뉴입니다.

그러나 이렇게 할 때 검색하는 동안 필드 상태=0 및 인쇄=0인 데이터에서도 검색해야 합니다.

이 제한을 어디에 추가할지 고민하고 있습니다. 다양한 시도와 문의 끝에 알게 되었습니다. 아래 빨간색으로 표시된 것처럼 제한 조건을 SQL 문에 직접 추가하면 됩니다. (직접 시도해 보니 아래 파란색 부분에 조건을 계속 추가했는데 매번 실패했습니다!)

$map=array();
$map=$this->_search() ;

$total = $this->모델->where ($map)->where(array('status' =>0,'print_status'=>0))-> ; count();

if ($total == 0) {
$_list = '';
} else {
$_list = $this->Model-> where ($map)->where(array('status' =>0,'print_status'=>0))->limit( $post_data ['first'] . ',' . $post_data [' Rows '] )->select();
}

공유하고 싶습니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.