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();//Abfragebedingungen initialisieren
$map=$this->_search();//Rufen Sie die Abfragemethode auf
$total = $this->Model->where ($map)->count(); //Dies wird hauptsächlich zur Berechnung der Anzahl der auf der Seite angezeigten Datenelemente verwendet
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:
geschützte Funktion _search(){
$map = array ();
$post_data = I ( 'post.' );
if ($post_data ['packageid'] != '') {
$map ['packageid'] = array (
'like',
'%' . $post_data ['packageid '] . '%'
);
}
$map zurückgeben;
}
Zuletzt rufen Sie diese Suchmethode im Einstellungsmenü „Suchen“ 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();
}
Ich möchte es gerne mit Ihnen teilen.
Anfänger lernen, bitte geben Sie uns Ihre Kommentare und Ratschläge.