我正在开发一个简单的PHP报告页面,其中包含HTML选择工具,可以选择多个值。用户可以选择多个值,也可以选择全部选项。如果用户选择All选项,那么在查询中我不需要写WHERE条件,但是如果他从select list中选择一个或两个值,那么我只需要在MySql WHERE中只写入选定的值。如何编写通用查询以从db表中获取值。 这是我的第一个Mysql项目,我无法编写通用查询。 感谢
答案 0 :(得分:0)
您说如果用户选择了所有选项,则您不需要使用WHERE条件。但我认为这就是你需要编写通用查询的方法。始终使用where条件。在这种情况下,用户选择所有选项,放置"和"。假设您设法创建一个包含所有用户选择选项$ options的数组。遍历每个选项。有一个启动sql语句,如"从表中选择*,其中"。然后为每个选项连同"选项=' $ 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;
?>