INTUITO_BINÁRIO Postado Abril 4, 2011 Denunciar Share Postado Abril 4, 2011 Salve, Salve galera!!!!!!!Seguinte pessoal, estou fazendo um sistema aqui, e me deparei com um relatório chato paca para fazer, e pra variar estou tomando um coro por isto.tenho uma tabela nesta estrutura:Data | Funcionario | Orçamento | Item | Valoreu preciso printar na tela da seguinte forma:01/02/2011 | raphael | 1520 | 5 | R$ 150,0005/03/2011 | raphael | 1525 | 3 | R$ 150,0018/03/2011 | raphael | 1524 | 2 | R$ 150,0001/04/2011 | raphael | 1522 | 1 | R$ 150,00 TOTAL: R$ 600,0001/02/2011 | juliuos | 1522 | 2 | R$ 150,0005/02/2011 | juliuos | 1522 | 5 | R$ 150,0006/02/2011 | juliuos | 1521 | 8 | R$ 150,0009/02/2011 | juliuos | 1500 | 3 | R$ 150,00 TOTAL: R$ 600,00Como posso fazer isto, informado somente a data que eu quero que ele me traga.Desde já agradeço a ajuda. :ninja: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Sandro2011 Postado Abril 4, 2011 Denunciar Share Postado Abril 4, 2011 (editado) Use uma query assim:select * from tabela_do_BD where data='2011-05-30'Observe que a data no BD é no formato AAAA-mm-ddNo PHP ficaria +/- assim:$data_exemplo="05/02/2011"; // sua data que quer buscar$data_partes=explode("/",$data_exemplo); // separa dia mes e ano$dataOk=$data_partes[2]."-".$data_partes[1]."-".$data_partes[0]; // junta tudo no formato do BD$sql="select * from tabela_do_BD where data=$dataOk"; // busca na tabela_do_BD os registros com a $dataOk$sql=mysql(query($sql)); // executa a QueryPara separa pro funcionario, poderia ser uma query assim:select * from tabela_do_BD where data='2011-05-30' order by funcionario Editado Abril 4, 2011 por Sandro2011 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 INTUITO_BINÁRIO Postado Abril 5, 2011 Autor Denunciar Share Postado Abril 5, 2011 Desta forma não dá. Por dois motivos....1º - Não irá calcular o total de cada funcionario, e quando terminar o funcionario não irá mostrar os outros.2º - preciso deste relatorio dentro de um periodo between.Se eu colocar na query group by funcionario ele trará somente 1 registro do funcionario com talves o resultado se eu pedir atraves do sum, porem preciso que ele me listetodos os registros deste funcionario e me traga o total no final.Complicado hehehehe Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 INTUITO_BINÁRIO Postado Abril 5, 2011 Autor Denunciar Share Postado Abril 5, 2011 uma luz gente! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Sandro2011 Postado Abril 6, 2011 Denunciar Share Postado Abril 6, 2011 (editado) Então... dá sim. Mas dá trabalho.Com a Query que eu falei, ...$sql="select * from tabela_do_BD where data=$dataOk"; // busca na tabela_do_BD os registros com a $dataOk ...Você vai buscar somente por data, mas nada impede de usar um loop no PHP e fazer o que você quer, somando os resultados.tipo assim: (código jogo rápido que precisará de adaptações):$data_exemplo="05/02/2011"; // sua data que quer buscar$data_partes=explode("/",$data_exemplo); // separa dia mes e ano$data1=$data_partes[2]."-".$data_partes[1]."-".$data_partes[0]; // junta tudo no formato do BD...//faça o mesmo pra $data2 (usa no between ente data1 e data2)$sql="SELECT codigo_fun FROM tbl_funcionarios fun WHERE (select count(*) from tbl_orcamentos where fun_id=fun.codigo_fun)>0" // seleciona os funcionarios da tabela de funcionarios que possuem algum orçamento na tabela de orçamentos - fun_id é o codigo do funcionario na tabela de orçamentos$sql=mysql_query($sql);$total_reg=mysql_num_rows($sql);for($x=0;$x<$total_reg;$x++) { $codigo_funcionario=mysql_result($sql,$x,'codigo_fun'); $sql2="select * from tbl_orcamentos where (data between $data1 and $data2) and fun_id=$codigo_funcionario"; $sql2=mysql_query($sql2); $total_reg2=mysql_num_rows($sql2); $soma=0; for($x2=0;$x2<$total_reg2;$x2++) { echo ... // mostre aqui os resultados da query $sql2 $soma.=mysql_result($sql2,$x2,'valor_orcamento'); } echo "TOTAL:".$soma."<br><br>"; }Obs: estou supondo que existe uma tabela de funcionarios (tbl_funcionarios) e uma tabela de orcamentos (tbl_orcamentos) que possui uma chave referenciando o funcionario (fun_id) Editado Abril 6, 2011 por Sandro2011 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jefferson Oliveira Postado Abril 6, 2011 Denunciar Share Postado Abril 6, 2011 (editado) NESTE CASO SERIA MELHOR SEPARAR AS TABELAS DE CLIENTE COM A DE ORCAMENTO.FICARIA ASSIM!<?PHP $sqlcliente = mysql_query("SELECT * FROM clientes"); while ($rowcliente = mysql_fetch_array($sqlcliente)){ $valortotal = 0; $sqlorcamento = mysql_query("SELECT * FROM orcamento WHERE cliente = '".$rowcliente["id"]."'"); while($roworcamento = mysql_fetch_array($sqlorcamento)){ $valortotal = $valortotal + $roworcamento["valor"]; ## SOMANDO OS VALORES DESTE CLIENTE print $roworcamento["data"]. " | " . $rowcliente["nome"] . " | " . $roworcamento["id"] . " | " . $roworcamento["item"] . "|" . $roworcamento["valor"]; } print "Valor total de ".$valortotal; } ?>depois poe o number_format, espero que tenha ajuidado. Editado Abril 6, 2011 por Jefferson Oliveira Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
INTUITO_BINÁRIO
Salve, Salve galera!!!!!!!
Seguinte pessoal, estou fazendo um sistema aqui, e me deparei com um relatório chato paca para fazer, e pra variar estou tomando um coro por isto.
tenho uma tabela nesta estrutura:
Data | Funcionario | Orçamento | Item | Valor
eu preciso printar na tela da seguinte forma:
01/02/2011 | raphael | 1520 | 5 | R$ 150,00
05/03/2011 | raphael | 1525 | 3 | R$ 150,00
18/03/2011 | raphael | 1524 | 2 | R$ 150,00
01/04/2011 | raphael | 1522 | 1 | R$ 150,00
TOTAL: R$ 600,00
01/02/2011 | juliuos | 1522 | 2 | R$ 150,00
05/02/2011 | juliuos | 1522 | 5 | R$ 150,00
06/02/2011 | juliuos | 1521 | 8 | R$ 150,00
09/02/2011 | juliuos | 1500 | 3 | R$ 150,00
TOTAL: R$ 600,00
Como posso fazer isto, informado somente a data que eu quero que ele me traga.
Desde já agradeço a ajuda. :ninja:
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.