在網路開發領域中,分類查詢是一個很常見的需求,無論是電商平台或內容管理系統,都存在著以分類為基礎的資料展示方式。而隨著分類層數的增加,查詢子分類的任務也變得越來越複雜。本文將介紹一種高效率的PHP循環查詢子分類的方法,幫助開發者輕鬆實現分類層次結構的管理。
首先,我們需要取得分類數據,這裡我們以一個簡單的資料庫表為例。假設這個表名為category,具有下列欄位:
id | name | parent_id |
---|---|---|
#1 | 家用電器 | 0 |
#2 | 手機數位 | 0 |
3 | 電視 | 1 |
4 | #冰箱 | 1 |
5
建立查詢函數
function get_children_categories($parent_id) { // <code to query categories from database by parent_id> return $categories; }
建構遞迴查詢方式
function get_children_categories($parent_id) { $categories = array(); // <code to query categories from database by parent_id> foreach($results as $result) { $category = array(); $category['id'] = $result['id']; $category['name'] = $result['name']; $children = get_children_categories($result['id']); if (!empty($children)) { $category['children'] = $children; } $categories[] = $category; } return $categories; }
遍歷子分類
function print_categories($categories) { echo "<ul>"; foreach($categories as $category) { echo "<li>" . $category['name'] . "</li>"; if (!empty($category['children'])) { print_categories($category['children']); } } echo "</ul>"; }
$memcached = new Memcached(); $memcached->addServer('localhost', 11211); $categories = $memcached->get('categories:1'); if (!$categories) { $categories = get_children_categories(1); $memcached->set('categories:1', $categories); } print_categories($categories);
以上是【總結分享】高效率的PHP迴圈查詢子分類的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!