當前位置:首頁 » 編程語言 » php篩選功能

php篩選功能

發布時間: 2025-02-05 15:29:09

『壹』 求解:php商品條件篩選功能你是怎麼做出來的

php按條件篩選商品的功能,還是比較簡單的。
其實就是根據不同的條件組成sql查詢條件,從資料庫里查出不同的商品出來。
舉個例子:
用戶可以按價格範圍、按品牌、按商品名稱這幾項來綜合查詢。
那麼,在用戶選擇了上面這些查詢條件後(可能這3個條件都設置了,也可能只設置了其中2個),提交到伺服器端,服務端程序收到用戶的查詢條件,開始組裝SQL查詢語句,最後執行組裝好的SQL查詢語句,返回結果給用戶。

代碼舉例:
用戶提交的查詢:
price='0-1000'; //按價格範圍0-1000元查詢

brandid=20; //要求品牌必須是ID號為20的這個(假設這個ID號為20的品牌,名字叫」西部數據")
proctname='綠盤'; //商品名稱只設置了2個字以做模糊查詢

用戶點了查詢按鈕後,根據程序的不同,可能是get方式也可能是post方式發送查詢請求,現假設為post方式。

然後在伺服器端程序中,收到用戶的查詢請求:
$price=$_POST['price'];
$price_arr=explode('-',$price); //這里是把價格範圍按-號拆散成數組,方便在組裝SQL查詢語句時用。

$brandid=$_POST['brandid'];
$proctname=$_POST['proctname'];

當然,上面的數據獲取後,還要進行相應的安全方面的檢查與處理,這里先略過。

接下來,開始組裝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($proctname)) {
$sqlexp.=" and instr(proctname,'$proctname')>0";
}

//下面執行SQL查詢

$result=mysql_query("select * from proct where state=1 ".$sqlexp);

在上面的查詢完成後,把查詢結果返回給用戶,就完成了用戶按條件篩選商品的功能。

『貳』 php 根據某一元素值進行數組篩選

<?php
functionfilter($elem){
return$elem['type']=='空調';
}
$arr=Array(
Array('id'=>1,'type'=>'空調'),
Array('id'=>2,'type'=>'電視機'),
Array('id'=>3,'type'=>'空調')
);
$newarr=array_filter($arr,'filter');
print_r($newarr);
exit;

『叄』 織夢篩選功能怎麼弄詳細說明 ,謝謝!

織夢多條件篩選功能實現
我們已經在前台實現了篩選的功能了,雖然價格、尺寸兩個類型沒有添加,這是因為我是要把他們固定做好,因為他們在模型中使用的類型是數字類型,並非其他三個(品牌、平台以及顯卡)是option類型。
既然前台已經做好了,那我們就開始後台的功能了。
具體的後台我使用的是advancesearch.php這個搜索的功能來實現的。
我們復制一個advancesearch.php的模板出來,默認的advanceserach.php的模板是/templets/default/advancesearch.htm,我們把這個模板,復制到我們的自定義的模板文件夾/templets/jingdong裡面,名字就叫做filter_tmp.htm。
然後進入後台,在「內容模型管理」裡面選擇你所需要搜索的模型,然後點擊這個模型後面的放大鏡圖標,在「附件表可供自定義搜索的欄位」中,勾選上你需要搜索的欄位,自定義搜索結果模板頁,寫上我們剛剛復制的模板名稱,叫做filter_tmp.htm,確定。
這里可以測試一下,能否正常使用搜索。
不過好像是織夢系統自帶的不可以的,我試了好多次都不行,追蹤了一下,好像並沒有查詢附加表,於是在advancesearch.php的218行,原來的代碼是

$query = "SELECT main.id AS aid,main.*,main.description AS description1, type.*
FROM $maintable main
LEFT JOIN #@__arctype type ON type.id = main.typeid
LEFT JOIN $addontable addon ON addon.aid = main.id
$where $orderby";
在type.*的後面添加行一個addon.*,也就是變成如下的代碼

$query = "SELECT main.id AS aid,main.*,main.description AS description1, type.*,addon.*
FROM $maintable main
LEFT JOIN #@__arctype type ON type.id = main.typeid
LEFT JOIN $addontable addon ON addon.aid = main.id
$where $orderby";

然後還有124行添加 ${$var}=iconv(「utf-8″,」gb2312″,${$var}); 否則會導致中文亂碼。
還有一個就是如果使用()英文括弧的話,要小心了,因為會被安全sql過濾掉。
下面,是我簡單的製作了下filter_tmp.htm,大家可以參考使用。

{dede:datalist}
<div style="border: 1px solid #CCC;margin:20px 0;">
<strong>標題:</strong>{dede:field.title/}<br />
<strong>品牌:</strong>{dede:field.pinpai/}<br />
<strong>價格:</strong>{dede:field.jiage/}<br />
<strong>尺寸:</strong>{dede:field.chicun/}<br />
<strong>平台:</strong>{dede:field.pingtai/}<br />
<strong>顯卡:</strong>{dede:field.xianka/}<br />
</div>
{/dede:datalist}
{dede:pagelist listsize='5'/}
但是我們最終是要把這個頁面「嵌」到filter.htm中,也就是最終的列表頁裡面。
現在我們打開filter這個模板文件,在最下面加一個div,id設置為result,這個是用來存放最後篩選出來的結果的地方。
然後打開filter.js,下面重點都是在這個js裡面寫的。

熱點內容
徵婚交友源碼 發布:2025-02-05 17:45:24 瀏覽:917
3nvm伺服器怎麼搭建 發布:2025-02-05 17:43:52 瀏覽:660
cocosandroid開發 發布:2025-02-05 17:22:17 瀏覽:667
編程員發型 發布:2025-02-05 17:09:18 瀏覽:225
網站會員管理源碼 發布:2025-02-05 17:03:32 瀏覽:193
伺服器埠怎麼調節 發布:2025-02-05 16:57:41 瀏覽:46
樂山海棠社區民意上傳 發布:2025-02-05 16:55:52 瀏覽:510
編程老爺爺 發布:2025-02-05 16:48:20 瀏覽:129
支持ftp的免費空間 發布:2025-02-05 16:32:00 瀏覽:891
python時間比較 發布:2025-02-05 16:31:46 瀏覽:52