Maison >développement back-end >tutoriel php >Implémentation de la fonction de requête de recherche PHP
Cet article présente principalement le code d'implémentation de la fonction de requête de recherche PHP. Il est très bon et a une valeur de référence. Les amis qui en ont besoin peuvent s'y référer
J'ai rencontré un problème aujourd'hui : lors de la "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 data with printing=0. peut être affiché 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, indiquez-en simplement 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, écrivez simplement un _search() :
Par exemple :
protected function _search(){ $map = array (); $post_data = I ( 'post.' ); if ($post_data ['packageid'] != '') { $map ['packageid'] = array ( 'like', '%' . $post_data ['packageid'] . '%' ); } return $map; }
Enfin, appelez cette méthode de recherche dans le menu "Recherche" des paramètres.
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ù ajouter 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 les zones bleues 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(); }
Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.
Recommandations associées :
Comment implémenter l'ajout et le retour à la ligne dans file_put_contents en PHP
php PDO implémente la méthode permettant de juger si la connexion est disponible
Méthode PHP permettant de trier un tableau associatif bidimensionnel selon l'un des les champs
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!