php - 多下拉查询过滤器

标签 php mysql drop-down-menu

编辑:我在我的原始代码中发现了一个很大的缺陷。对于我的选择,我对“full_name”和“city”使用了相同的变量名称(复制和粘贴错误)。但我仍然不确定如何输入选择语句以根据两个下拉菜单选择行。我在下面发布了我的代码的两个部分。有任何想法吗?谢谢!

下拉框代码:

<select name="name">
<option value="">--</option>
<?php
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." GROUP BY full_name ORDER BY full_name";
$sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
while ($row = mysql_fetch_assoc($sql_result)) {
    echo "<option value='".$row["full_name"]."'".($row["full_name"]==$_REQUEST["full_name"] ? " selected" : "").">".$row["full_name"]."    </option>";
}
?>
</select>&nbsp;&nbsp;
<label>City</label>
<select name="city">
<option value="">--</option>
<?php
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." GROUP BY city ORDER BY city";
$sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
while ($row = mysql_fetch_assoc($sql_result)) {
    echo "<option value='".$row["city"]."'".($row["city"]==$_REQUEST["city"] ? " selected" : "").">".$row["city"]."</option>";
}
?>
</select>

并选择行代码:

<?php

if ($_REQUEST["city"]<>'') {
$search_city = " WHERE city='".mysql_real_escape_string($_REQUEST["city"])."'"; 
}
if ($_REQUEST["full_name"]<>'') {
$search_full_name = " AND  full_name='".mysql_real_escape_string($_REQUEST["full_name"])."'";   
}

if ($_REQUEST["from"]<>'') {
$sql = "SELECT * FROM ".$SETTINGS["data_table"].$search_string.$search_city.$search_full_name;
} else if ($_REQUEST["to"]<>'') {
$sql = "SELECT * FROM ".$SETTINGS["data_table"].$search_string.$search_city.$search_full_name;
} else {
$sql = "SELECT * FROM ".$SETTINGS["data_table"].$search_string.$search_city.$search_full_name;
}

$sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
if (mysql_num_rows($sql_result)>0) {
while ($row = mysql_fetch_assoc($sql_result)) {
?>

最佳答案

乍一看,您只需要附加字符串

$search_city = '';
$search_full_name = '';

if ($_REQUEST["city"]<>'') {
$search_city = " AND city='".mysql_real_escape_string($_REQUEST["city"])."'";   
}
if ($_REQUEST["full_name"]<>'') {
$search_full_name = " AND full_name='".mysql_real_escape_string($_REQUEST["full_name"])."'";    
}

if ($_REQUEST["from"]<>'') {
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE from_date >= '".mysql_real_escape_string($_REQUEST["from"])."'".$search_string.$search_city.$search_full_name;
} else if ($_REQUEST["to"]<>'') {
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE to_date <= '".mysql_real_escape_string($_REQUEST["to"])."'".$search_string.$search_city.$search_full_name;
} else {
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE id>0".$search_string.$search_city.$search_full_name;
}

$sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
if (mysql_num_rows($sql_result)>0) {
while ($row = mysql_fetch_assoc($sql_result)) {

关于php - 多下拉查询过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9845778/

相关文章:

java - 在 JAVA 中点击 URL 而不重定向

mysql - 如何获取特定字段的值总和

mysql - 在 bool 模式下选择匹配无法正常工作

C#:是否可以在菜单项中获取 DropDownItem 的索引?

php - 无法在Chrome中的PHP中启用错误报告

php - 在 mysql 查询中使用 PHP 表单

php - 从多个表中检索记录 MySQL

mysql - 验证 MySQL 中的时间格式有效性

css - 下拉菜单中的联系表

html - 为什么 <select> 有时是白色有时是灰色?