Ir para conteúdo

POWERED BY:

Arquivado

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

Ana Paula JiPr

somar valores de uma coluna por dia de um período informado no MYSQL

Recommended Posts

Estou fazendo um fluxo de caixa e eu tenho q efetuar a soma de cada dia do periodo informado..

exemplo:

o usuário fez as seguintes movimentações:

 

OPERAÇÃO | VALOR | DIA DA MOVIMENTAÇÃO

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

DÉBITO | 15,00 | 01/01/2011

DÉBITO | 55,00 | 01/01/2011

DÉBITO | 10,00 | 01/01/2011

CRÉDITO | 25,00 | 01/01/2011

DÉBITO | 35,00 | 01/01/2011

CRÉDITO | 55,00 | 01/01/2011

DÉBITO | 85,00 | 02/01/2011

DÉBITO | 75,00 | 02/01/2011

CRÉDITO | 15,00 | 02/01/2011

CRÉDITO | 85,00 | 02/01/2011

DÉBITO | 19,00 | 03/01/2011

CRÉDITO | 36,00 | 03/01/2011

DÉBITO | 78,00 | 03/01/2011

CRÉDITO | 99,00 | 04/01/2011

DÉBITO | 15,00 | 04/01/2011

 

e quando o usuário vai para o fluxo de caixa e o usuário informa o período de 01/01/2011 a 31/01/2011

 

 

tem q aparecer tipo assim

 

OPERAÇÃO | VALOR | DIA DA MOVIMENTAÇÃO

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

DÉBITO | 15,00 | 01/01/2011

DÉBITO | 55,00 | 01/01/2011

DÉBITO | 10,00 | 01/01/2011

CRÉDITO | 25,00 | 01/01/2011

DÉBITO | 35,00 | 01/01/2011

CRÉDITO | 55,00 | 01/01/2011

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

DÉBITO: R$ 115,00

CRÉDITO: R$ 100,00

SALDO R$ -15,00

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

DÉBITO | 50,00 | 02/01/2011

DÉBITO | 30,00 | 02/01/2011

CRÉDITO | 15,00 | 02/01/2011

CRÉDITO | 85,00 | 02/01/2011

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

DÉBITO: R$ 160,00

CRÉDITO: R$ 100,00

SALDO R$ 20,00

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

DÉBITO | 19,00 | 03/01/2011

CRÉDITO | 36,00 | 03/01/2011

DÉBITO | 78,00 | 03/01/2011

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

 

. .

. .

. .

E ASSIM SUCESSIVAMENTE

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

CRÉDITO | 99,00 | 04/01/2011

DÉBITO | 15,00 | 04/01/2011

 

 

TEM QUE APARECER UMA TABELA DESTA FORMA E NO FINAL APARECER O SALDO DO PERÍODO INFORMADO

 

SEGUE O CÓDIGO DA PÁGINA

 

 

 

 

<html>

<?php

require("conectar.php"); //chama o arquivo de conexão ao BD

?>

<html>

<head>

<title>Fluxo de Caixa</title>

<script type="text/javascript">

function Formatadata(Campo, teclapres)

{

var tecla = teclapres.keyCode;

var vr = new String(Campo.value);

vr = vr.replace("/", "");

vr = vr.replace("/", "");

vr = vr.replace("/", "");

tam = vr.length + 1;

if (tecla != 8 && tecla != 8)

{

if (tam > 0 && tam < 2)

Campo.value = vr.substr(0, 2) ;

if (tam > 2 && tam < 4)

Campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2);

if (tam > 4 && tam < 7)

Campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/' + vr.substr(4, 7);

}

}

</script>

 

</head>

<BODY bgcolor="#b8d3ed">

<form name="lanca_receitas" method= "post" action="fluxo_caixa.php">

<table align="center" border=0 CELLPADDING="5" CELLSPACING="0">

<tr align=center>

<td>

Data Inicial:

</td>

<td>

<input type="text" id="data1" name="data1" size=10 maxlength="10" onKeyUp="Formatadata(this,event)" required autofocus <? if($_POST){?> value=<?echo $_POST['data1']; }?> />

</td>

 

<td>Data Final: </td>

<td>

<input type="text" id="data2" name="data2" size=10 maxlength="10" onKeyUp="Formatadata(this,event)" required <? if($_POST){?> value=<?echo $_POST['data2']; }?> />

</td>

<td colspan="2">

<input type="submit" value="Consultar" name="consultar" >

<input type="button" name"menu_principal" value="Menu Principal" onClick="javascript:window.location.href='index.php'">

</td>

</tr>

</table>

<hr>

 

<?php

if($_POST)

{

 

function ValidaData($dat)

{

$data = explode("/","$dat"); // fatia a string $dat em pedados, usando / como referência

$d = $data[0];

$m = $data[1];

$y = $data[2];

 

// verifica se a data é válida!

// 1 = true (válida)

// 0 = false (inválida)

return $res = checkdate($m,$d,$y);

 

/*if ($res==true)

echo "data correta";

else

echo "data errada"; */

}

 

$data1=$_POST['data1'];

$data2=$_POST['data2'];

 

if (ValidaData($data1)==1)

{

if(ValidaData($data2)==1)

{

if($data1>$data2)

{

echo "<script>alert('A Data Inicial não deve ser maior que a Data Final');</script>";

}

else

{

$data1=explode("/", $data1);

$data1 = $data1[2]."-".$data1[1]."-".$data1[0];

$data2=explode("/", $data2);

$data2 = $data2[2]."-".$data2[1]."-".$data2[0];

 

echo "<h1> Resultado</h1> ";

?>

<table width=994 align="center" border=1>

<tr bgcolor="#000000" align="center" >

<td width="80" bgcolor="#FF0000">DATA</td>

<td width="157" bgcolor="#FF0000">OPERAÇÃO</td>

<td width="102" bgcolor="#FF0000">VALOR</td>

<td width="200" bgcolor="#FF0000">SALDO</td>

</tr>

<?

 

 

$sql=mysql_query("SELECT * FROM lancamentos WHERE data_movimentacao BETWEEN '$data1' AND '$data2' order by data_movimentacao,tipo");

$queryvalor = mysql_query("Select round(SUM(valor),2)as soma FROM lancamentos GROUP BY data_movimentacao ")or die(mysql_error());

$cont = mysql_fetch_array($queryvalor);

$total = number_format($cont["soma"],2,',','.');

 

 

while ($listar=mysql_fetch_array($sql))

{

$operacao=$listar['tipo'];

$dia=$listar['data_movimentacao'];

$dia1=explode("-", $dia);

$data = $dia1[2]."/".$dia1[1]."/".$dia1[0];

$valor=$listar['valor'];

?>

 

<tr align=center bgcolor="#CCCCCC">

 

<td bgcolor="#CCCCCC"><? echo $data ?></td>

<td bgcolor="#CCCCCC"> <? echo $operacao ?></td>

<td bgcolor="#CCCCCC">R$ <? echo number_format($valor,2,',','.'); ?></td>

<td bgcolor="#CCCCCC"> <? echo $saldo ?></td>

 

</tr>

<? } ?>

 

<tr align="center">

<TD></TD>

<TD></TD>

 

<td>Saldo Final: </td>

<td><? echo "R$ ".$total; ?></td>

 

</tr>

</table><?

}

}

else

{

echo "<script>alert('A Data Final incorreta');</script>";

 

 

}

 

}

else

{

echo "<script>alert('A Data Inicial incorreta');</script>";

 

 

}

}

 

?>

 

 

</form>

 

</body>

 

</html>

 

 

 

 

 

 

 

 

 

 

</body>

 

 

 

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae cara, tu tá pegando uma boiada inteira por essa coisa estar vindo de graça adapte-o às suas necessidades:

<?php
$tipo_de_consulta = "DÉBITO";
//Consulta datas
$sql = mysql_query("SELECT DISTINCT(data_movimentacao) FROM sua_tabela where data_moviemtacao = 'DATA QUE QUISER'");
while($linhas_data = mysql_fetch_array($sql)) {
$data = $linhas_data['data_movimentacao'];
//Consulta o resto dos dados da movimentação
$sql2 = mysql_query("SELECT * FROM sua_tabela where data_movimentacao = '$data'");
$linhas2 = mysql_fetch_array($sql2);
$operacao = $linhas2['operacao'];
$valor = $linhas2['valor'];
?>
<p><?php echo "$operacao no valor de: $valor no dia: $data"; ?></p>
<?php //Consulta total
$sql3 = mysql_query("SELECT sum(valor) as valor FROM sua_tabela WHERE data_movimentacao = '$data' and operacao = '$tipo_de_consulta'");
$linhas3 = mysql_fetch_array($sql3);
$total = $linhas3['valor'];
?>
<p><?php echo "Valor total para $tipo_de_consulta = $total"; ?></p>
<?php } ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae cara, tu tá pegando uma boiada inteira por essa coisa estar vindo de graça adapte-o às suas necessidades:

<?php
$tipo_de_consulta = "DÉBITO";
//Consulta datas
$sql = mysql_query("SELECT DISTINCT(data_movimentacao) FROM sua_tabela where data_moviemtacao = 'DATA QUE QUISER'");
while($linhas_data = mysql_fetch_array($sql)) {
$data = $linhas_data['data_movimentacao'];
//Consulta o resto dos dados da movimentação
$sql2 = mysql_query("SELECT * FROM sua_tabela where data_movimentacao = '$data'");
$linhas2 = mysql_fetch_array($sql2);
$operacao = $linhas2['operacao'];
$valor = $linhas2['valor'];
?>
<p><?php echo "$operacao no valor de: $valor no dia: $data"; ?></p>
<?php //Consulta total
$sql3 = mysql_query("SELECT sum(valor) as valor FROM sua_tabela WHERE data_movimentacao = '$data' and operacao = '$tipo_de_consulta'");
$linhas3 = mysql_fetch_array($sql3);
$total = $linhas3['valor'];
?>
<p><?php echo "Valor total para $tipo_de_consulta = $total"; ?></p>
<?php } ?>

 

 

 

 

fazendo as adaptações que você me solicitou ficou deste jeito:

 

<?php

$tipo_de_consulta = "DÉBITO";

//Consulta datas

$sql = mysql_query("SELECT DISTINCT(data_movimentacao) FROM lancamentos where data_movimentacao between '2011-01-01' and '2011-01-31'");

while($linhas_data = mysql_fetch_array($sql))

{

echo $data = $linhas_data['data_movimentacao'];

//Consulta o resto dos dados da movimentação

$sql2 = mysql_query("SELECT * FROM lancamentos where data_movimentacao = '$data'");

$linhas2 = mysql_fetch_array($sql2);

$operacao = $linhas2['operacao'];

$valor = $linhas2['valor'];

?>

<p><?php echo "$operacao no valor de: $valor no dia: $data"; ?></p>

<?php //Consulta total

$sql3 = mysql_query("SELECT sum(valor) as valor FROM lancamentos WHERE data_movimentacao = '$data' and operacao = '$tipo_de_consulta'");

$linhas3 = mysql_fetch_array($sql3);

$total = $linhas3['valor'];

?>

<p><?php echo "Valor total para $tipo_de_consulta = $total </p>";

} ?>

 

 

 

 

MAS APARECEU O SEGUINTE ERRO Q NÃO SEI OQ É:

 

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-5.3.9\www\teste1.php on line 5

Compartilhar este post


Link para o post
Compartilhar em outros sites

fazendo as adaptações que você me solicitou ficou deste jeito:

 

<?php

$tipo_de_consulta = "DÉBITO";

//Consulta datas

$sql = mysql_query("SELECT DISTINCT(data_movimentacao) FROM lancamentos where data_movimentacao between '2011-01-01' and '2011-01-31'");

while($linhas_data = mysql_fetch_array($sql))

{

echo $data = $linhas_data['data_movimentacao'];

//Consulta o resto dos dados da movimentação

$sql2 = mysql_query("SELECT * FROM lancamentos where data_movimentacao = '$data'");

$linhas2 = mysql_fetch_array($sql2);

$operacao = $linhas2['operacao'];

$valor = $linhas2['valor'];

?>

<p><?php echo "$operacao no valor de: $valor no dia: $data"; ?></p>

<?php //Consulta total

$sql3 = mysql_query("SELECT sum(valor) as valor FROM lancamentos WHERE data_movimentacao = '$data' and operacao = '$tipo_de_consulta'");

$linhas3 = mysql_fetch_array($sql3);

$total = $linhas3['valor'];

?>

<p><?php echo "Valor total para $tipo_de_consulta = $total </p>";

} ?>

 

 

 

 

MAS APARECEU O SEGUINTE ERRO Q NÃO SEI OQ É:

 

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-5.3.9\www\teste1.php on line 5

 

 

etá dexa pra lá... esqueci de conectar com o banco de dados...rsrsrs

 

Ae cara, tu tá pegando uma boiada inteira por essa coisa estar vindo de graça adapte-o às suas necessidades:

<?php
$tipo_de_consulta = "DÉBITO";
//Consulta datas
$sql = mysql_query("SELECT DISTINCT(data_movimentacao) FROM sua_tabela where data_moviemtacao = 'DATA QUE QUISER'");
while($linhas_data = mysql_fetch_array($sql)) {
$data = $linhas_data['data_movimentacao'];
//Consulta o resto dos dados da movimentação
$sql2 = mysql_query("SELECT * FROM sua_tabela where data_movimentacao = '$data'");
$linhas2 = mysql_fetch_array($sql2);
$operacao = $linhas2['operacao'];
$valor = $linhas2['valor'];
?>
<p><?php echo "$operacao no valor de: $valor no dia: $data"; ?></p>
<?php //Consulta total
$sql3 = mysql_query("SELECT sum(valor) as valor FROM sua_tabela WHERE data_movimentacao = '$data' and operacao = '$tipo_de_consulta'");
$linhas3 = mysql_fetch_array($sql3);
$total = $linhas3['valor'];
?>
<p><?php echo "Valor total para $tipo_de_consulta = $total"; ?></p>
<?php } ?>

 

eu fiz aqui e quase q foi oq eu qria... mas está aparecendo assim

 

2012-03-21

DÉBITO no valor de: 56.46 no dia: 2012-03-21

 

Valor total para DÉBITO = 56.46

 

2012-03-22

DÉBITO no valor de: 6.54 no dia: 2012-03-22

 

Valor total para DÉBITO = 56.38

 

 

 

no dia 2012-03-22 há mais de um débito e não está aparecendo os outros débitos

e queria que aparecesse tanto o crédito quanto o débito e a partir de ambos valores geral o saldo diário e dpois o saldo final do período

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente usar o WHILE na sql 2

 

 

resolvido.. mto obrigada... mas agora gostaria de tirar uma outra dúvida..rsrs....

é q estou salvando os dados no MYSQL e estou salvando o tipo ele é .... tipow... se é DÉBITO ou CRÉDITO e as vezes ele coloca o acento como eu qro e as vezes aparece caracteres estranhos que nem logo abaixo... gostaria de saber como resolver este problema

 

DÉBITO 2012-03-26 2011-01-01 564.65

18 CRÉDITO 2012-03-26 2012-02-01 280820

19 DÉBITO 2012-03-27 0000-00-00 0

20 DÉBITO 2012-03-27 0000-00-00 0

21 DÉBITO 2012-03-27 1989-06-06 54.65

22 DÉBITO 2012-03-27 1989-02-22 16

23 Débito 2012-03-27 2011-02-01 15.5

24 Débito 2012-03-27 2012-01-01 1

25 Crédito 2012-03-27 2001-01-01 0.54

26 Crédito 2012-03-27 2001-01-01 0.54

27 Crédito 2012-03-27 2009-01-01 0.12

28 Crédito 2012-03-27 2011-01-01 0.02

29 DÉBITO 2012-03-27 1991-08-28 155

30 DÉBITO 2012-03-27 2002-02-02 1.23

31 DÉBITO 2012-03-27 2011-01-01 54.65

32 DÉBITO 2012-03-27 2011-01-01 54.65

33 DÉBITO 2012

Compartilhar este post


Link para o post
Compartilhar em outros sites

manda ai o código que faz o insert

 

$sql= "INSERT INTO lancamentos (tipo,data_movimentacao,data_vencimento,valor) VALUES ('DÉBITO','$data_lancamento','$datas','$moeda')";

$mostrar1 = mysql_query($sql);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Padroniza sua pagina pra UTF-8 e seu Banco de dados tmb pra UTF-8

 

e a pagina que vai lista os dados tambem utf-8

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for MYSQL Query Browser, abra-o, vá até a tabela, clique com o botão direito, edit table, Table option, e em charset, troca para o que quiser. (Costumo usar latin1);

Na página que imprime, você pode colocar um "

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

"

Verifique as variáveis que são enviadas. Pode haver algum tipo de tratamento antes.

Eu acho bem estranho hora ir de um jeito, e hora ir de outro. O que você faz de diferente quando acontece isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for MYSQL Query Browser, abra-o, vá até a tabela, clique com o botão direito, edit table, Table option, e em charset, troca para o que quiser. (Costumo usar latin1);

Na página que imprime, você pode colocar um "

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

"

Verifique as variáveis que são enviadas. Pode haver algum tipo de tratamento antes.

Eu acho bem estranho hora ir de um jeito, e hora ir de outro. O que você faz de diferente quando acontece isso?

 

vou tentar explicar....

 

 

é que eu fiz uma página para cadastrar as despesas e outra para receitas... e tem a opção: Situação: A Pagar e Pago (no caso das despesas) e Recebido e A Receber (no caso das receitas) e quando eu clico na situação Pago ou Recebido ele manda os dados para a tabela lancamentos do banco de dados e o tipo (DÉBITO/CRÉDITO) é inserido na tabela lancamentos. Mas os cadastros que tem a situação A Pagar/ A Receber terão q ser lançados depois e ao lançar eles depois... o tipo na tabela lançamentos é colocado com os caracteres corretos. Só quando eu eu cadastro eles e coloco a situação Pago e Recebido é q insere o tipo (DÉBITO/CRÉDITO) com caracteres estranho... entendeu??é por isso que tem alguns corretos e outros com caracteres estranhos

Compartilhar este post


Link para o post
Compartilhar em outros sites

difícil resolver assim sem ver o código.

Se puder, coloque aqui pelo menos as variáveis que você recebe, e a consulta que as envia ao banco.

 

 

já consegui resolver este problema... mas agora tem outro... prometo que é o último...rsrsr

 

tem uma caixa de seleção que foi inserida no meu form que contem os dados de uma tabela do banco de dados só que as palavras que está com "Ç", e acentos fik aparecendo um ponto de interrogação dentro de um losango preto e no banco os registros estão armazenados corretos... como faço pra arrumar isto? segue o codigo da caixa de seleção:

 

//clausula sql

$sql = "SELECT * FROM cadastro_despesa order by descricao";

 

//executa a clausula sql

$result = mysql_query($sql)or die("Falha na execução da instrução SQL!");

 

 

//imprimir um campo select

echo "<select name=\"despesas\" id=\"despesas\">";

 

//faz o loop para preencher o campo criado com os valores retornados na consulta

while($dados = mysql_fetch_array($result))

{

echo "<option value='".$dados['descricao']."'>".$dados['descricao']."</option>";

}

 

//fecha o campo select e o formulário

echo "</select>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

Se você utiliza um arquivo de conexão e juntamente com a dica deste post clique aqui , faça assim que resolverá seu problema:

 

<?php

// define ("HOST","seuHost");
// define ("USER","seuUser");
// define ("PASS","suaSenha");
// define ("BANCO","seuBanco");

$conecta = mysql_connect( HOST, USER, PASS ) or die('Não foi possível conectar: ' . mysql_error());

mysql_select_db( BANCO, $conecta )or die('Não foi possível conectar: ' . mysql_error());

mysql_query("SET NAMES 'utf8'");

?>

 

Note que na última linha esta a resposta:

 

mysql_query("SET NAMES 'utf8'");

 

Espero que ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

Se você utiliza um arquivo de conexão e juntamente com a dica deste post clique aqui , faça assim que resolverá seu problema:

 

<?php

// define ("HOST","seuHost");
// define ("USER","seuUser");
// define ("PASS","suaSenha");
// define ("BANCO","seuBanco");

$conecta = mysql_connect( HOST, USER, PASS ) or die('Não foi possível conectar: ' . mysql_error());

mysql_select_db( BANCO, $conecta )or die('Não foi possível conectar: ' . mysql_error());

mysql_query("SET NAMES 'utf8'");

?>

 

Note que na última linha esta a resposta:

 

mysql_query("SET NAMES 'utf8'");

 

Espero que ajude.

 

 

agora funcionou... só que as letras que tinham Ç ou acentos ficaram minúsculas e as outras maiusculas... qro q elas também fikem maiúsculas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se isso ajuda - Clique Aqui

 

 

 

mas como vou inserir isto ... eu sei pra q serve isso mas eu não estou sabendo qual é o local correto de por na seguinte linha:

 

while($dados = mysql_fetch_array($result))

{

echo "<option value='".$dados['descricao']."'>".$dados['descricao']."</option>";

}

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.