PHP表单将多个输入作为SQL查询发送

时间:2014-12-08 06:19:54

标签: php mysql forms input

我尝试创建一个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;

2 个答案:

答案 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