Ir para conteúdo

Arquivado

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

EvertonNeri

Somar valores de 1 tabela, porem registros diferentes

Recommended Posts

Olá, estou implementando um sistema de referencia, e ele funciona da seguinte forma:

 

Quando alguem se registra com o seu link, é enviado para a database o seguinte:

 $mysql->executarSQL("INSERT INTO kash_referidos (quem_convidou,quanto_ganhou,diamantes,ip_convidado) VALUES ('".$usuario_referido."', '".$config->creditos_por_referido."','".$config->diamantes_por_referido."','".$ip."')")or die(mysql_error());

Ou seja, ele insere na database o nome de quem convidou, quanto de bonus ele ganhou por isso, outro bonus e o ip de quem foi convidado

O problema: estou criando um RANKING de quem mais ganhou, e ai que está o problema.

 

Ele vai inserindo diversos registros, como podem ver a seguir:

BWLTwUP.png

 

Eu consigo fazer o ranking normal com quem tem mais registros, no caso é a conta 'Testandooe' que possui 2, só que ele não soma o total de bonus que ele ganhou, e era isso que eu queria

eu exibo na página desta forma:

        <?php

        $top_referidos = $mysql->executarSQL("SELECT quem_convidou,quanto_ganhou,diamantes,SUM(quanto_ganhou) AS 'qtd' FROM kash_referidos GROUP BY quem_convidou ORDER BY qtd DESC")or die(mysql_error());

        while($tops_referidos = $mysql->fetch($top_referidos)){

        $associa_usuario = $mysql->executarSQL("SELECT * FROM users WHERE username = '".$tops_referidos['quem_convidou']."' LIMIT 1")or die(mysql_error());

        $associa = $mysql->fetch($associa_usuario);

        ?>

        <div class="circulo tooltip" kash_tooltip="<?php echo $tops_referidos['quem_convidou'] . ' lucrou ' . $tops_referidos['quanto_ganhou'] .' moedas e ' . $tops_referidos['diamantes'] . ' diamantes'; ?>" style="float:left;margin:7px;width:70px;height:70px"></div>

        <?php } ?>

e no tooltip mostra o nome de quem está em primeiro, e a soma, porem na soma só mostra o valor do primeiro registro, que seria 100000 bonus e 10 diamantes, e não a soma dos outros registros, entende?

Ele deveria somar na conta 'Testandooe' a quantidade de bonus & diamantes que já foi ganho com as referencias e imprimir na tela

a parte de definir quem tem mais referencias já deu certo, só falta essa bendita soma que eu não consigo fazer de jeito nenhum

 

Por favor ajudem T_T

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia, o problema é que a diamantes tem valores diferentes, então o SQL não consegue agrupar, a não ser que você usar um SUM para essa coluna também, ai vai somar o total de diamantes e o total de quanto_ganhou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi muito bem, pois no SQL atual ele só está mostrando de forma correta o usuário que mais possui referencias, que no caso é o Testandooe, e ele mostra na tela apenas os valores do 1° registro, e não soma com os outros, entende? eu queria que ele soma-se os valores dos outros registros retornando em 1 só

 

@EDIT

Fiz uma alteração no SQL e percebi que ele continua com a mesma funcionabilidade, então deduzi que o SUM não está funcionando..

 

O SQL ficou desta forma agora:

 

 $top_referidos = $mysql->executarSQL("SELECT quem_convidou,quanto_ganhou,diamantes FROM kash_referidos GROUP BY quem_convidou DESC")or die(mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver, era mais facil do que eu pensava '-'

Eu só precisei colocar um AS após o SUM para definir ele, e quando eu exibo no while eu coloco o valor do AS

e não o nome da coluna.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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