1樓:不倒翁累趴下了
優化的方法是在設計分類表時就應該想好的,遞迴查庫是最下等的做法。分類表應該有乙個childs欄位,這個字段儲存當前分類的所有下級分類,包括2級,3級,4級等等所有以下的,使用「,」分割好,每次編輯分類都要做好childs欄位的處理。點選分類查的時候直接在商品表裡 in(childs欄位)。
還有個方法就是把所有分類以陣列形式儲存到乙個php檔案裡,不分層級。你以後遞迴的時候去遞迴這個php檔案的陣列來分級。最後結果其實就是組合方法1的childs欄位。
我不知道你怎麼做的,但是顯然聯查分類表跟商品表是做不到這種功能的,除非不考慮效能問題。
你說你只能顯示2級分類的商品肯定是沒有達到遞迴的作用,或許是只遞迴了一層。
thinkphp 獲取一級分類下所有商品
2樓:涼念若櫻花妖嬈
可以這樣
$str = 'select id from tp_order_cat where parentid in (1,5,6)';//獲取所有的1,5,6的所有下級分類
$need_list = d('tp_order_cat')->where('parentid in (1,5,6)')->select();//獲取到的
$need_id_str = ''; //獲取需要的子類id
foreach($need_list as $val)
$need_id_str = join(',', $need_id);
$where = "catid in ($need_id_str)";
$products = $this->order_model->where($where)->order($order.' '.$method)->limit('5')->select();
3樓:℡媙の綺
1級和2級商品的關聯欄位呢?獲取半天傳參都沒用啊,where裡就乙個條件?明顯語句有問題,getlastsql(),用這個tp函式獲取一下編譯後的sql語句,然後輸出一下看看,就一目了然了。
thinkphp 獲取一級分類(包括2級分類)下所有商品
4樓:匿名使用者
你可以這樣
$str = 'select id from tp_order_cat where parentid in (1,5,6)';//獲取所有的1,5,6的所有下級分類
$need_list = d('tp_order_cat')->where('parentid in (1,5,6)')->select();//獲取到的
$need_id_str = ''; //獲取需要的子類id
foreach($need_list as $val)
$need_id_str = join(',', $need_id);
$where = "catid in ($need_id_str)";
$products = $this->order_model->where($where)->order($order.' '.$method)->limit('5')->select();
這樣就可以了!
php中在文字框輸入內容旁邊有按鈕點選後替換當前
jquery 獲取輸入的值,用jquery中的 class html class value php操作txt文字,乙個文字框,乙個提交按鈕,點選提交按鈕之後,把這個文字框的內容寫進data 30 很簡單,使用file put contents 函式 if isset get name 如果是pos...
php如何呼叫函式,php自定義函式中怎麼呼叫類中方法
直接使用函式名 引數 就行了,引數的個數可以為空,也可以是多個,根據你的具體函式來 php 有系統函式 內建函式 與使用者自定義函式它們的呼叫方法是一樣的 例如 php 系統函式的呼叫 比如 array keys 函式 array keys 函式返回包含陣列中所有鍵名的乙個新陣列。a array a...
請問,php中include如何呼叫其他目錄下的檔案
include 檔案要根據你訪問那個檔案所在的目錄而定,而不是include 那個檔案為定 例如你要訪問index.php 所在目錄為 aa index.phpindex.php 裡要include aa bb cc.php 你要寫 include bb cc.php,如果在aa bb cc.php...