ホームページ >バックエンド開発 >PHPチュートリアル >PHP検索クエリ関数の詳細な紹介とサンプルコード
本日、「検索」機能を使用する際、クエリ条件を入力してもクエリが実行できないという問題が発生しました。
私がやっていることは、データテーブルパッケージの内容をホームページに表示することですが、ホームページに表示される内容もフィールドステータス=0でなければならず、印刷=0のデータも表示できるという条件があります。ホームページのリスト。
ページ内に条件を入力すると、その条件に基づいてクエリが実行されます。
一般的な検索の場合は、ホームページの表示リストメソッドのindex()に1つを指定してください:
$map=array();//初始化查询条件 $map=$this->_search();//调用查询方法 $total = $this->Model->where ($map)->count(); //这个主要是用来计算页面显示数据条数的 if ($total == 0) { $_list = ''; } else { $_list = $this->Model->where ($map)->limit( $post_data ['first'] . ',' . $post_data ['rows'] )->select(); }
次に、_search():
を記述するだけです。例:
protected function _search(){ $map = array (); $post_data = I ( 'post.' ); if ($post_data ['packageid'] != '') { $map ['packageid'] = array ( 'like', '%' . $post_data ['packageid'] . '%' ); } return $map; }
最後に、設定の「検索」メニューで、この検索メソッドを呼び出します。
ただし、これを行う場合、検索中に、フィールド status=0 および printing=0 でデータを検索する必要もあります。
この制限をどこに追加するかを検討中です。いろいろ試したり調べたりした結果、分かりました。制限条件を SQL ステートメントに直接追加するだけです (以下の赤色で示されています)。 (私が実際に試してみたところ、下の青い部分に条件を追加し続けて毎回失敗しました!)
$map=array(); $map=$this->_search(); $total = $this->Model->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(); }
以上がPHPの検索クエリ関数の詳細な紹介とサンプルコードの内容です。内容については、PHP 中国語 Web サイト (www.php.cn) にご注意ください。