Infinitus分類とは何ですか

不言
不言オリジナル
2018-05-31 11:23:112711ブラウズ

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;
}

ほんの数行のコードで、より明確で使いやすくなります。

関連する推奨事項:

PHP で Infinitus 分類関数を実装する方法

Infinitus 分類ツリー構造を作成する方法

以上がInfinitus分類とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。