Infinitus 分類を達成するには、データベース テーブルの作成が鍵となります。
テーブル構造には少なくとも 3 つのフィールドが必要です。再帰ループを回避したい場合は、4 つのフィールドが必要です。
1. id、現在のデータの一意の識別子
2. typename、タイプ名
3.parentid、現在のタイプの親タイプの ID
4. path現在のタイプの ID とそのすべての親タイプの ID。
これらのIDは「-」で区切られています。
5. 以下のSQL文で実現できれば、同じ最上位カテゴリ以下の情報がまとめて表示されます。
select * from table name where 条件 order by path;
例:
インデント効果を備えた非常にシンプルで明確かつシンプルな無制限の分類の例。データ テーブルを 1 回クエリするだけで、その後再帰的に走査するだけです。 php で列のインデント表示を実現したい場合は、結果セットを参照してください。
$sql = 'select * from cat order by cat_id desc'; $list = $db->getAll($sql); $list = getLevelCat($list); function getLevelCat($catlist, $parent_id='0', $html=' ', $level='0'){ $arr = array(); foreach($catlist as $val){ if($val['parent_id']==$parent_id){ $val['html'] = str_repeat($html,$level); $val['level'] = $level; $arr[] = $val; $arr = array_merge($arr, getLevelCat($catlist, $val['cat_id'], $html, $level+1)); } } return $arr; }
ほんの数行のコードで、より明確で使いやすくなります。
関連する推奨事項:
以上がInfinitus分類とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。