Olá pessoal. Estou fazendo um sistema de marketing, onde o mesmo consiste em uma rede de usuários, com 5 níveis. Quero listar número de usuários dos níveis. Por exemplo: Carlos começa no nível 1, Rodrigo cadastrou-se com o link dele, então Carlos vai ter Rodrigo no nível 2. Rodrigo indicou o link para Fernando e Jessica, que se cadastram também, e assim Rodrigo vai ter Fernando e Jessica no nível 2 e Carlos vai ter Rodrigo no nível 2 e Fernando e Jessica no nível 3: Cadastros de Carlos Nível 1: eu mesmo Nível 2: 1 usuário (Rodrigo) Nível 3: 2 usuários (Fernando e Jessica) Cadastros de Rodrigo Nível 1: eu mesmo Nível 2: 2 usuários (Fernando e Jessica) Cadastros de Fernando Nível 1: eu mesmo Cadastros de Jessica Nível 1: eu mesmo Fiz da seguinte forma, aparentemente funcionou, porém quando tem mais um registro mostrou só o primeiro. Acredito que seja um erro no código, podem me ajudar? $stmt = $conn->prepare('SELECT * FROM usuarios WHERE id_indicado = :id_indicado');
$stmt->execute(array('id_indicado' => $p1));
$result = $stmt->fetchAll();
$niveis[0] = count($result);
for ($i = 0; $i < count($result); $i++) {
$stmt1 = $conn->prepare('SELECT * FROM usuarios WHERE id_indicado = :id_indicado');
$stmt1->execute(array('id_indicado' => $result[$i]['id']));
$result1 = $stmt1->fetchAll();
$niveis[1] = count($result1);
}
for ($i = 0; $i < count($result1); $i++) {
$stmt2 = $conn->prepare('SELECT * FROM usuarios WHERE id_indicado = :id_indicado');
$stmt2->execute(array('id_indicado' => $result1[$i]['id']));
$result2 = $stmt2->fetchAll();
$niveis[2] = count($result2);
}
for ($i = 0; $i < count($result2); $i++) {
$stmt3 = $conn->prepare('SELECT * FROM usuarios WHERE id_indicado = :id_indicado');
$stmt3->execute(array('id_indicado' => $result2[$i]['id']));
$result3 = $stmt3->fetchAll();
$niveis[3] = count($result3);
}
return $niveis;Ele está retornando assim: array (size=4) 0 => int 1 1 => int 2 2 => int 1 3 => int 0 O correto é o nível 2 receber 2 também. Obrigado.