ホームページ  >  記事  >  バックエンド開発  >  再帰的にクエリを実行するにはどうすればよいですか?

再帰的にクエリを実行するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-23 13:12:23973ブラウズ

私のデータベーステーブル名は 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);

ありがとうございます、関数を使用する必要があります、勉強して覚えます。 はい、再帰とは、関数が自分自身を呼び出すことを意味します
二人のマスター、ありがとう!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。