我正在尝试创建一个 PHP 脚本来过滤来自 MySQL 数据库的数据。使用 HTML Select 标签选择过滤器。
问题是,过滤器有很多,用户可能只能选择其中的一部分。我很困惑如何使用 PHP 动态调整 MySQL select 语句,以便它只使用用户选择的那些过滤器。也就是说,如果用户选择 SchoolType 和 District。查询是这样的:
"SELECT * FROM mydatabase
WHERE SchoolType='SelectedSchoolType'
AND District='SelectedDistrict'"
然后如果用户还在过滤器中选择了县,则 SQL 语句将调整为:
"SELECT * FROM mydatabase
WHERE SchoolType='SelectedSchoolType'
AND District='SelectedDistrict'
AND County='SelectedCounty'"
如何让SQL语句根据选择的过滤器进行调整?
最佳答案
在您的 PHP 页面上,您需要:
- 检查选择值(切换)
- 根据这些选择构建您的查询(我使用了 implode)
- 运行您的查询(像往常一样)
例子:
<?php
$sql = "Select * FROM mydatabase";
$conditions = array();
switch($_POST['select_1']){//you can have mutiple switches
case "school":
$conditions[] = "SchoolType = '".$_POST['select_1_text']."'";
break;
case "district":
$conditions[] = "District = '".$_POST['select_1_text']."'";
break;
//etecetera
}
if(count($conditions)){
$sql.= " WHERE ";
$sql.=implode(" AND",$conditions);
}
//Run your query
检查 this动态查询的相关问题
关于php - 使用 PHP 和 HTML Select 创建多个 MySQL 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38086226/