php商品條件篩選功能你是怎么做出來的?
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="開始查詢" />