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
Pergunta
free4k
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?
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.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.