PHP MySQL+;基于非表单选择创建搜索查询
我有一个HTML表单,人们可以选择部分或全部关闭来搜索数据库中的成员配置文件 其中一些选择是:PHP MySQL+;基于非表单选择创建搜索查询,php,mysql,Php,Mysql,我有一个HTML表单,人们可以选择部分或全部关闭来搜索数据库中的成员配置文件 其中一些选择是: 男/女 年龄 位置 如意向或利益等复选框 等 我需要定制一个MySQL查询,以满足成员选择的内容 我这样问是因为我以前建立了一个像这样的自定义搜索,它变成了一个完全混乱的多个查询,取决于选择了什么 是否最好只构建一个查询,并根据所选内容添加部分 有没有人举过拉夫的例子 数据库架构: 我有许多包含相关信息的表,所以我需要使用联接。也就是说,所有东西都在一个主键PID上工作,因此它将在此基础上加入。
- 男/女
- 年龄
- 位置
- 如意向或利益等复选框
- 等
数据库架构:
我有许多包含相关信息的表,所以我需要使用联接。也就是说,所有东西都在一个主键PID上工作,因此它将在此基础上加入。您可以这样做:
<?php
$whereClause = '';
if($_GET['gender'] == 'male'){
$whereClause .= ' AND gender = "M"';
}
if($_GET['age'] != ''){
$whereClause .= ' AND age = "'.$_GET['age'].'"';
}
?>
您可以这样做:
<?php
$whereClause = '';
if($_GET['gender'] == 'male'){
$whereClause .= ' AND gender = "M"';
}
if($_GET['age'] != ''){
$whereClause .= ' AND age = "'.$_GET['age'].'"';
}
?>
您可以这样做:
<?php
$whereClause = '';
if($_GET['gender'] == 'male'){
$whereClause .= ' AND gender = "M"';
}
if($_GET['age'] != ''){
$whereClause .= ' AND age = "'.$_GET['age'].'"';
}
?>
您可以这样做:
<?php
$whereClause = '';
if($_GET['gender'] == 'male'){
$whereClause .= ' AND gender = "M"';
}
if($_GET['age'] != ''){
$whereClause .= ' AND age = "'.$_GET['age'].'"';
}
?>
我会使用数组:
$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";
我将使用一个数组:
$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";
我将使用一个数组:
$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";
我将使用一个数组:
$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";
你的DB模式看起来怎么样?你的DB模式看起来怎么样?你的DB模式看起来怎么样?你的DB模式看起来怎么样?是的,但正如你所看到的,我把和放在每个字符串的最前面,所以这取决于where子句中已经有了类似于
where id=1'.$where子句'.
的内容。如果没有,您仍然可以使用它,但可以稍微更改一下。但是,正如您所看到的,我在每个字符串的开头加上了AND,所以这取决于where子句中已经有了类似于where id=1'.$where子句'.
的内容。如果没有,您仍然可以使用它,但可以稍微更改一下。但是,正如您所看到的,我在每个字符串的开头加上了AND,所以这取决于where子句中已经有了类似于where id=1'.$where子句'.
的内容。如果没有,您仍然可以使用它,但可以稍微更改一下。但是,正如您所看到的,我在每个字符串的开头加上了AND,因此,这取决于where子句中已经有了类似于where id=1.$whereClause.
的内容。如果没有,您仍然可以使用它,但可以稍微更改一下