Jump to content
Fórum Script Brasil
  • 0

Problema em obter valores MySql


free4k
 Share

Question

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 to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...