本文目錄一覽:
PHP搜索頁面如何實現分類檢索
不知道你的數據庫是如何設計的~ 一般where 條件 AND鏈接就行了吧~
PHP實現搜索查詢功能的方法技巧
下面是首頁顯示數據表package中的內容,但是有個條件,顯示在首頁的內容還必須是 :字段status=0,且printing=0的數據才能在首頁列表中顯示出來。
頁面上有一個「搜索」功能,輸入條件後就會根據條件來進行查詢。
一般的搜索的話,只要在首頁顯示列表方法index()中給一個:
?
$map=array();//初始化查詢條件
$map=$this-_search();//調用查詢方法
$total = $this-Model-where ($map)-count(); //這個主要是用來計算頁面顯示數據條數的
if ($total == 0) {
$_list = ”;
} else {
$_list = $this-Model-where ($map)-limit( $post_data [‘first’] . ‘,’ . $post_data [‘rows’] )-select();
}
然後,就是寫一個_search():
protected function _search(){
$map = array ();
$post_data = I ( ‘post.’ );
if ($post_data [‘packageid’] != ”) {
$map [‘packageid’] = array (
‘like’,
‘%’ . $post_data [‘packageid’] . ‘%’
);
}
return $map;
}
最後,在設置的「搜索」菜單中,調用這個搜索方法。
但是,這個搜索的.同時,還要確保在字段status=0,且printing=0的數據中進行搜索。
這個限制條件該加在什麼地方。各種嘗試和查詢後,才知道。限制條件直接加在SQL語句中就行了(如下紅色的地方)。(我自己試的時候一直在如下藍色的地方加條件,屢試屢敗!)
$map=array();
$map=$this-_search();
$total = $this-Model-where ($map)-where(array(‘status’ =0,’print_status’=0))-count();
if ($total == 0) {
$_list = ”;
} else {
$_list = $this-Model-where ($map)-where(array(‘status’ =0,’print_status’=0))-limit( $post_data [‘first’] . ‘,’ . $post_data [‘rows’] )-select();
}
更多相關文章推薦:
怎麼製作網頁上的分類搜索?點一下就自己分類顯示的
分類搜索就是拼湊SQL語句的where子句
看你網站這裡有地址桌數和價格
那麼對應數據庫就應該保存類似信息的字段
這裡我假設你的數據保存在同一張表table中,表中有三個字段address,table_count,price分別對應地址,桌數,價格
那麼分類中每個選項對應一個不同的URL請求
比如廬陽的地址如下
複製代碼
search.php?address=luyantable_count=?php echo$_GET[‘table_count’]?price=?php echo$_GET[‘price’]?
看到這裡的?php echo$_GET[‘table_count’]?了嗎?這裡就是將另外兩項分類中提供的篩選條件保存到URL中,這樣篩選條件不會丟失。
其他分類篩選條件的URL地址也是這樣的,只是每個條件只固定自己所代表的條件,其他都是動態輸出,也就是比如價格分類中1000-2000的條件,對應的URL地址應該是
複製代碼
search.php?address=?php echo $_GET[‘address’]?table_count=?php echo $_GET[‘table_count’]?price=1000-2000?
需要注意的是,在echo出其他兩項篩選條件前,需要進行xss代碼過濾,防止xss攻擊,這裡是為了簡單起見直接輸出了,實際是不可取的。
好了,有了這樣的URL地址,篩選起來就很簡單了
在search.php中獲取到URL傳遞過來的address,table_count,price信息,判斷是否為空,不為空就說明指定了篩選條件,為空就是沒有指定(比如第一次只點擊了某個地址,那麼其他兩項條件都是空)
然後就可以生成SQL語句了
複製代碼
$sql=”select * fromtable “;
$where=””;
if(!empty($_GET[‘price’]))
{
$priceArr=explode(‘-‘,$_GET[‘price’]);
$where=”price$priceArr[0] andprice$priceArr[1]AND”;
}
if(!empty($_GET[‘table_count’]))
{
$priceArr=explode(‘-‘,$_GET[‘table_count’]);
$
使用php實現商品所有分類查詢,類似淘寶這種
在數據庫建立的時候就已經分好了 給每個欄目一個p_id
最上層菜單p_id為0
子菜單p_id為上級菜單的id
查詢的時候就根據id和pid來查找
找出所有就按照遞歸來找
原創文章,作者:XGAH,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/149801.html