> 백엔드 개발 > PHP 튜토리얼 > 如何递归查询?

如何递归查询?

WBOY
풀어 주다: 2016-06-23 13:12:23
원래의
1025명이 탐색했습니다.

我的数据库表名为aaa,内容如下。我如何递归查询父节点?

USER PUSER
16   
24             16
19            16
21             24
32           19

如查32:则查出: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);
$row=mysql_fetch_row($result);


回复讨论(解决方案)

你都知道要递归查询了,那你怎么没去做呢?
大致这样

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;}
로그인 후 복사


一直搜寻,直到puser为空

$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);
로그인 후 복사

谢谢两位大神,这还是要用function的啊,我研究学习一下,谢谢两位大神。

对呀,递归就是函数自己调用自己

谢谢两位大神!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿