Maison > développement back-end > Problème PHP > Comment obtenir un effet de recherche en php

Comment obtenir un effet de recherche en php

藏色散人
Libérer: 2023-03-14 12:44:01
original
4169 Les gens l'ont consulté

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.

Comment obtenir un effet de recherche en php

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();
}
Copier après la connexion

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;
}
Copier après la connexion

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();
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal