选项菜单从DISTINCT价格到具有价格范围的选项

时间:2014-04-10 18:42:12

标签: php mysql

我想创建一个选项菜单,其价格从数据库中拉出,如:

$query_RS_Price = sprintf("SELECT DISTINCT price FROM products WHERE Category LIKE %s AND Manufacturer = %s AND Color = %s");

这给了我一系列的值,例如501,999,1000,1501 2000 我知道我可以让所有的价格都这样上涨:

<?php  
              echo '<option value="">Any</option>';
             while ($Price = mysql_fetch_array($RS_Price)) {
    $selected3 = $_GET['price'] == $Price['price'] ? 'selected' : '';
        echo '<option '.$selected3.'>' . $Price['price'] . '</option>';
} ?>

但这不是我想要的。 我不想把所有这些都放在一个选项中,但我想做一个像

这样的选项范围
<select name="price" class="dropmenu">

                 <option value="">Any</option>
                 <option value="0-500">£0-500</option>
                 <option value="500-1000">£500-1000</option>
                 <option value="1000-2000">£1000-2000</option>
                 <option value="2000">£2000&gt;</option>
               </select>

如果例如0到500之间没有值,我不想显示该选项。  是否只显示选项范围? 欢迎任何帮助

1 个答案:

答案 0 :(得分:0)

SELECT case when price between 0 and 500 then '0-500'
            when price between 501 and 1000 then '501-1000'
            when price between 1001 and 2000 then '1001-2000'
            when price > 2000 then '>2000'
       end as price_range
FROM products 
WHERE Category LIKE %s AND Manufacturer = %s AND Color = %s
GROUP BY price_range