Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiel für die PHP-Suchabfragefunktion „implementierung_php“.

Beispiel für die PHP-Suchabfragefunktion „implementierung_php“.

WBOY
WBOYOriginal
2016-12-05 13:28:271190Durchsuche

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 „Suchen“-Funktion. Nach Eingabe der Bedingungen wird die Abfrage anhand der Bedingungen durchgeführt.

Für die allgemeine Suche geben Sie einfach eine Methode index() auf der Homepage-Anzeigeliste 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 ein _search():

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 ausprobiert habe, habe ich immer wieder Bedingungen im blauen Bereich unten hinzugefügt und bin jedes Mal gescheitert!)

$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 vom Herausgeber eingeführte PHP-Suchabfragefunktion. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte mich auch bei allen für Ihre Unterstützung der Script House-Website bedanken!

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