【发布时间】:2014-01-08 09:12:11
【问题描述】:
任何人都知道如何执行以下操作:
我有以下 mysql 查询:
客户端 1026 下有两个客户端:1056(左侧)和 1497(右侧) 并且客户端 1056 和客户端 1497 下都有另外两个客户端,以此类推
现在我想做一个循环来收集客户端1026下的所有客户端
我有这个mysql查询
$sql_query="select id from rev_r_clients WHERE parent_client_id='1026'";
$res = mysql_query($sql_query);
$ids=array();
while($row = mysql_fetch_object($res)){
$ids[]=$row->id;
}
$ids=array_filter($ids);
foreach($ids as $id){
echo $id;
echo '<br>';
$sql_query="select id from rev_r_clients WHERE parent_client_id='$id'";
$res = mysql_query($sql_query);
$ids=array();
while($row = mysql_fetch_object($res)){
$ids[]=$row->id;
}
$ids=array_filter($ids);
foreach($ids as $id){
echo $id;
}
}
返回
1056
106410801497
15051521
现在我怎样才能让这个查询得到数组结果(比如 1056,1497 )然后使用 foreach 循环来获取结果和结果的结果等等。直到没有更多的结果?
你可以使用 mysql , mysqli , PDO 我想要的只是完成请求
【问题讨论】:
-
那你为什么不使用
mysql_fetch_array()? -
@EisaAdil - mysql_fetch_object 有什么问题?
-
如果你有一个任意深的树,那么我能想到的唯一方法就是通过递归——你需要得到一个客户的子客户;然后检查其中任何一个是否有自己的子客户端,依此类推。
-
andrewsi,怎么做:D?
-
@user3117183 - 标准方法是创建一个以客户端 ID 作为参数的函数;查询该客户端的子客户端。如果有的话,它会调用自己,依次传入每个子客户端的ID。