こんにちはcodeigniter
、私はMySQL
このようなテーブル構造を使用しています。
親のタイトルを渡すと、すべての子の値を取得しています。
これがコード
<?php <br>
// $parent is the parent of the children we want to see <br>
// $level is increased when we go deeper into the tree, <br>
// used to display a nice indented tree <br>
function display_children($parent, $level) { <br>
// retrieve all children of $parent <br>
$result = mysql_query('SELECT title FROM tree '. <br>
'WHERE parent="'.$parent.'";'); <br>
<br>
// display each child <br>
while ($row = mysql_fetch_array($result)) { <br>
// indent and display the title of this child <br>
echo str_repeat(' ',$level).$row['title']."\n"; <br>
<br>
// call this function again to display this <br>
// child's children <br>
display_children($row['title'], $level+1); <br>
} <br>
} <br>
?>
私が通過するとき、私はdisplay_children('',0);
得る
Food<br>
Fruit<br>
Red<br>
Cherry<br>
Yellow<br>
Banana<br>
Meat<br>
Beef<br>
Pork
「フルーツ」サブツリーを表示するには、次を実行しますdisplay_children('Fruit',0);
- ご覧のとおり、これは再帰関数です。サブレベルが大きくなると、iti は非効率的になり、クエリが非常に遅くなります。
ストアド プロシージャを作成する予定です。効率的だからです。出来ますか ??可能であればサンプルコードを見せてください。よろしくお願いします....