『壹』 php如何查找會員無限分類的所有上級和所有下級
這個就要看你的資料庫是怎麼實現的。
我之前給一個人做個一個類似的會員推廣提成的模塊,就a推廣出的a-1,a-2繼續推廣,得到a-1-1,a-1-2等等。
我的資料庫設計思路如下:
用戶表中有一個son這么一個欄位,這個欄位中存放名下所有會員的id,用分號隔開。
這個欄位的維護:
比如a-1-1推廣出了一個a-1-1-1,此新用戶的id是12345,那麼給a-1-1 a-1 a這個三個用戶son欄位內均添加12345這個id,刪除一個用戶做法一樣。
有了這張表就能實現你要的效果。
查一個會員名下所有的會員,只需要讀取該會員的son欄位即可
查一個會員的上級 怎在資料庫中所搜son欄位,含有此會員id的都是他的上級會員。
當然,還有一個欄位是標記此會員的直接上級會員,這樣 一張表就能從任意會員得到整個會員推廣樹。
希望這個思路能幫到你。
『貳』 PHP怎麼遞歸
下面我舉一個其他的例子,雖然不是族譜,但是原理都是一樣的。
在一些復雜的系統中,要求對信息欄目進行無限級的分類,以增強系統的靈活性。那麼PHP是如何實現無限級分類的呢?我們在本文中使用遞歸演算法並結合mysql數據表實現無限級分類。
遞歸,簡單的說就是一段程序代碼的重復調用,當把代碼寫到一個自定義函數中,將參數等變數保存,函數中重復調用函數,直到達到某個條件才跳出,返回相應的數據。
Mysql
首先我們准備一張數據表class,記錄商品分類信息。表中有三個欄位,id:分類編號,主鍵自增長;title:分類名稱;pid:所屬上級分類id。
class表結構:
CREATE TABLE IF NOT EXISTS `class` (
`id` mediumint(6) NOT NULL AUTO_INCREMENT,
`title` varchar(30) NOT NULL,
`pid` mediumint(6) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
插入數據後,如圖:
如果要輸出json格式的數據,則可使用:
echo json_encode($list);