Ir ao conteúdo
  • Cadastre-se

somar banco de dandos em uma tabela php/mysql


Ir à solução Resolvido por DiF,

Posts recomendados

Olá feras

 

tenho mais um probleminha para buscar ajuda

 

precisaria somar meu banco de dados e colocar o resultado em uma tabelinha para ficar organizado;

 

tenho o seguinte codigo que soma, só falta enviar o resultado para uma tabela:

 

================================================================================================

    if(isset($_POST['ok'])){   $i = mysql_real_escape_string($_POST['igreja']);   $p = mysql_real_escape_string($_POST['per']);   mysql_select_db($database_conexao, $conexao);$soma = "SELECT *, SUM(valor) AS soma FROM lancamentos WHERE igreja = '$i' AND periodo = '$p' GROUP BY tipo";$resultado = mysql_query($soma);while ($total = mysql_fetch_assoc($resultado)) {echo $total['soma'];}}
 
==================================================================================================
esse código funciona mas preciso enviar o resultado para uma tabelinha
Link para o comentário
Compartilhar em outros sites

essa formula que postei soma os dados de acordo com o pedido, mas mostra os numeros todos misturados na tela

 

preciso que me mostre os resultados em um quadro bonitinho, separando os resultados, por exemplo:

 

+--------------------------------------------------------+

! categoria A    ! Categoria B     ! Categoria C ! 

----------------------------------------------------------

!  100,00          !  50,00           !  200,00           !

+--------------------------------------------------------+

Link para o comentário
Compartilhar em outros sites

  • Moderador

@xrogerinho,

 

Qual a dificuldade? 

Crie uma tabela em html.. estilize em css... e jogue os dados vindo da consulta ali. 

Sem mistérios.

 

Se quiser ainda podes criar uma VIEW com a sua consulta para facilitar a consulta e retorno dos dados.

 

Por exemplo:

CREATE VIEW somaAS   SELECT *, SUM(valor) AS soma FROM lancamentos 

Para usar seria só fazer a consulta:  

SELECT * FROM soma WHERE igreja = '$i' AND periodo = '$p'GROUP BY tipo

pois você já definiu tudo na criação da view

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

        <?php        mysql_select_db($database_conexao, $conexao);	        $soma = "SELECT *, SUM(valor) AS soma FROM lancamentos WHERE periodo = '$p' GROUP BY 'tipo'";	$resultado = mysql_query($soma);	while ($total = mysql_fetch_assoc($resultado)) {	echo $total['soma'];	} 	?>

montei o codigo assim dentro do forulario mas ele só totaliza

Link para o comentário
Compartilhar em outros sites

  • Moderador

Porque você só colocou um echo no total.

 

se quiser mostrar o resto dos dados precisa acrescentar ali por exemplo:

while ($dados = mysql_fetch_object($resultado)):     echo "           $dados->soma           $dados->nome           $dados->periodo";endwhile;

Veja que além da soma, tem nome.. periodo...  e etc estes seriam os campos da sua tabela.

Tudo que você quer mostrar com dentro do loop, precisa ser declarado

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

    Desculpe a ingenuidade;

    acrescentei o codigo, porém está dando um erro assim:  Notice: Undefined property: stdClass::$tipo in C:\wamp\www\adregistrobelem\movimento6.php

    na variavel tipo e periodo;

    mas continua somando o total da tabela no periodo que seleciono:

    estou usando os campos: valor, tipo, periodo da minha tabela

    e estou tentando classificar por tipo

    devo ter somente colocado o codigo de forma errada:

            mysql_select_db($database_conexao, $conexao);
$soma = "SELECT SUM(valor) AS soma FROM lancamentos WHERE periodo = '$p' GROUP BY 'tipo'";$resultado = mysql_query($soma);while ($dados = mysql_fetch_object($resultado)):     echo "           $dados->soma           $dados->tipo           $dados->periodo";  endwhile;
Link para o comentário
Compartilhar em outros sites

  • Moderador

Bom, não disse para você copiar o código que eu postei, era só um mero exemplo.

Você precisa entender como funciona apenas.

 

Sugiro que não faça do jeito que fiz.. pois só vai te embaralhar.  Eu uso o metodo de tratar os dados como objeto. 

 

Ainda não captei o espírito da dúvida mas seria algo parecido com isso?  http://sqlfiddle.com/#!9/5a958/10/0

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Olá mestre @dif !!!

 

o que eu estou precisando é bem simples, mas eu não sei formular os códigos para fazer a operação.

 

eu só preciso somar os itens da minha tabela agrupado por item, por exemplo

 

 vendas do mês:  arroz 200,00 /  feijão 150,00 /  açúcar 100,00

 

a formula que montei somente soma o total das vendas do periodo mas eu preciso separar por item

 

é basicamente o que você postou no tópico #5 mas nao sei colocar na ordem dentro da tag php para mostrar na pagina html

 

só lembrando que meu conhecimento de programação é "zero" rsrsrs

Link para o comentário
Compartilhar em outros sites

  • Moderador
  • Solução

@xrogerinho,

 

você quer fazer um balanço.. nesse caso a tabela precisa ter o item e o valor do item... o resto você faz na instrução SQL e na linguagem de programação para estilizar em uma tabela.

 

Veja um exemplo: http://sqlfiddle.com/#!9/2e082/7/0

 

A instrução SQL usada foi:

SELECT produto,        count(*) as qtd,        sum(valor) as totalFROM ballanceGROUP BY produtoORDER BY total DESC 

Explicação:

LInhas 1 a 4, itens da consulta, no caso produtos, uma contagem geral nomeada para qtd e a soma dos valores

LInha 5, Agrupamos pelo nome do produto

Na linha 6, Ordenamos pelo total, o nome total foi dada a função sum() na linha 3

 

Isso retorna, como você pode ver no link do exemplo, o nome do produto, a quantidade de cada um e o total deles. Note que se você quer fazer uma relação por dia/mes/ano  aí precisa ter um campo do tipo DATE, para você filtrar os dados por intervalo de tempo.

 

Agora na parte back-end e front-end:

 

Digamos que você quer apresentar os dados em uma tabela:

<table class="tabela"><th>Produto</th><th>QTD</th><th>Total</th><?php   include 'conexao.php';   $consulta = mysqli_query('SELECT produto,                                     count(*) as qtd,                                     sum(valor) as total                             FROM ballance                             GROUP BY produto                             ORDER BY total DESC', $conexao);   while($ballance = mysqli_fetch_object($consulta)):        echo"             <tr>                <td>$ballance->produto<td>                <td>$ballance->qtd<td>                  <td>$ballance->total<td>             </tr> ";    endwhile;?></table>

Explicação:

Das linhas 1 a 4, Construção da tabela e seus headers.

Linha 6, inclusão da conexão com o banco de dados.

Linhas 7 a 12, Instrução de consulta SQL

Linha 14 e 21, Laço de while.

Linhas 15 a 20, mostra em tela o valor dos campos selecionados na instrução SQL

 

Seria basicamente isso.

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Amigo @dif, está acontecendo esses erros:

o único detalhe é que eu tirei a opção de contagem

 

então ficou assim:

<table class="tabela"><th>Produto</th><th>Total</th><?php   include 'conexao.php';   $consulta = mysqli_query('SELECT setor,                              SUM(valor) as total                             FROM lancamentos                             GROUP BY setor                             ORDER BY total DESC', $conexao);   while($lancamentos = mysqli_fetch_object($consulta)):        echo"             <tr>                <td>$lancamentos->setor<td>                <td>$lancamentos->total<td>             </tr> ";    endwhile;?></table>
Warning: mysqli_query() expects parameter 1 to be mysqli, string given in /home/meusite/public_html/balanco.php on line 11Warning: mysqli_fetch_object() expects parameter 1 to be mysqli_result, null given in /home/meusite/public_html/balanco.php on line 13
Link para o comentário
Compartilhar em outros sites

  • Moderador

@xrogerinho

 

acho que cometi um equivoco. 

Na linha da consulta,  inverti a ordem por um descuido.

Deixe assim:

 $consulta = mysqli_query($conexao, 'SELECT setor,                                             SUM(valor) as total                                    FROM lancamentos                                    GROUP BY setor                                    ORDER BY total DESC');

Veja que só alterei a ordem da variável conexão com a consulta..acho que é isso que deu erro no seu código.. o resto ta certo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

permanece o erro...

estou substituindo os dados do site nas linhas só para nao tornar publico rsrsrs

 

Warning: mysqli_query() expects parameter 1 to be mysqli, resource given in /meusite/.../meuform.php  on line 11

Warning: mysqli_fetch_object() expects parameter 1 to be mysqli_result, null given in /meusite/.../meuform.php on line 13

<table class="tabela"><th>Setor</th><th>Total</th><?phpinclude 'conexao.php';       $consulta = mysqli_query($conexao, 'SELECT setor,                       sum(valor) as total                      FROM lancamentos                      GROUP BY setor');    while($lancamentos = mysqli_fetch_object($consulta)):        echo"             <tr>                <td>$lancamentos->setor<td>                <td>$lancamentos->total<td>             </tr> ";    endwhile;?></table>
Link para o comentário
Compartilhar em outros sites

claro @dif!

 

só tirei os dados do servidor para não tornar publico, ok?

<?php# FileName="Connection_php_mysql.htm"# Type="MYSQL"# HTTP="true"$hostname_conexao = "mysql.hostinger.com.br";$database_conexao = "xxxxxxxxxxxxxxx";$username_conexao = "xxxxxxxxxxxxxxx";$password_conexao = "xxxxxxxxxxxxxxx";$conexao = @mysql_pconnect($hostname_conexao, $username_conexao, $password_conexao) or trigger_error(mysql_error(),E_USER_ERROR); ?>
Link para o comentário
Compartilhar em outros sites

  • Moderador

@xrogerinho

Os dados substituidos não tem problema .., mas  a forma de como está fazendo, sim.

 

Então,  acho que esse é o problema. você está conectando pelo mysql, mas no código você utiliza o mysqli

 

Recomendo,  usar o mysqli mesmo, é o novo jeito.

 

Deixe assim:

<?php# FileName="Connection_php_mysql.htm"# Type="MYSQL"# HTTP="true"$hostname_conexao = "mysql.hostinger.com.br";$database_conexao = "xxxxxxxxxxxxxxx";$username_conexao = "xxxxxxxxxxxxxxx";$password_conexao = "xxxxxxxxxxxxxxx";$conexao = mysqli_connect($hostname_conexao, $username_conexao, $password_conexao, $database_conexao); 

Para que o mysqli funcione, precisas iniciar a conexao usando ele. 

Digo isso, porque a extensão mysql é antiga e obsoleta. Provavelmente ela vai ser retirada do php.

 

Por isso o php criou a extensão  MySQLi que suporta orientação a objetos e permitir que seja desenvolvida na mesma sintaxe da anterior, diferente da extensão PDO, que é apenas orientada a objetos( precisa de instâncias dos objetos)

 

PS: uma dica que posso te dar é, quando puder não utilizar a tag de fechamento do php..  faça. 

Isso permite encerrar o programa caso tenha algo errado na sintaxe. Um exemplo de onde fazer isso? No arquivo de conexão com o banco de dados "conexao.php" 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...