Ir para conteúdo
Fórum Script Brasil
  • 0

Exibindo Resultados do BD


INTUITO_BINÁRIO

Pergunta

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

  • 0

Use uma query assim:

select * from tabela_do_BD where data='2011-05-30'

Observe que a data no BD é no formato AAAA-mm-dd

No 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 Query

Para separa pro funcionario, poderia ser uma query assim:

select * from tabela_do_BD where data='2011-05-30' order by funcionario

Editado por Sandro2011
Link para o comentário
Compartilhar em outros sites

  • 0

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 liste

todos os registros deste funcionario e me traga o total no final.

Complicado hehehehe

Link para o comentário
Compartilhar em outros sites

  • 0

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 por Sandro2011
Link para o comentário
Compartilhar em outros sites

  • 0

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 por Jefferson Oliveira
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...