【发布时间】:2014-04-23 05:22:57
【问题描述】:
我正在开发一个简单的 PHP 报告页面,其中包含 HTML 选择工具,可以选择多个值。用户可以选择多个值,也可以选择全部选项。如果用户选择 All 选项,那么在查询中我不需要写 WHERE 条件,但是如果他从选择列表中选择一个或两个值,那么我只需要在 MySql WHERE 中写选择的值。如何编写通用查询以从 db 表中获取值。 这是我的第一个 Mysql 项目,我无法编写通用查询。 谢谢
【问题讨论】:
我正在开发一个简单的 PHP 报告页面,其中包含 HTML 选择工具,可以选择多个值。用户可以选择多个值,也可以选择全部选项。如果用户选择 All 选项,那么在查询中我不需要写 WHERE 条件,但是如果他从选择列表中选择一个或两个值,那么我只需要在 MySql WHERE 中写选择的值。如何编写通用查询以从 db 表中获取值。 这是我的第一个 Mysql 项目,我无法编写通用查询。 谢谢
【问题讨论】:
您是说如果用户选择所有选项,您就不需要使用 WHERE 条件。但我认为这就是您编写通用查询的方式。始终使用 where 条件。在用户选择所有选项的情况下,输入“and”。假设您设法创建一个包含所有用户选择的选项 $options 的数组。遍历每个选项。有一个启动 sql 语句,如“Select * from table where”。然后为每个选项连接“option='$value'”。如果用户选择了所有选项,这不是问题。
假设您设法将所有选定的选项放在一个数组中
<?php
$options = array("option1","option2","option3");
$sql = "SELECT * FROM table WHERE ";
$parts_sql = "";
foreach ($options as $option){
$parts_sql .="option=$option and ";
}
$sql = $sql . $parts_sql;
$sql = substr($sql,0,strlen($sql)-5);
echo $sql;
?>
【讨论】: