求解:php商品条件筛选功能你是怎么做出来的?
分享| 2013-09-25 13:43 chenhang607 | 浏览 2756 次
求思路或者方法,最好能有些代码
2013-09-25 14:14 提问者采纳
php按条件筛选商品的功能,还是比较简单的。其实就是根据不同的条件组成SQL查询条件,从数据库里查出不同的商品出来。举个例子:用户可以按价格范围、按品牌、按商品名称这几项来综合查询。那么,在用户选择了上面这些查询条件后(可能这3个条件都设置了,也可能只设置了其中2个),提交到服务器端,服务端程序收到用户的查询条件,开始组装SQL查询语句,最后执行组装好的SQL查询语句,返回结果给用户。 代码举例:用户提交的查询:price=‘0-1000‘; //按价格范围0-1000元查询 brandid=20; //要求品牌必须是ID号为20的这个(假设这个ID号为20的品牌,名字叫”西部数据")productname=‘绿盘‘; //商品名称只设置了2个字以做模糊查询 用户点了查询按钮后,根据程序的不同,可能是get方式也可能是post方式发送查询请求,现假设为post方式。 然后在服务器端程序中,收到用户的查询请求:$price=$_POST[‘price‘];$price_arr=explode(‘-‘,$price); //这里是把价格范围按-号拆散成数组,方便在组装SQL查询语句时用。 $brandid=$_POST[‘brandid‘];$productname=$_POST[‘productname‘]; 当然,上面的数据获取后,还要进行相应的安全方面的检查与处理,这里先略过。 接下来,开始组装SQL查询语句: $sqlexp=‘‘;//下面开始组根据用户设置的查询条件进行SQL查询条件的组装 if(!empty($price)) { $sqlexp.=‘ and (price>=‘.$price_arr[0].‘ and price<=‘.$price_arr[1]; }if(!empty($brandid)) { $sqlexp.=‘ and brandid=‘.$brandid;}if(!empty($productname)) { $sqlexp.=" and instr(productname,‘$productname‘)>0";} //下面执行SQL查询 $result=mysql_query("select * from product where state=1 ".$sqlexp); 在上面的查询完成后,把查询结果返回给用户,就完成了用户按条件筛选商品的功能。
追问:
嗯,后面取地址栏参数,拼接where条件,这个都好弄,就不是不知道,怎么在前端页面查询条件上面a链接构造地址。
追答:
在前端页面中,一般是用form表单,而不是用A链接。<form name="search_form" method="post" action="search.php">价格范围:<input type="text" name="price" />品牌:<select name="brandid"> <option value="">请选择</option> <option value="1">希捷</option> <option value="20">西部数据</option> <option value="21">日立</option> </select>商品名称:<input type="text" name="productname" /><input type="submit" name="searchbtn" value="开始查询" />
时间: 2024-11-08 18:56:40