私たちは PHP についてたくさんのことを学びました。PHP の高度な検索機能と動的スプライシング SQL の実装を完全にマスターしたかどうかはわかりません。まだマスターしていない場合は、この記事に従って学習を続けてください。
PHPの高度な検索機能とSQLの動的スプライシングを実現。完成した機能としては、1つの条件のみによるクエリや、複数の条件による包括的なクエリなどがありますが、難しいのはSQLの動的結合です。
完成したエフェクト
一般画面
名前のみに基づくあいまいクエリ
性別のみによるクエリ
複数の条件に基づいた包括的なクエリ
フロントページのコード
<form action="" method="post">
<labal>姓名:</labal> <input style="width:105px" type="text" name="search_name" id="search_name" placeholder="姓名">
 
<labal>性别:</labal>
<input type="radio" name="search_sex" id="man" value="0">男
<input type="radio" name="search_sex" id="women" value="1">女
 
<labal>年龄:</labal><input style="width:105px" type="text" name="search_age" id="add_age"placeholder="年龄">
 
<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>
バックグラウンド処理コード
//接收用户输入的数据$name = $sex = $age = $email = "";if (isset($_POST['submit'])) {
if (isset($_POST['search_name'])) {
$name = $_POST['search_name'];
}
if (isset($_POST['search_sex'])) {
$sex = $_POST['search_sex'];
}
if (isset($_POST['search_age'])) {
$age = $_POST['search_age'];
}
if (isset($_POST['search_email'])) {
$email = $_POST['search_email'];
}//执行检索sql$search_sql = $myTest->searchData($name,$sex,$age,$email);$result = $myTest->sqlRun($search_sql);
ダイナミックスプライシングSQL
public function searchData($name,$sex,$age,$email){
switch ($name) {
//未输入姓名
case null:
$name_info='';
break;
//根据姓名模糊查询
default:
$name_info=" and name LIKE '%".$name."%'";
break;
}
switch ($sex) {
//未输入性别
case null:
$sex_info='';
break;
//根据性别准确查询
default:
$sex_info=' and sex='.$sex;
break;
}
switch ($age) {
//未输入年龄
case null:
$age_info='';
break;
//根据年龄准确查询
default:
$age_info=' and age='.$age;
break;
}
switch ($email) {
//未输入邮箱
case null:
$email_info='';
break;
//根据邮箱模糊查询
default:
$email_info=" and email LIKE '%".$email."%'";
break;
}$search_sql='SELECT * FROM users WHERE 1=1'.$name_info.$sex_info.$age_info.$email_info;'';return $search_sql;
}