次のような階層メニューを持つテーブルがあります
"id" "parent_id" "name"
1 0 menu
2 1 item1
3 2 item1_1
4 1 item2
5 4 item2_1
...
...
ここには何百ものメニュー項目があります。配列内のすべての項目を取得するには、次のような再帰関数を作成する必要があります
getmenu function(parent_id = 1)
{
$items = mysql_query("SELECT id FROM table WHERE parent_id = " + parent_id);
while ($item = msyql_Fetch_assoc($items)) {
...here I put them in array and call recursive function again to get sub items...
getmenu($item['id']);
}
}
しかし、これは何百ものクエリを実行します。データベースから階層メニューを取得するには、これが最善の方法ですか? この方法はmysqlに多くの負荷をかけますか?