【问题标题】:php mysql query result array and foreach loopphp mysql查询结果数组和foreach循环
【发布时间】: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。

标签: php mysql sql arrays pdo


【解决方案1】:
$ids=array();
while($row = mysql_fetch_object($res)){
ids[]=$row->id;
 }
$ids=array_filter($ids);
/*To remove empty array*/
foreach($ids as $id){
echo $id;
 }

【讨论】:

  • 好的,现在我们如何执行 foreach 循环?在每个客户端 ID 下查找客户端?
  • foreach($ids as $id){}
  • 先定义一个数组变量。然后将每个元素存储在该数组中。然后循环遍历foreach ok
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-23
  • 2015-12-08
  • 1970-01-01
  • 2014-05-14
  • 2015-11-10
  • 1970-01-01
相关资源
最近更新 更多