【发布时间】:2012-12-21 21:15:30
【问题描述】:
我对最近的一篇帖子进行了过度思考并删除了它。希望这个版本更清晰一点。
我有一个多选下拉列表,我希望能够使用它来过滤数据库表。
因此,如果我有以下包含大约 70 个条目的下拉列表:
<select multiple="multiple" id="filter" name="filter">
<optgroup label="category1"> <!--jquery ui plugin allows for grouping -->
<option value="sub1">Subcategory 1</option>
<option value="sub2">Subcategory 2</option>
<option value="sub3">Subcategory 3</option>
</optgroup>
<optgroup label="category2">
<option value="sub4">Subcategory 4</option>
<option value="sub5">Subcategory 5</option>
<option value="sub6">Subcategory 6</option>
...
我有 6 个类别需要在我的 sql 语句中搜索,到目前为止我有:
<?php
include ("connect.php");
$filter = $_POST["filter"];
$result = mysql_query("SELECT * FROM edt_images
WHERE category1= '$filter'
OR category2= '$filter'
OR category3 = '$filter'
OR category4 = '$filter'
OR category5 = '$filter'
OR category6 = '$filter'")
or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
echo "<img src='files/small/thumb0_".$row['item_name'].".".$row['file_extension']."' border='0'/>";
}
?>
现在,如果我只从下拉列表中选择一项,它就可以工作,因为它会在六列中搜索该条目。所以我的问题是如何在这六列中搜索多个条目?
提前致谢
【问题讨论】:
-
警告! 您的代码包含SQL injection vulnerability——您将原始、未经过滤、未经验证的用户输入直接传递到 SQL 字符串中。 SQL 注入是very easy to fix。考虑switching to PDO 或mysqli,这样你就可以使用prepared statements with parameterized queries。
-
是的,很清楚,正在寻找有关该概念的更多帮助。这还不是最终代码。
-
也换成PDO了,我只是觉得用旧格式比较容易学,然后改成PDO
-
您不想从您的选择中返回多个值吗?
-
@Dagon,是的,我正在寻求帮助
标签: php javascript sql multiple-select