如何从mysql表

时间:2015-08-22 19:47:53

标签: php mysql

我为我的小项目创建了一个简单的搜索页面。它关于设备上的多功能设备和选项列表。

我有表设备和带设备选项的字段:

option_hdd option_fax option_df(文件馈送器) option_duplex

依此类推......共有8个选项字段。 如果设备包含字段中的选项,则为1(如果不是0)。

我使用GET方法为所有这个选项创建了带有复选框的小表单。

<form action="search.php" method="get" name="search">
<input name="HDD" type="checkbox" value="1" /> HDD<br />
<input name="Fax" type="checkbox" value="1" /> Fax<br />
<input name="DF" type="checkbox" value="1" /> DF<br />
...
<input name="Search" type="submit" />
</form>

我尝试创建一些查询,但我没有得到确切的结果。

如果用户想检查包含hdd和传真选项的设备,他将检查两个复选框并点击搜索,查询需要返回包含已检查选项的设备的结果(对于其他选项不是必需的)

我尝试使用falylowing查询我发现谷歌搜索:)

SELECT * FROM devices WHERE option_hdd = '$_GET[HDD]' OR option_fax = '$_GET[Fax]' OR option_finisher = '$_GET[Df]' ......'

以及

SELECT * FROM devices WHERE option_hdd = '$_GET[HDD]' AND (option_fax = '$_GET[Fax]' OR option_finisher = '$_GET[Df]' ......);

但我确实得到了想要的结果......但这最后是最特写的......

示例i在DB中有5个设备用于测试 所有5个设备都有硬盘,2个设备有传真选项 在表单中我检查硬盘和传真,我得到所有5个设备的结果,但正确的结果必须是2 ...因为只有两个设备有传真选项......

有人可以帮助我并给我正确的查询:)

由于

1 个答案:

答案 0 :(得分:0)

另一个解决方案是使用这个技巧:

<input name="HDD" type="hidden" value="0" />
<input name="HDD" type="checkbox" value="1" /> HDD<br />

这样如果PHP没有从复选框中获取值,PHP将恢复为默认值。

请注意您的数据,不要直接在SQL中使用$ _GET。