ホームページ >バックエンド開発 >PHPチュートリアル >再帰的にクエリを実行するにはどうすればよいですか?
私のデータベーステーブル名は aaa で、内容は次のとおりです。親ノードを再帰的にクエリするにはどうすればよいですか?
USER PUSER
16
24 16
19 16
21 24
32 19
2: それから調べてください: 32 19 と 16 はどこですか?これは私が書いたものですが、うまくいかないようです。どのように書けばよいでしょうか?
$result=mysql_query("select * from `aaa` where user='32' Union all
select h.*,h1. from `aaa` h join result h1 on h.user=h1.Puser",$link :なぜやらなかったのですか?
おおよそこんな感じです
function foo($id) { $res = array(); $rs = mysql_query("select * from aaa where user='$id'"); if($row = mysql_fetch_assoc($rs)) { $res[] = $row; $res = array_merge($res, foo($row['puser'])); } return $res;}
ユーザーが空になるまで検索を続けてください
$ids = array();function getuser($user){ global $ids; $result=mysql_query("select * from `aaa` where user='".$user."'",$link); $data=mysql_fetch_assoc($result); if($data['puser']!=''){ $ids[] = $user; getuser($data['puser']); }}getuser(32);print_r($ids);
ありがとうございます、関数を使用する必要があります、勉強して覚えます。 はい、再帰とは、関数が自分自身を呼び出すことを意味します