Php 从搜索查询中获取唯一值以填充搜索筛选器选项

Php 从搜索查询中获取唯一值以填充搜索筛选器选项,php,sql,sql-server,Php,Sql,Sql Server,我的网站上有一个产品搜索,它使用sql查询获取结果 例如: $result=odbc_prepare($connection, "SELECT name, description, brand FROM item_catalog WHERE description LIKE $searchterm"); odbc_execute($result); $count = odbc_num_rows($result); if($count >= 1) {

我的网站上有一个产品搜索,它使用sql查询获取结果

例如:

$result=odbc_prepare($connection, "SELECT name, description, brand FROM item_catalog WHERE description LIKE $searchterm");
odbc_execute($result);
    $count = odbc_num_rows($result);
        if($count >= 1) {
            while($row = odbc_fetch_array($result)) {
                echo "<table cellspacing='7px' cellpadding='0' border='0'>";
                echo "<tr>";
                echo "<td style='vertical-align:top;line-height:0; display:none;'></td>";
                echo "<td>" . $row['name'] . "</td>";
                echo "<td>" . $row['brand'] . "</td>";
                echo "</tr>";
                echo "</table>";
            }
        }
我希望能够获取搜索结果,并使用品牌字段中的唯一值填充过滤器框。因此,用户可以根据品牌筛选结果。我只想把独特的品牌放在一个无序的列表中,我会在每个品牌旁边有一个复选框

我如何抓住独特的品牌价值?我曾经使用过独特的_阵列,但无法实现

请记住,将有更多的过滤器不仅仅是品牌。我们可能需要为5-10个字段填充筛选器。

您可以使用DISTINCT,如中所示:


但最好的办法是规范化模式。在item_catalog中有一个包含所有品牌的单独表,并且只有该表的外键。

这将填充一个包含所有品牌的筛选框。我只想要从用户搜索查询返回的唯一品牌。只需添加WHERE子句即可。请参见编辑。还要注意的是,最好使用参数化查询。我想我是在试图避免每次用户执行搜索时都执行多个查询。特别是当我必须填充5-10个过滤盒时。为什么?如果是因为性能原因,那么请记住,DBMS是为此类任务而设计的,并且在模式设计和索引良好时,其性能非常好。当然,这也取决于数据量和与DBMS的连接。。。
SELECT DISTINCT
       brand
       FROM item_catalog
       WHERE description LIKE ?;