【发布时间】:2011-10-12 00:44:46
【问题描述】:
我正在开发一个电子商务网站。在显示可用手机时,用户可以通过以下过滤器过滤结果:
-
品牌名称
- 三星
- 诺基亚
- 宏达
- (还有更多)
-
价格范围
- $100-$200
- $200-$300
- (等等)
-
类别
- Android 手机
- 低成本手机
- 音乐手机
- 3G 手机
- ...(还有更多)
我想使用以下 GET 参数生成一个 sql 查询,该查询将在每次应用过滤器时执行。假设当前过滤器是Brand=Samsung,那么我的链接将是http://xyz.com/mobiles.php?brand=samsung
对于上述过滤器,生成SQL查询的PHP代码如下(使用大量if/else语句和isset()函数):
$sql = "SELECT * from items ";
if(isset($_GET['brand']))
{
$sql = $sql . "where brand=".$_GET['brand']." ";
/*similar statements*/
}
请不要去纠缠以上PHP语句的准确性,我没有提到完整的代码。最后,我生成了以下 SQL,它将提供结果:
SELECT * FROM ITEMS
WHERE
BRAND=SAMSUNG;
此 SQL 查询将产生匹配的产品,我将相应地在网页上显示结果。请回答以下问题:
-
在上述过滤器(品牌)之后,假设还应用了价格过滤器。如何 我可以知道
brand过滤器已经存在吗? 我可以将用户重定向到http://xyz.com/mobiles.php?brand=samsung&priceMin=100&priceMax=200
代替以下网址
http://xyz.com/mobiles.php?priceMin=100&priceMax=200
即我怎样才能将价格标准附加到网址?
是否有任何软件/库/代码可用于过滤产品?
有没有更好的过滤产品的方法或更好的方法 生成的SQL比我上面说的方法好?
我在 Windows 机器上使用 PHP、MySQL、Apache。
【问题讨论】:
标签: php mysql web-applications search