ネストされたリストについて多くの人が読んできましたが、PHPの隣接リスト/ツリーをどのように反復するのかと思いました。単一テーブルの隣接ツリー
私が持つテーブルがあります:ID、タイトルは、
をPARENT_IDそして私は$ページと呼ばれる配列にすべてのレコードを選択しました。その後
このPHPを使用して:作品のこの種の
function makeList($pages, $used) {
if (count($pages)) {
echo "<ul>";
foreach ($pages as $page) {
echo "<li>".$page['pag_title'];
$par_id = $page['pag_id'];
$subsql("SELECT * FROM pages WHERE pag_parent = ".$par_id."");
// running the new sql through an abstraction layer
$childpages = $dbch->fetchAll();
makeList($childpages, $used, $lastused);
echo "</li>";
}
echo "</ul>";
}
}
を私は例えば繰り返されている任意のサブメニューで終わります
- ホーム
- ニュース
- サブニュース
- 記事
- 条
- ニュース
- ニュース
- サブニュース
- 記事
- 条
- サブニュース
- 条
は私が機能を通じて渡される配列に、現在のIDを追加し、それがあるかどうかをチェックするin_array使用してみましたが、私はそれをやって何の喜びを持っていませんでした。
ご協力いただければ幸いです。私は0として親を選んツリー全体を解析する必要が
は、最も簡単な修正はちょうどあなたが(あなたが表示されません)$pages
を設定する最初の選択を行っている際に、だろうオプション
ありがとうございます – Del
あまりにも多くのクエリが必要になります。 –
@SamDarkはい、私は個人的にはより階層的なデータを保存します。 – OIS