Home  >  Article  >  Daily Programming  >  Implementation of PHP advanced search function and dynamic splicing of sql

Implementation of PHP advanced search function and dynamic splicing of sql

慕斯
慕斯forward
2021-06-30 10:02:406858browse

We have learned so much about PHP, but I don’t know if you have fully mastered the implementation of PHP’s advanced search function and dynamic splicing of sql. Yes, if not, then follow this article to continue learning!

Implementation of PHP's advanced search function and dynamic splicing of sql. The completed functions include: query based on one condition alone, or comprehensive query based on multiple conditions. The difficulty lies in dynamically splicing SQL.

Completed effect

General picture

Implementation of PHP advanced search function and dynamic splicing of sql

##Fuzzy query based on name alone

Implementation of PHP advanced search function and dynamic splicing of sql

Query based on gender alone

Implementation of PHP advanced search function and dynamic splicing of sql

Comprehensive query based on multiple conditions

Implementation of PHP advanced search function and dynamic splicing of sql

Front page code

<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>

Background processing code

//接收用户输入的数据$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);

dynamic splicing sql

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

		switch ($name) {
			//未输入姓名
			case null:
				$name_info=&#39;&#39;;
				break;
			     //Implementation of PHP advanced search function and dynamic splicing of 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;
	}

Relevant learning recommendations:

mysql tutorial(video)

The above is the detailed content of Implementation of PHP advanced search function and dynamic splicing of sql. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete