我尝试创建一个PHP脚本,该脚本基于从总数中填充的输入字段,使用这些字段作为SQL参数来创建SQL查询。但是如果没有填写任何字段,那么查询将只检索所有数据。
示例:if fields" Name"和"城市"输入后,查询将必须连接" AND name = X_INPUT AND city = Y_INPUT"在末尾。
我试图为了测试而实例化$ POST变量,但什么也没有返回。我甚至不确定这是否是解决问题的最佳方法,但我们将非常感谢任何帮助!
$_POST['name']="Linda";
$_POST['city']="";
$query = "select * from customers where gender = 'F'";
if (empty($_POST)) {
$query = "select * from customers where gender ='F'";
}
else{
foreach($_POST as $key => $v) {
if (!empty($_POST[$key])) {
$cond = " and ".$key."='".$v."'";
$query = $query.$cond;
答案 0 :(得分:0)
代码:
$query = $query.$cond;
每个都会向SQL添加不必要的查询。获取数组中的所有条件,并将它们简单地连接成一个字符串。一切都应该这样。
$conditions = array();
foreach($POST as $key => $v) {
if (!empty($_POST[$key])) {
$conditions = " $key = '$v'";
}
}
if (! empty($conditions)) {
$sql .= implode(' AND ', $conditions);
}
答案 1 :(得分:0)
你的foreach循环中有一个拼写错误,请使用此
$_POST
而不是
$POST