Php 在选择查询中需要帮助吗
下面是我的数据库表数据Php 在选择查询中需要帮助吗,php,mysql,arrays,Php,Mysql,Arrays,下面是我的数据库表数据 id name manager_id hr_id 1 abc 0 0 20 abc1 22 21 21 abc2 22 1 22 abc3 1 1 31 abc4 20 21 32 abc5 20
id name manager_id hr_id
1 abc 0 0
20 abc1 22 21
21 abc2 22 1
22 abc3 1 1
31 abc4 20 21
32 abc5 20 21
function get_child_users($id){
global $mysqli;
$q ="SELECT * FROM users where manager_id ='$id' or hr_id ='$id'";
$sql = $mysqli->query($q);
echo '<ul>';
$count = $sql->num_rows;
if($count > 0 ){
while($row = $sql->fetch_array()){
echo '<li id='.$row['id'].'>'.$row['username'].'';
echo'</li>';
}
echo '</ul>';
}
}
id姓名经理\u id人力资源\u id
1 abc 0 0
20 abc1 22 21
21 abc2 22 1
22 abc3 1
31 abc4 20 21
32 abc5 20 21
函数get\u child\u users($id){
全球$mysqli;
$q=“从manager_id='$id'或hr_id='$id'的用户中选择*;
$sql=$mysqli->query($q);
回声“”;
$count=$sql->num\u行;
如果($count>0){
而($row=$sql->fetch_array()){
回显“- ”.$row['username'.”;
回音“
”;
}
回声“
”;
}
}
上面是我正在创建的函数
我只是想获取数据,所以如果
管理员用户(具有管理员的管理员id或hr id)
如果有用户。假设它返回2个用户
然后(检查这些用户下的用户)…依此类推
最后成为一个显示用户层次结构的树。您只需先对其进行解码,然后获得所需的任何值,如:
$decoded_json = json_decode($json);
print_r($decoded_json->person->names[0]);
echo $decoded_json->person->names[0]->first;
如果需要循环每个人名,例如:
foreach ($decoded_json->person->names as $key => $each_person_name) {
echo $each_person_name->first . '<br>';
}
foreach($decoded\u json->person->names as$key=>$each\u person\u name){
echo$each_person_name->first.“
”;
}
您的json格式有点奇怪。解决了这个问题
function get_child_users($id){
global $mysqli;
$q ="SELECT * FROM users where manager_id ='$id' or hr_id ='$id'";
$sql = $mysqli->query($q);
$count = $sql->num_rows;
if($count > 0 ){
echo '<ul>';
while($row = $sql->fetch_array()){
echo '<li id='.$row['id'].'>'.$row['username'].'';
get_child_users($row['id']);
echo'</li>';
}
echo '</ul>';
}
}
函数获取子用户($id){
全球$mysqli;
$q=“从manager_id='$id'或hr_id='$id'的用户中选择*;
$sql=$mysqli->query($q);
$count=$sql->num\u行;
如果($count>0){
回声“”;
而($row=$sql->fetch_array()){
回显“- ”.$row['username'.”;
获取子用户($row['id']);
回音“
”;
}
回声“
”;
}
}
Try:$array=json\u decode($josn,ture)
和print\r($array[1])编码>解码你的json,打印(json解码($json)->个人)代码>我需要循环每个人的姓名、用户名、性别等。。它类似于这样的foreach($person as$person){$person['names'][0],$person['email'][0],$person['username'][0]}这正是我需要的。因此,每个第一个元素或每个数组都是一个完美的记录。希望您能得到它。是的,但问题是您的JSON格式,它不允许您一次性循环这些人,因为数组嵌套在person的属性中。。所以,您需要做的是为每个值分离循环。。以上示例仅用于名称,但对于电子邮件和其他邮件应相同。。。