PHP MySQL +基于表单选择创建搜索查询

时间:2014-01-09 22:41:48

标签: php mysql

我有一个HTML表单,人们可以选择部分或全部关闭来搜索数据库中的成员个人资料。

有些选项是:

  • 男/女
  • 年龄
  • 位置
  • 复选框,如意图或兴趣

我需要定制MySQL查询以满足成员选择的选择。

我问,因为我之前构建了这样的自定义搜索,根据所选内容,它变成了一个包含多个查询的完整混乱。

最好只构建一个查询并根据所选内容添加部分吗?

有没有人有例子?


数据库架构:

我有许多带有相关信息的表,所以我需要使用连接。这就说一切都在一个主键PID上工作,所以它都会加入到这个。

2 个答案:

答案 0 :(得分:2)

你可以这样做:

<?php
  $whereClause = '';
  if($_GET['gender'] == 'male'){
    $whereClause .= ' AND gender = "M"';
  }
  if($_GET['age'] != ''){
    $whereClause .= ' AND age = "'.$_GET['age'].'"';
  }
?>

答案 1 :(得分:1)

我会使用数组:

$where = array();
if($_GET["gender"]!=""){
  $clean = mysqli_escape_string($db, $_GET["gender"]);
  array_push($where, "gender = '$clean'");
}
// etc...
$where = implode(" AND ", $where);
$sql = "SELECT * FROM table WHERE $where";