11closed 0 Denunciar post Postado Outubro 15, 2014 olá pessoal, estou com uma duvida, não sei como devo fazer para somar varios valores em uma tabela... vou explicar a tabela é assim ID------- ID_INDIC 1--------- 0 2--------- 1 3--------- 1 4--------- 2 5--------- 3 6--------- 1 7--------- 2 8--------- 5 9--------- 8 10--------9 11--------10 o script se trata de um sistema de afiliados, onde o ID_INDIC mostra os indicados de tals ID, o que eu gostaria de fazer é SOMAR a quantidade de afiliados que tal usuario tem em até 5 niveis de profundidade... no caso do exemplo acima o usuario do ID 1 tem; em seu nivel 1 = 3 indicados em seu nivel 2 = 3 indicados que são os indicados do ID 2, 3 e 6 porem o 6 não tem ninguem em seu nivel 3 = 1 indicado que é indicado do ID 5 em seu nivel 4 = 1 indicado que é indicado do ID 8 em seu nivel 5 = 1 indicado que é indicado do ID 9 o resultado final seria = 9 pessoas, alguem pode me ajudar, qual é a melhor maneira para fazer esse script ? Compartilhar este post Link para o post Compartilhar em outros sites
Labroskas 0 Denunciar post Postado Outubro 15, 2014 Olá, SELECT ID_Indic, Count(ID_Indic) As Soma FROM Tabela Group By ID_Indic Não percebi bem se era isso que querias, mas se ajudar é fixe. cumps Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 15, 2014 http://explainextended.com/2009/03/17/hierarchical-queries-in-mysql/ http://stackoverflow.com/questions/7631048/connect-by-prior-equivalent-for-mysql No Oracle isto se resolve com um "connect by" achei estes tópicos para Mysql. Compartilhar este post Link para o post Compartilhar em outros sites
11closed 0 Denunciar post Postado Outubro 15, 2014 amigo, estou tentando aq do jeito que falou, mas não esta retornando o valor que eu quero, algo esta errado rsrs :) vou explicar, aq meu BD esta assim ID------- ID_INDIC 1--------- 0 2--------- 1 3--------- 1 16--------- 1 18--------- 2 19--------- 18 20--------- 19 21--------- 20 22--------- 21 23--------2 24--------3 25--------20 dessa forma no; nivel 0 tem o ID: 1 nivel 1 tem o ID: 2, 3, 16 nivel 2 tem o ID: 18, 23, 24 nivel 3 tem o ID: 19 nivel 4 tem o ID: 20 nivel 5 tem o ID: 21 nivel 6 tem o ID: 22 O valor que esta me retornando é o "8" o certo seria me retornar o "9" pois é a quantidade que tem na rede do ID 1 entre os 5 niveis, .... codigo try { $sql4 = $con->prepare(" SELECT ID_INDICACAO, Count(ID_INDICACAO) As Soma FROM $tabela3 Group By ID_INDICACAO "); $sql4->execute(); $res4 = $sql4->fetchAll(PDO::FETCH_OBJ); $total_1 = count( $res4 ); echo "<br>tem que ser 9 = ".$total_1;} catch(PODException $e4) { echo "Erro:/n".$e4->getMessage();} teria que tb determinar aonde inicia a soma, no caso inicia a partir da $id de tal usuario.... Compartilhar este post Link para o post Compartilhar em outros sites