Maison >programmation quotidienne >connaissance de MySQL >Implémentation de la fonction de recherche avancée PHP et de l'épissage dynamique de SQL

Implémentation de la fonction de recherche avancée PHP et de l'épissage dynamique de SQL

慕斯
慕斯avant
2021-06-30 10:02:407069parcourir

Nous avons tellement appris sur PHP, mais je ne sais pas si vous maîtrisez parfaitement l'implémentation de la fonction de recherche avancée et de l'épissage dynamique de PHP de SQL. Oui, sinon, suivez cet article pour continuer à apprendre !

Implémentation de la fonction de recherche avancée PHP et de l'épissage dynamique de SQL. Les fonctions complétées incluent : une requête basée sur une seule condition ou une requête complète basée sur plusieurs conditions. La difficulté réside dans l'épissage dynamique de SQL.

Effet terminé

Écran global

Implémentation de la fonction de recherche avancée PHP et de lépissage dynamique de SQL

Requête floue basée sur le nom seul

Implémentation de la fonction de recherche avancée PHP et de lépissage dynamique de SQL

Requête basée sur le sexe seul

Implémentation de la fonction de recherche avancée PHP et de lépissage dynamique de SQL

Requête complète basée sur plusieurs conditions

Implémentation de la fonction de recherche avancée PHP et de lépissage dynamique de SQL

Code de la page d'accueil

<form action="" method="post">
<labal>姓名:</labal> <input style="width:105px" type="text" name="search_name" id="search_name" placeholder="姓名">
&nbsp
<labal>性别:</labal>
<input type="radio" name="search_sex" id="man" value="0">男
<input type="radio" name="search_sex" id="women" value="1">女
&nbsp
<labal>年龄:</labal><input style="width:105px" type="text" name="search_age" id="add_age"placeholder="年龄">
&nbsp
<labal>邮箱:</labal><input style="width:150px" type="text" name="search_email" id="search_email" placeholder="邮箱">
<input id="b" name="submit" style="width:60px" type="submit" value="检索">
</form>

Code de traitement backend

//接收用户输入的数据$name = $sex = $age = $email = "";if (isset($_POST[&#39;submit&#39;])) {
    if (isset($_POST[&#39;search_name&#39;])) {
    	$name = $_POST[&#39;search_name&#39;];
    }
    if (isset($_POST[&#39;search_sex&#39;])) {
    	$sex = $_POST[&#39;search_sex&#39;];
    }
    if (isset($_POST[&#39;search_age&#39;])) {
    	$age = $_POST[&#39;search_age&#39;];
    }
    if (isset($_POST[&#39;search_email&#39;])) {
    	$email = $_POST[&#39;search_email&#39;];
    }//执行检索sql$search_sql = $myTest->searchData($name,$sex,$age,$email);$result = $myTest->sqlRun($search_sql);

Épissage dynamique sql

public function searchData($name,$sex,$age,$email){

		switch ($name) {
			//未输入姓名
			case null:
				$name_info=&#39;&#39;;
				break;
			     //Implémentation de la fonction de recherche avancée PHP et de lépissage dynamique de SQL
			    default:
				$name_info=" and name LIKE &#39;%".$name."%&#39;";
				break;
		}
		switch ($sex) {
			//未输入性别
			case null:
				$sex_info=&#39;&#39;;
				break;
			//根据性别准确查询
			default:
				$sex_info=&#39; and sex=&#39;.$sex;
				break;
		}
		switch ($age) {
			//未输入年龄
			case null:
				$age_info=&#39;&#39;;
				break;
			//根据年龄准确查询
			default:
				$age_info=&#39; and age=&#39;.$age;
				break;
		}
		switch ($email) {
			//未输入邮箱
			case null:
				$email_info=&#39;&#39;;
				break;
			//根据邮箱模糊查询
			default:
				$email_info=" and email LIKE &#39;%".$email."%&#39;";
				break;
		}$search_sql=&#39;SELECT * FROM users WHERE 1=1&#39;.$name_info.$sex_info.$age_info.$email_info;&#39;&#39;;return $search_sql;
	}

Recommandations d'apprentissage associées : tutoriel mysql(vidéo)

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer