我必须搜索具有多个输入值的多个条件的表,并且仅当查询不为空时,输入值才应包含在查询中。
php接收像
这样的变量$username=$_GET["username"];
$uniqueid=$_GET["uniqueid"];
$tag=$_GET["tag"];
$location=$_GET["location"];
变量可能为null或带有一些字符串,我想避免查询中的变量为null。
假设没有变量为null,那么我的查询应该是
select NAME from TABLE_NAME where USERNAME=$username AND INIQUEID=$uniqueid AND TAG=$tag AND LOCATION=$location;
in-case $username
为null
select NAME from TABLE_NAME where INIQUEID=$uniqueid AND TAG=$tag AND LOCATION=$location;
所以我需要为每个条件创建不同的查询,或者是否存在任何共存的方式?
答案 0 :(得分:2)
检查一下,
<?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' ";
}
?>