我的站点上有一个产品搜索,它使用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>";
}
}我希望能够获取搜索结果,并填充一个过滤器框,其中只有来自品牌字段的唯一的值。因此,用户可以根据品牌过滤结果。我只想把独特的品牌放在一个无序的名单,我将有一个复选框旁边的每个品牌。
我如何才能抓住独特的品牌价值?我曾和unique_array玩过,但没能让它起作用。
记住,会有更多的过滤器,而不仅仅是品牌。潜在的,5-10个字段,我们将希望填充过滤器。
发布于 2019-12-06 22:23:15
可以使用DISTINCT,如下所示:
SELECT DISTINCT
brand
FROM item_catalog
WHERE description LIKE ?;但是你能做的最好的事情就是规范化模式。有一个单独的表与所有品牌和只有一个外键,该表在item_catalog。
https://stackoverflow.com/questions/59221003
复制相似问题