Maison > Article > développement back-end > Comment obtenir un effet de recherche en php
Comment obtenir un effet de recherche en PHP : 1. Initialisez les conditions de requête ; 2. Appelez la méthode de requête ; 3. Calculez le nombre d'éléments de données affichés sur la page 4. Dans le menu "Recherche" des paramètres, appelez "fonction protégée" _search(){ ..}" méthode de recherche.
L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.4, ordinateur Dell G3.
Comment obtenir un effet de recherche en php ?
Implémentation de la fonction de requête de recherche PHP :
J'ai rencontré un problème aujourd'hui : lors de l'exécution de la fonction "recherche", la requête ne peut pas être effectuée après avoir saisi les conditions de requête.
Ce que je fais, c'est afficher le contenu du package de tables de données sur la page d'accueil, mais il y a une condition. Le contenu affiché sur la page d'accueil doit également être : field status=0, et les données avec printing=0 peuvent être affichées. dans la liste de la page d'accueil.
Il y a une fonction "recherche" sur la page Après avoir saisi les conditions, la requête sera effectuée en fonction des conditions.
Pour une recherche générale, il suffit d'en donner un dans la méthode de liste d'affichage de la page d'accueil index() :
$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(); }
Ensuite, il suffit d'écrire un _search():
tel que :
protected function _search(){ $map = array (); $post_data = I ( 'post.' ); if ($post_data ['packageid'] != '') { $map ['packageid'] = array ( 'like', '%' . $post_data ['packageid'] . '%' ); } return $map; }
Enfin, dans le menu "Recherche" du settings , appelez cette méthode de recherche.
Cependant, lorsque je fais cela, lors de la recherche, je dois également m'assurer de rechercher dans les données avec le champ status=0 et l'impression=0.
J'ai réfléchi à l'endroit où mettre cette restriction. Après diverses tentatives et enquêtes, je l'ai découvert. Des restrictions peuvent être ajoutées directement à l'instruction SQL (comme indiqué en rouge ci-dessous). (Quand je l'ai essayé moi-même, j'ai continué à ajouter des conditions dans la zone bleue ci-dessous, et j'ai échoué à chaque fois !)
$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(); }
Apprentissage recommandé : "Tutoriel vidéo PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!