我有一些html,允许用户使用2个条件进行搜索:名称和费用。我正在尝试使查询显示基于用户输入的名称和费用的结果。共有3种情况:名称没有输入费用,成本没有输入名称,都输入了
SELECT name, cost FROM table WHERE...
我知道通过执行$ _POST ['name']和$ _POST ['cost']来获取输入的值,但是我在如何设置查询以根据可能的用户输入组合显示信息方面苦苦挣扎< / p>
答案 0 :(得分:0)
这基本上是您想要的吗?
select . . .
from t
where (name = @name or @name is null) and
(cost = @cost or @cost is null);
此处@name
和@cost
是用于将用户输入值传递到查询中的参数。
答案 1 :(得分:0)
对于我来说,我总是按如下方式排列SQL:-
$nane = $_POST['name']:
$cost = $_POST['cost'];
if((isset($nane) && ($nane != "")) && (isset($cost) && ($cost != "")))
{
$sql = "select name,cost from table where columnNm ='".$nane."' and columnNm1 = ".$cost;
}
else if((isset($nane) && ($nane != "")) && (!isset($cost) && ($cost == "")))
{
$sql = "select name,cost from table where columnNm ='".$nane."'";
}
else if((!isset($nane) && ($nane == "")) && (isset($cost) && ($cost != "")))
{
$sql = "select name,cost from table where columnNm1 = ".$cost;
}
我解决了这样的问题。如果您认为适合自己,则可以使用它。