再帰関数を作成するときは、以前の実行の結果を保存するためにいくつかの静的変数をキャッシュして定義することを検討できます。おおよその手順は次のとおりです。 : まず、データベースからデータを取得して配列に配置し、次にデータをツリー状の配列に変換し、最後にこのツリー状の配列を HTML コードに変換します。例を見てみましょう
記事中心の技術サイトを運営していて、シリーズ記事もいくつかあるので、それらの記事を分類して同じカテゴリーに入れたいと思っています。
データベースはうまく設計されており、id と Fatherid を使用して分類するだけです。 Fatherid は親カテゴリを表し、id は記事の一意の ID です。レベルは制限されておらず、2 つのレベルにすることもできます。 3つのレベル。 Fatherid が 0 の場合は、トップレベルの記事を示します。
phpコード、主に再帰的
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
関数 category_tree($fatherid){ //require_once("mysql_class/config.inc.php"); //require_once("mysql_class/Database.class.php"); $db = 新しいデータベース(DB_SERVER、DB_USER、DB_PASS、DB_DATABASE); $db->connect(); $sql = "「.TABLE_TASK.」からID、タイトル、URLを選択します。" WHERE Fatherid=$fatherid および ispublic=1 ID asc で注文します"; $articles = $db->クエリ($sql); $db->close(); while ($record = $db->fetch_array($articles)){ $i = 0; if ($i == 0){ if($fatherid==0){ echo '
}その他{ echo '
}
} if($fatherid==0){ echo ' $i++; if ($i > 0){ エコー ' } } } |
電話:
?
1 |
category_tree(0) //最初にトップレベルの記事を抽出します |
以上がこの記事の全内容ですが、皆さんに気に入っていただければ幸いです。