高级搜索PHP

时间:2016-01-25 21:12:19

标签: php mysql

我有一个包含4个字段的高级搜索,只有一个name_first是强制性的

搜索有很多变化,因为其他字段不是必需的,所以我需要一个只选择已填充字段的select语句,但有很多变化

我已经尝试了以下脚本,但它没有显示正确的信息(我认为这是完全错误的?!)

$name_first=$_GET["name_first"];
$status=$_GET["status"];
$type=$_GET["type"];
$manstaff=$_GET["manstaff"];

$result401=mysql_query("SELECT * FROM `hr_employees` WHERE 
    (name_first LIKE '$name_first%') 
            AND 
    (status LIKE '$status%') 
            AND 
    (manages_staff LIKE '$manstaff%');")or die('Error' . mysql_error());

任何想法上面的脚本应该是什么?基本上如果该字段没有完成,它不需要搜索它?

1 个答案:

答案 0 :(得分:0)

首先使用所需条件

定义SQL
$sql = "SELECT * FROM `hr_employees` WHERE (name_first LIKE '$name_first%')";

然后添加可选标准...可选

if ($status) {
    $sql .= " AND (status LIKE '$status%') ";
}

if ($manstaff) {
    $sql .= " AND (manages_staff LIKE '$manstaff%')";
}
$result401=mysql_query($sql) or die ('Error' . mysql_error());

顺便提一下,请考虑更新代码以避免使用已弃用的mysql函数,并记住将这些变量连接到SQL中会使您的代码容易受到SQL注入攻击。