我将一些值传递给一个函数,然后想创建一个 SQL 查询来在数据库中搜索这些值。
输入是下拉框,这意味着输入可以是我想创建为通配符的 ALL 或 *。
问题是你不能这样做:
$result = mysql_query("SELECT * FROM table WHERE something1='$something1' AND something2='*'") or die(mysql_error());
我已经开始,但无法弄清楚使其工作的逻辑循环。这是我到目前为止所拥有的:
public function search($something1, $something2, $something3, $something4, $something5) {
//create query
$query = "SELECT * FROM users";
if ($something1== null and $something2== null and $something3== null and $something4== null and $something5== null) {
//search all users
break
} else {
//append where
$query = $query . " WHERE ";
if ($something1!= null) {
$query = $query . "something1='$something1'"
}
if ($something2!= null) {
$query = $query . "something2='$something2'"
}
if ($something3!= null) {
$query = $query . "something3='$something3'"
}
if ($something4!= null) {
$query = $query . "something4='$something4'"
}
if ($something5!= null) {
$query = $query . "something5='$something5'"
}
$uuid = uniqid('', true);
$result = mysql_query($query) or die(mysql_error());
}
这样做的问题是它只能按顺序工作。如果有人首先输入例如 something3,那么它不会在正确的位置添加 AND。
非常感谢任何帮助。