Ir para conteúdo
Fórum Script Brasil
  • 0

Problema em obter valores MySql


free4k

Pergunta

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.

Snap_2015.09.26_13h43m15s_002_.png

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...