Ir ao conteúdo
  • Cadastre-se
rogermoreira

RESOLVIDO somar banco de dandos em uma tabela php/mysql

Recommended Posts

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

Compartilhar este post


Link para o post
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           !

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

:wacko: pesquisa paginação sql no google, é que tem que explicar umas paradas é complexo mas você consegui, se não conseguir você volta e mostra o que conseguiu fazer para ajustar. :goff:

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
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;

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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

Compartilhar este post


Link para o post
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>

Compartilhar este post


Link para o post
Compartilhar em outros sites

@xrogerinho

 

Por gentileza poderia me mostrar o conteúdo do conexao.php ?

Compartilhar este post


Link para o post
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); ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×