我有一个包含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());
任何想法上面的脚本应该是什么?基本上如果该字段没有完成,它不需要搜索它?
答案 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注入攻击。