Ir para conteúdo

POWERED BY:

Arquivado

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

Akira

Filtro somando dados por data

Recommended Posts

Olá a todos,

 

Estou tendo algumas dificuldades em fazer um filtro q possa somar alguns dados por data, lembrando não sei muita coisa do php rsrsr, vo dar um exemplo como preciso fazer e o q eu tenho.

 

EX:

De 01/01/2010 a 10/01/2010

 

Setor

 

Informatica 25

Frente de loja 100

Financeiro 30

 

Total 155

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

 

O q eu tenho usando o between gerendo relatorio data inicial e final

 

 

<?php 
include("../conexao/conexao.php");
include("verifica.php");

	global $inicial;
	global $final;
	
	$inicial = $_REQUEST["datainicial"];
	$final = $_REQUEST["datafinal"];
	
	$datainicial = implode("-", array_reverse(explode("/", $inicial)));
	$datafinal = implode("-", array_reverse(explode("/", $final)));

		
    $numreg = 30;
    if (!isset($pg)) {
        $pg = 0;
    }
    $inicial = $pg * $numreg;
    

    $sql = mysql_query("SELECT * FROM help_desk WHERE  data between '$datainicial' AND '$datafinal'  order by data asc LIMIT $inicial, $numreg");
	


    $sql_conta = mysql_query("SELECT * FROM help_desk ");
    
    $quantreg = mysql_num_rows($sql_conta); 

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<link href="css/wyr.css" rel="stylesheet" type="text/css">
<body>
<span id="sessoes">
<h1>Resultado do relatório</h1>
<span class="padding" style="background:#f2f2f2">
  <table width="100%"  align="center" cellpadding="0" cellspacing="0" bgcolor="#F2F2F2">
  <tr>
    <td colspan="6"> </td>
  </tr>
    <tr>
    <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="19%" height="25" align="center" bgcolor="#FFFFFF" class="usuario">Data</td>
        <td width="46%" bgcolor="#FFFFFF" class="usuario">  Loja</td>
        <td width="25%" bgcolor="#FFFFFF" class="usuario">Setor</td>
        <td width="10%" align="center" bgcolor="#FFFFFF" class="usuario">QT</td>
      </tr>
    </table></td></tr></table><table width="100%"  align="center" cellpadding="0" cellspacing="0" bgcolor="#F2F2F2"><tr><td><table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>


        <?php
        $contador=0;
        while ($linha = mysql_fetch_array($sql)){
        	
			$id = $linha["id"];
			$id_loja = $linha["id_loja"];
			$data = $linha["data"];
			$nome_setor = $linha["nome_setor"];
			
			$datafin = substr($data,8,2) . "/" .substr($data,5,2) . "/" . substr($data,0,4);
						
		  if ($contador % 2 == 1){
                $coratual = "#E6E6E6";
        } else {
                $coratual = "#F8F8F8";
        }
        ?>


        <td width="19%" align="center" height="21" bgcolor="<?php echo $coratual?>"><?php echo "$datafin"; ?></td>
        <td width="46%" bgcolor="<?php echo $coratual?>"><?php echo "$id_loja"; ?></td>
        <td width="25%" class="editar" bgcolor="<?php echo $coratual?>"><?php echo "$nome_setor"; ?></td>
        <td width="10%" align="center" class="excluir" bgcolor="<?php echo $coratual?>"></td>
      </tr>

      <?php $contador++;}?>

    </table></td></tr></table>
    <tr>
    <td  colspan="4" align="center"><br />
      <br /></td>
</tr>
</table>
</span>

</span>
</body>

 

 

Se alguem poder me ajudar agradeco desde ja

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse codigo acima funciona beleza + da forma q eu preciso nao sei como fazer a soma pra ficar dessa forma onde entre a data inicial e final ele soma os setores e liste da forma q esta abaixo.

 

 

EX:

De 01/01/2010 a 10/01/2010

 

Setor

 

Informatica 25

Frente de loja 100

Financeiro 30

 

Total 155

 

Aguardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para o seu caso, o melhor é utilizar os modificadores da consulta, para que ela retorne no formato desejado. Neste caso, creio que um GROUP BY WITH ROLLUP resolverá o seu caso.

http://dev.mysql.com/doc/refman/5.0/en/group-by-modifiers.html

 

Caso queira partir para esta solução (muito mais simples), moverei seu tópico para o fórum de MySQL.

 

Carlos Eduardo

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.