Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung und Beispielcode der PHP-Suchabfragefunktion

Detaillierte Einführung und Beispielcode der PHP-Suchabfragefunktion

黄舟
黄舟Original
2018-05-14 15:25:045366Durchsuche

Ich bin heute auf ein Problem gestoßen: Bei Verwendung der Funktion „Suchen“ kann die Abfrage nach Eingabe der Abfragebedingungen nicht durchgeführt werden.
Was ich tue, ist, den Inhalt im Datentabellenpaket auf der Homepage anzuzeigen, aber es gibt eine Bedingung: Der auf der Homepage angezeigte Inhalt muss auch sein: Feldstatus=0, und Daten mit Druck=0 können sein in der Startseitenliste angezeigt.
Auf der Seite gibt es eine „Such“-Funktion. Nach Eingabe der Bedingungen wird die Abfrage anhand der Bedingungen durchgeführt.
Für die allgemeine Suche geben Sie einfach eine Methode index() in der Anzeigeliste der Startseite ein:

$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();
}

Dann schreiben Sie einfach eine _search():
wie zum Beispiel:

protected function _search(){
$map = array ();
$post_data = I ( 'post.' );
if ($post_data ['packageid'] != '') {
$map ['packageid'] = array (
'like',
'%' . $post_data ['packageid'] . '%' 
);
}
return $map;
}

Zuletzt rufen Sie diese Suchmethode im Menü „Suchen“ der Einstellungen auf.
Wenn ich dies jedoch mache, muss ich bei der Suche auch darauf achten, in den Daten mit Feldstatus=0 und Druck=0 zu suchen.
Ich habe darüber nachgedacht, wo ich diese Einschränkung anbringen soll. Nach verschiedenen Versuchen und Nachfragen habe ich es herausgefunden. Fügen Sie die Einschränkungsbedingungen einfach direkt zur SQL-Anweisung hinzu (wie unten rot dargestellt). (Als ich es selbst ausprobierte, fügte ich immer wieder Bedingungen im blauen Bereich unten hinzu und scheiterte jedes Mal!)

$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();
}

Das Obige ist die detaillierte Einführung der PHP-Suchabfragefunktion und des Inhalts des Beispielcodes, mehr Für verwandte Inhalte achten Sie bitte auf die chinesische PHP-Website (www.php.cn)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn