我必须搜索具有多个输入值的多个条件的表,并且只有当输入值不为空时才应该包含在查询中。
php接收像
这样的变量$username=$_GET["username"];
$uniqueid=$_GET["uniqueid"];
$tag=$_GET["tag"];
$location=$_GET["location"];
变量可能是空的或一些字符串,我想避免变量从查询是空的。
假设没有变量为空,那么我的查询应该是
select NAME from TABLE_NAME where USERNAME=$username AND INIQUEID=$uniqueid AND TAG=$tag AND LOCATION=$location;
如果$username
为空,则
select NAME from TABLE_NAME where INIQUEID=$uniqueid AND TAG=$tag AND LOCATION=$location;
所以我需要为每个条件创建不同的查询,或者有任何方法可以一起存在吗?
检查这个,
<?php
$query = "SELECT NAME FROM TABLE_NAME WHERE ";
$flag = 0;
if(!empty($username)){
$query .= " USERNAME='$username' ";
$flag = 1;
}
if(!empty($uniqueid)){
if($flag == 1){
$query .= " AND ";
}
$query .= " INIQUEID='$uniqueid' ";
$flag = 1;
}
if(!empty($tag)){
if($flag == 1){
$query .= " AND ";
}
$query .= " TAG='$tag' ";
$flag = 1;
}
if(!empty($location)){
if($flag == 1){
$query .= " AND ";
}
$query .= " LOCATION='$location' ";
}
?>