Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lucianfpaula

[Resolvido] Estrutura de um projeto de Marketing MultiNível com php e mysql

Recommended Posts

Ola Matheus Tavares, ótimo seu código. 

 

Só poderia me dar uma orientação caso possível..

 

Vi nos resultados que ele iniciar pelo root - id 1

 

Como eu poderia fazer para iniciar a partir de um usuário especifico, por exemplo o 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @spitaletti. Seja bem-vindo.

 

O sistema é bem eficiente e você poderia navegar entre os usuários que você precisa acessar. Você pode trazer todos em memória e depois utilizar os métodos da classe para navegar aplicando certos limites de acordo com as suas necessidades.

Mas, claro, em um certo nível, isso iria requerer alguns cuidados. Uma linguagem que iria trabalhar muito bem com esse modelo é o JS/Node, pois você consegue trazer e processar os dados de forma assíncrona.

 

Dito isso, caso você queira apenas trazer os dados de um usuário e seus nós-filhos, tenha em mente que o primeiro usuário a ser inserido na árvore deve ser a sua raíz (não estou falando necessariamente do #1, estou falando da raíz relativa, no seu caso o #3).

 

Um exemplo de alteração para suprir essa necessidade seria apenas alterando a consulta para carregar a partir do ID que você deseja. Exemplo:

$query = 'SELECT `id`, `nome`, `indicador` FROM `usuarios` WHERE `id` >= 3 ORDER BY `indicador` ASC, `id` ASC';

Resultado:

╔═► #3 (Mais um da raíz)
╠════╦═► #5 (Indicado pelo 3)
╠════╬═════► #6 (Indicado pelo 5)
╠════╬═► #7 (Indicado pelo 3)
╠════╬═► #8 (Indicado pelo 3)
╠════╬═► #9 (Indicado pelo 3)
╠════╬════╦═► #10 (Indicado pelo 9)
╠════╬════╬═► #11 (Indicado pelo 9)
╚════╩════╩═════► #12 (Indicado pelo 11)

Outro exemplo (com o 9):

$query = 'SELECT `id`, `nome`, `indicador` FROM `usuarios` WHERE `id` >= 9 ORDER BY `indicador` ASC, `id` ASC';

Resultado:

╔═► #9 (Indicado pelo 3)
╠════╦═► #10 (Indicado pelo 9)
╠════╬═► #11 (Indicado pelo 9)
╚════╩═════► #12 (Indicado pelo 11)

 

O único porém dessa solução é que você está carregando todos os usuários do banco (a partir do ID desejado) desnecessariamente.

Talvez fosse interessante ajustar a consulta para que sejam selecionados apenas os itens úteis para nós (no último exemplo, apenas o 9, 10, 11 e 12), mas isso não é um requisito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa Valeu.. Obrigado pela explicação e parabéns pelo código..

 

Outra coisa.. meu codigo esta me retornando esse erro abaixo...

 

Notice: Undefined index: id in /home/***********/public_html/php/index.php on line 13

Notice: Trying to get property of non-object in /home/natrilhadapesca/***********/php/Mmn/DataStructures/OneParentMultipleChildren/Node.php on line 68

Notice: Trying to get property of non-object in /home/***********/public_html/php/Mmn/DataStructures/OneParentMultipleChildren/Node.php on line 68

Notice: Trying to get property of non-object in /home/***********/public_html/php/Mmn/DataStructures/OneParentMultipleChildren/Node.php on line 68

Notice: Trying to get property of non-object in /home/***********/public_html/php/Mmn/DataStructures/OneParentMultipleChildren/Node.php on line 68

Notice: Trying to get property of non-object in /home/***********/public_html/php/Mmn/DataStructures/OneParentMultipleChildren/Node.php on line 68

Notice: Trying to get property of non-object in /home/natrilhadapesca/public_html/php/Mmn/DataStructures/OneParentMultipleChildren/Node.php on line 68

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 24/02/2018 at 10:02, spitaletti disse:

Outra coisa.. meu codigo esta me retornando esse erro abaixo...

 

Notice: Undefined index: id in /home/***********/public_html/php/index.php on line 13

Olá!

Esse erro está relacionado ao seu código e não à biblioteca. Por isso, peço que crie um novo tópico caso ainda esteja com dificuldades.

 

Os erros na sequência estão ocorrendo por reação em cadeia.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 19/01/2018 at 00:09, Cabelaravel Capilaravel disse:

Parabéns @MatheusTavares muito bom o código, creio que vou utilizar num sistema em Laravel... Consegui rodar, mas não consegui utilizar o model do laravel pois ele estende o model eloquent... estou fazendo num objeto paralelo para funcionar. Será que é possível utilizar no model do laravel?

Não consegui rodar no php, tem como ver como você fez?

Compartilhar este post


Link para o post
Compartilhar em outros sites
18 horas atrás, cpdrenato disse:

Não consegui rodar no php, tem como ver como você fez?

Olá @cpdrenato, seja bem-vindo!

 

Você precisa:

1 - Salvar os arquivos exatamente como nomeados no post (inclusive a estrutura de diretórios).

2 - Rodar no PHP 7 pra cima. Para ver a versão do seu php e outras informações, você pode criar um arquivo com esse conteúdo: "<?php phpinfo();".

3 - Configurar seu banco de dados (conexão e estrutura de tabelas, conforme exemplificado no post).

 

Depois de fazer isso, se ainda não tiver rodando, poste exatamente os erros que aparecem pra você.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Tudo bem pessoal?
       
      No código abaixo, estou fazendo uma consulta nas tabelas, banners e banners_referencia
      Meu objetivo é trazer resultados com valores iguais ao nome da cidade declarada na $cidade ou resultados com a referencia Total.
      O problema é que está trazendo todos os resultados. Tenho 10 linhas, 1 com o nome da cidade e duas com o valor Total, então o resultado teria que ser de apenas 3 linhas, mas mostra tudo.
       
      $banner = "SELECT A.*, B.* FROM banners A, banners_referencia B WHERE B.cod_referencia = A.cod_referencia AND A.cidade = '$cidade' OR B.referencia = 'Total' ORDER BY RAND()";
      $banner = mysqli_query($conexao, $banner) or die ("Banner não encontrado");
      while($busca= mysqli_fetch_array($banner)){
          print $busca['cidade'].'<br>';
      };
       
      Alguém consegue me ajudar?
    • Por Rafael_Ferreira
      Não consigo carregar a imagem do captcha do meu formulário. Foi testado com o xampp e easyphp. Também não carregou a imagem de outros captcha. 
       
       
    • Por luiz monteiro
      Olá, tudo bem?
       
      Estou melhorando meu conhecimento em php e mysql e, me deparei com o seguinte. A tabela da base de dados tem um campo do tipo varchar(8) o qual armazena números. Eu não posso alterar o tipo desse campo. O que preciso é fazer um select para retornar o números que contenham zeros a direita ou a esquerda.
      O que tentei até agora
       
      Ex1
      $busca = $conexao->prepare("select campo form tabela where (campo = :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form']);
       
      Se a direita da string $_REQUEST['campo_form'] termina ou inicia com zero ou zeros, a busca retorna vazio.
      Inseri dados numéricos, da seguinte maneira para testar: 01234567;  12345670: 12345678: 12340000... entre outros nessa coluna. Todos os valores que não terminam ou não iniciam com zero ou zeros, o select funciona.
       
       
      Ex2
      $busca = $conexao->prepare("select campo form tabela where (campo = 0340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex3
      $busca = $conexao->prepare("select campo form tabela where (campo = '02340001' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex4
      $busca = $conexao->prepare("select campo form tabela where (campo like 2340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex5
      $busca = $conexao->prepare("select campo form tabela where (campo like '12340000') ");
      Esse número está cadastrado, mas não retorna.
       
      Ex6
      $busca = $conexao->prepare("select campo form tabela where (campo like '"12340000"' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex7
      $busca = $conexao->prepare("select campo form tabela where (campo like :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form'])
      Não retorna dados.
       
      O  $_REQUEST['campo_form'] é envio via AJAX de um formulário. 
      Usei o gettype para verificar o post, e ele retorna string.
      Fiz uma busca com número 12345678 para verificar o que o select retorna, e também retrona como string.
       
      Esse tipo de varchar foi usado porque os números que serão gravados nesse campo,  terão zeros a direita ou na esquerda. Os tipos number do mysql não gravam zeros, então estou usando esse. O problema é a busca.
      Agradeço desde já.
       
       
    • Por daemon
      Boa tarde,
       
      Eu tenho uma rotina que faz uma leitura do arquivo .xml de vários sites.

      Eu consigo pegar o tópico e a descrição, e mostrar a imagem que esta na pagina do link.
      Para isso utilizo esta função:
      function getPreviewImage($url) { // Obter o conteúdo da página $html = file_get_contents($url); // Criar um novo objeto DOMDocument $doc = new DOMDocument(); @$doc->loadHTML($html); // Procurar pela tag meta og:image $tags = $doc->getElementsByTagName('meta'); foreach ($tags as $tag) { if ($tag->getAttribute('property') == 'og:image') { return $tag->getAttribute('content'); } } // Se não encontrar og:image, procurar pela primeira imagem na página $tags = $doc->getElementsByTagName('img'); if ($tags->length > 0) { return $tags->item(0)->getAttribute('src'); } // Se não encontrar nenhuma imagem, retornar null return null; } // Uso: $url = "https://example.com/article"; $imageUrl = getPreviewImage($url); if ($imageUrl) { echo "<img src='$imageUrl' alt='Preview'>"; } else { echo "Nenhuma imagem encontrada"; }  
      Mas estou com um problema, esta funcão funciona quando coloco em uma pagina de teste.php. Preciso mostrar em uma página inicial diversas fotos de todos os links. (No caso acima só funciona 1).
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.