PHP - Función recursiva

 
Vista:
sin imagen de perfil
Val: 16
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Función recursiva

Publicado por efren (25 intervenciones) el 05/11/2018 00:47:56
Hola amigos escribo por aquí buscando ayuda. Estoy liado con esto:

Tengo una base de datos con los campos
ID
ID_padre
usuario

Es un sistema de usuarios, donde el id es el auto incremento y ID_padre es el id del usuario padre.

Ejemplo:
Pedro es padre de Juan. Entonces Juan va a tener el id de Pedro en el campo ID_padre

Quiero poder obtener los IDs de los hijos de cada padre.

Por ejemplo
Si Pedro solo tiene como hijo a Juan. Pues quiero obtener el ID de Juan.

Eso lo logro con esta:

1
2
$idpadre =1;
$db->query("SELECT ID FROM members WHERE ID_padre=".$idpadre)

Eso con un while me devuelve los IDs de los hijos del $idpadre 1.

Pero quiero es que el sistema consulte todos los usuarios y obtenga los id de los hijos de cada usuario

Por ejemplo si el idpadre 1 tiene como hijo al id 2, 4, 8
Quiero poder hacer que busques los hijos del id 2 y luego los del id 4 y así sucesivamente hasta que ya no haya más usuarios que recorrer.


Si alguien sabe como lograr esto por favor.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 16
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Función recursiva

Publicado por efren (25 intervenciones) el 05/11/2018 19:49:41
Hola amigo gracias por responder pero no me sirve ya que es solo una tabla (members)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Pedro J. Cabrera
Val: 17
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Función recursiva

Publicado por Pedro J. Cabrera (6 intervenciones) el 12/11/2018 11:28:34
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
 
$conexion = mysqli_connect($servername, $username, $password, $dbname);
 
// Obtenemos una relación de padres sin repetir
$queryPadres ="SELECT DISTINCT ID_padre FROM members";
$listaPadres = mysqli_query($conexion,$queryPadres);
//
 
//
// Por cada padre
while($padre = mysqli_fetch_assoc($listaPadres)) {
    // Obtenemos una relación de hijos
    $idPadre = $padre['ID_padre'];
    $queryHijos = "SELECT ID FROM members WHERE ID_padre = '".$ID_padre."'";
    $listaHijos = mysqli_query($conexion,$queryHijos);
    // y en cada hijo
    while($hijo = mysqli_fetch_assoc($listaHijos)) {
        // Obtenemos su ID
        echo $hijo['ID']. "<br>";
    }
}
 
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Pedro J. Cabrera
Val: 17
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Función recursiva

Publicado por Pedro J. Cabrera (6 intervenciones) el 12/11/2018 11:29:45
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
 
$conexion = mysqli_connect($servername, $username, $password, $dbname);
 
// Obtenemos una relación de padres sin repetir
$queryPadres ="SELECT DISTINCT ID_padre FROM members";
$listaPadres = mysqli_query($conexion,$queryPadres);
//
 
// 
// Por cada padre
while($padre = mysqli_fetch_assoc($listaPadres)) {
    // Obtenemos una relación de hijos
    $idPadre = $padre['ID_padre'];
    $queryHijos = "SELECT ID FROM members WHERE ID_padre = '".$ID_padre."'";
    $listaHijos = mysqli_query($conexion,$queryHijos);
    // y en cada hijo	
    while($hijo = mysqli_fetch_assoc($listaHijos)) {
        // Obtenemos su ID	
        echo $hijo['ID']. "<br>";
    }
}
 
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar