我在WHERE子句中查询了php变量。但如果变量未分配,它不会返回结果。
$customer = isset($_REQUEST['customer'])?$_REQUEST['customer']:'';
$territory = isset($_REQUEST['territory'])?$_REQUEST['territory']:'';
$status = isset($_REQUEST['status'])?$_REQUEST['status']:'';
$getOrder = "SELECT * FROM order WHERE Customer = '$customer' AND Territory = '$territory' AND Status = '$status'";
$getOrderQuery = mysql_query($getOrder);
while($iRow = mysql_fetch_array($getOrderQuery))
{ .... }
如果分配了三个变量,则返回结果。我需要做什么才能使查询返回结果,即使变量是空的?
答案 0 :(得分:2)
我无法评论你的帖子,但我可以留下答案。
尝试echo $getOrder;
确保变量符合您的期望,然后使用MySQL客户端或phpMyAdmin直接在数据库上执行查询。
此外,您应该转义变量,因为您对SQL注入攻击很有价值。我喜欢使用PDO API。
您也可以根据以下评论尝试此操作
SELECT * FROM order
WHERE IFNULL(Customer, '') IN('$customer', '') AND IFNULL(Territory,'') IN('$territory','') AND IFNULL(Status, '') IN('$status','')";