一直在寻找这个但是找不到答案所以我想在这里问。
我有5个下拉'选项框'列表,其数据是从数据库填充的。数据库信息是关于用户从第一个下拉列表中选择计算机制造商,从第二个下载计算机类型,从第三个下载计算机颜色,最后从第四个和第五个下拉列表中选择最小和最大价格。
然后将这些用户选择的变量发布到php'搜索'页面,并对它们运行查询。我的问题是,如果(例如)用户只选择了计算机'制造'和'制造'并将所有其他选项框留空,我将如何在我的SQL搜索中运行它?我是否需要将“非设置”变量设置为通配符?
任何帮助将不胜感激!
答案 0 :(得分:2)
您可以动态构建查询,如下所示:
$sql = "SELECT ... FROM ... WHERE 1=1 ";
if ($manufacturer != "") {
$sql .= " AND manufacturer = ...";
}
if ($computerType != "") {
$sql .= " AND computerType = ...";
}
// etc...
答案 1 :(得分:1)
SELECT * FROM TABLE WHERE
COLUMN_NAME_1 = IF('".$select_result_1."'='',COLUMN_NAME_1,'".$select_result_1"') AND
COLUMN_NAME_2 = IF('".$select_result_2."'='',COLUMN_NAME_2,'".$select_result_2"') AND
COLUMN_NAME_3 = IF('".$select_result_3."'='',COLUMN_NAME_3,'".$select_result_3"') AND
COLUMN_NAME_4 = IF('".$select_result_4."'='',COLUMN_NAME_4,'".$select_result_4"') AND
COLUMN_NAME_5 = IF('".$select_result_5."'='',COLUMN_NAME_5,'".$select_result_5"');