我需要一个搜索同一个表中8个不同字段的脚本的帮助,但是如果没有搜索一个或三个参数,我希望它也能给出结果。我正在使用PHP和MySql,我已经尝试了很长时间了,现在我转向你的专家。 我正在使用选择框和抽动盒。能帮帮我吧。
Select * FROM mymembers WHERE
country = $country AND
gender = $gender AND
haircolor = $haircolor AND
hairlength = $hairlength AND
问题来自于其中一个人没有结果..... ????? 请帮忙 卡斯滕
答案 0 :(得分:0)
使用PHP构建SQL。检查变量是否为空,然后添加它们。
E.g。
$sql = 'Select * FROM mymembers WHERE ';
if (!empty($country)) $sql .= 'country = '.$country;
确保转义在SQL中使用的任何变量以防止注入。
答案 1 :(得分:0)
您提到:如果没有为 提供一个或三个参数,也希望它也能给出结果
在这种情况下,您需要使用OR
条件运算符。
代码:
$query = "SELECT * FROM mymembers WHERE
country = '" . $country . "' OR
gender = '" . $gender . "' OR
haircolor = '" . $haircolor . "' OR
hairlength = '" . $hairlength . "'";
在我看来,查询此表的最佳方法是使用“复选框”,“单选按钮”和“选择下拉列表”来优化搜索,因为“最有可能”country
的值, gender
,haircolor
和hairlength
是预定义的,它们可能不会更改。
如果它是“搜索框”,那么您可以依赖LIKE
运算符,但在您的情况下,结果将非常糟糕。