Ir para conteúdo

POWERED BY:

Arquivado

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

Perfect Lion

Relatorio ta ????....muito ???? mesmo...

Recommended Posts

Ola pessoal eu estou com um problema serio com relatorio em php......

 

Bem o relatorio é o seguinte o usuario vai ter que fazer a consulta por data ex.

 

datai = data inicial

dataf = data final

 

//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

PHP

[*]

[*]$datai = "22/05/2005";

[*]$dataf = "25/05/2005";

[*]//;;;;;;;;;;;;;;;;;;;

[*]$dai = explode("/", $datai);

[*]$diai = $dai[0];

[*]$mesi = $dai[1];

[*]$anoi = $dai[2];

[*]//;;;;;;;;;;;;;;;;;;;;

[*]$daf = explode("/", $dataf);

[*]$diaf = $daf[0];

[*]$mesf = $daf[1];

[*]$anof = $daf[2];

[*]//;;;;;;;;;;;;;;;;;;;;

[*]for($diai; $diai <= $diaf; $diai ++){

[*]

[*]$selec = mysql_query("select * from catg where data between '$diai-$mesi-$diai' and '$anof-$mesf-$diaf')or die(mysql_error());

[*]

[*]}

[*]

 

Bem o problema está ai nesse for....

Se a datai for menor que dataf vai dar pau.. pois o for não vai ler...... e eu estou sofrendo para ageitar isso e não estou conseguindo....

 

como eu posso fazer???? tem alguma alternativa melhor????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa fabyo esqueci de de sitar esse loop é o que vai fazer a contagem de dias voi mostrar assim::

 

12/05 || 13/05 || 14/05 bla bla bla sacou???

 

por isso que tem esse for... e por isso que ta dando o pau....

 

se o datai for maior que o dataf vai dar pau... pois dentro desse for tem isso

PHP

[*]

[*]for($diai; $diai <= $diaf; $diai ++)

[*]//;;;;;;;;;;;;;;;;;;;;;;;;

[*]if($dia_i2 < 30){

[*]$dia_i2 = 1;

[*]$mes_f2 += 1;

[*]}

[*]//;;;;;;;;;;;;;;;;;;;;;;;;;

[*]if($dia_i2 <= 9)

[*]{

[*]$dia_i2 = "0" . $dia_i2;

[*]}

[*]//;;;;;;;;;;;;;;;;;;;;;;;;;;

[*]$selec = mysql_query("select * from catg where data between '$diai-$mesi-$diai' and '$anof-$mesf-$diaf')or die(mysql_error()); 

[*]?>

[*]

61"> 
center"><? echo "$dia_i2/$mes_i2"; ?> 

[*]

[*]<?

[*]}

[*]?>

[*]

 

Sakou????? o problema ta na montagem... num tou conseguindo fazer isso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara mas mesmo assim nao precisa desse loop o que pode ter é um loop depois da consulta antes dele nao ,explica como você quer o resultado do relatorio dai eu te mostro como tem que fazer

Compartilhar este post


Link para o post
Compartilhar em outros sites

O resultado é assim...existe uma tabela chamada "cad_liga" com "id,nome,id_meios,data"existe uma tabela chamada "meios" com "id,nome,quantidade"Bem eu preciso listar quais são os meios e quanto por dia foi ligado ex..//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::Meios:::::::: || ::15/05:: || ::16/05:: || ::Total:::::::Mercado::::: || :::125::: || :::::22::: || ::147:::::::Açogue :::::: || :::125::: || :::::22::: || ::147::total::::::::::::::::|| ::250:::::|| ::::44:::: || ::294:://:::::::::::::::::::::::::::::::::::::::::::::::::::::::::é isso ai que eu preciso.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode fazer isso tudo num loop final e o select pode ser o mesmo

e só iniciar por exemplo $total = 0; fora do loop e dentro do loop

$total += $quantidade;

 

isso é só um exemplo, se nao conseguir posta ai que é facil

Compartilhar este post


Link para o post
Compartilhar em outros sites

class="body">

[*] <?

[*] if($id_grupo !=1 && $id_grupo !=2 && $id_grupo !=3 && $id_grupo !=4 && $id_grupo !=5 && $id_grupo !=6 && $id_grupo !=7){

[*] $ver = 1;

[*] ?>

[*] <script language="javascript" type="text/javascript">

[*]ver = <?= $ver; ?>;

[*]if(ver == 1){

[*]alert("Você não pode ter acesso a essa pagina verificar com o administrador a sua permissão de acesso");

[*]}

[*]

[*] <?

[*] $text = "

fonte5\">Você não tem permissão para visualisar essa tela. verificar com o administrador a sua permissão
 ";

[*] echo $text;

[*] }else{

[*] ?>

[*]

"0" cellpadding="0" cellspacing="0">

[*] [tr] 

[*]

"center"

[*]

class

="fonte1">Relatório

[*]

[*] [/tr]

[*] [tr] 

[*]

[*]

"center"

[*]

class

="fonte1">Periodo:<? echo "$dia_i/$mes_i/$ano_i á $dia_f/$mes_f/$ano_f"?>

[*] ---------------------------------------------------------------------------------------------------

[*]

[*]  

[*]

[*] [/tr]

[*] [tr] 

[*]

"0" cellpadding="0" cellspacing="0">

[*] "#CCCCCC" class="fonte1"

[*]

"627"> 

[*]

"center">Anuncio

[*] <?

[*]$dat_i2 = explode("/", $d_i);

[*]$dia_i2 = $dat_i2[0];

[*]$mes_i2 = $dat_i2[1];

[*]$ano_i2 = $dat_i2[2];

[*]

[*]$dat_f2 = explode("/", $d_f);

[*]$dia_f2 = $dat_f2[0];

[*]$mes_f2 = $dat_f2[1];

[*]$ano_f2 = $dat_f2[2];

[*]//if($dia_i2 > $dia_f2){

[*]//$dia_i2 = $dat_f2[0];

[*]//$dia_f2 = $dat_i2[0];

[*]//}

[*]for($dia_i2; $dia_i2 <= $dia_f2; $dia_i2++){

[*]if($dia_i2 < 30){

[*]$dia_i2 = 1;

[*]$mes_f2 += 1;

[*]}

[*]if($dia_i2 <= 9)

[*]{

[*]$dia_i2 = "0" . $dia_i2;

[*]}

[*]?>

[*]

"61"> 
"center"><? echo "$dia_i2/$mes_i2"?> 

[*]

[*]

[*] <?

[*] }

[*] ?>

[*]

"center">Total:

[*] [/tr]

[*] <?

[*] $an_select = $db_p->Execute("select * from meios where nome != 'Novo' and nome != 'Selecionar' ORDER BY id ASC")or die($db_p->ErrorMsg());

[*] while($an = $an_select->fields){

[*] $an_nome = $an["nome"];

[*] $an_id = $an["id"];

[*] $i++;

[*] $soma = $i%2;

[*] if($soma == 0){

[*] $class = "cla1";

[*] }else{

[*] $class = "cla2";

[*] }

[*]  ?>

[*] class="<?= $class; ?>"

[*]

class="fonte1"
class="tbborda"><?= $an_nome; ?>

[*] <?

[*]$dat_i3 = explode("/", $d_i);

[*]$dia_i3 = $dat_i3[0];

[*]$mes_i3 = $dat_i3[1];

[*]$ano_i3 = $dat_i3[2];

[*]

[*]$dat_f3 = explode("/", $d_f);

[*]$dia_f3 = $dat_f3[0];

[*]$mes_f3 = $dat_f3[1];

[*]$ano_f3 = $dat_f3[2];

[*]

[*]$diai = $dat_i3[0];

[*]$diaf = $dat_f3[0];

[*]for($dia_i3; $dia_i3 <= $dia_f2; $dia_i3++){

[*]if($dia_i3 < 31){

[*]$dia_i3 = 1;

[*]$mes_f3 = $mes_f3 + 1;

[*]}

[*]//quando a data for de 1 a 9 ele coloca um 0 na frente para o banco aceitar tb...

[*]if($dia_i3 <= 9)

[*]{

[*]$dia_i3 = "0" . $dia_i3;

[*]}

[*]//Busca com o periodo

[*]$quant = $db_p->Execute("SELECT * FROM cad_ligacao WHERE id_meio = '$an_id' and data = '$ano_i3-$mes_i3-$dia_i3'");

[*]$an_cont = $quant->RecordCount();

[*]$total_anu = $db_p->Execute("SELECT * FROM cad_ligacao WHERE id_meio = $an_id and data between '2005-05-30' and '2005-06-02'")or die($db_p->ErrorMsg());

[*]$total_cont = $total_anu->RecordCount();

[*]?>

[*]

class="fonte1">
class="tbborda"align="center">

[*] <?= $an_cont; ?>

[*]<?

[*]}

[*]?>

[*]

"112" class="fonte1">
"center" class="tbborda">

[*] <?= $total_cont; ?>

[*]

[*]<?

[*]$an_select->MoveNext();

[*]}

[*]?>

[*]

[*] "#CCCCCC"

[*]

 

[*]

"left" class="fonte1">Total:

[*] <?

[*] //Dia inicial

[*]//$d_i = $dti;

[*]//Dia final

[*]//$d_f = $dtf;

[*]//explode e divide as datas

[*]$dat_i4 = explode("/", $d_i);

[*]$dia_i4 = $dat_i4[0];

[*]$mes_i4 = $dat_i4[1];

[*]$ano_i4 = $dat_i4[2];

[*]

[*]$dat_f4 = explode("/", $d_f);

[*]$dia_f4 = $dat_f4[0];

[*]$mes_f4 = $dat_f4[1];

[*]$ano_f4 = $dat_f4[2];

[*]$data_array = array();

[*]for($dia_i4; $dia_i4 <= $dia_f4; $dia_i4++){

[*]if($dia_i4 < 31){

[*]$dia_i4 = 1;

[*]$mes_f4 = $mes_f4 + 1;

[*]}

[*]//quando a data for de 1 a 9 ele coloca um 0 na frente para o banco aceitar tb...

[*]if($dia_i4 <= 9)

[*]{

[*]$dia_i4 = "0" . $dia_i4;

[*]}

[*]

[*]$total_data = $db_p->Execute("SELECT * FROM cad_ligacao WHERE id_meio != 49 and id_meio != 70 and id_meio != 1 and data = '$ano_i4-$mes_i4-$dia_i4'")or die($db_p->ErrorMsg);

[*]$data_t = $total_data->RecordCount();

[*]$data_array[$dia_i4] = $data_t;

[*]

[*] ?>

[*]

class="fonte1"

[*]

"center"><?= $data_t; ?>

[*]

[*] <?

[*] }

[*] ?>

[*]

class="fonte1"

[*]

"center">

[*] <?

[*] $somatudo = array_sum ($data_array);

[*] echo $somatudo;

[*] ?>

[*]

[*]

[*]

[*]

[*]

[*]

[*]<?

[*]}

[*]?>

[*]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha essa img.....

 

http://www.baratoweb.com.br/etc/img.gif

 

ela ja está funcionando normal... mais o problema é quando eu colocar

 

15/05/2005 á 02/06/2005 ele não vai funfa pq o 02 é menor que 15 entende....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo precisa sim kra pois é porcausa do loop que eu crio as "trs" e "tds" entende... fora que o selec ele usar o dai ++ do for para vericicar 15,16,17 e assim até a data limite... que é a data final...o problema não é no selec e sim no for ele que está me ferrando... mesmo com o selec fora dele se eu colocar a data menor ele não cria as "trs" e "tds" da tabela ... entende.. ai ele não cria as linhas com os resultados... sakou ^^ -> Muito f*** fazer um relatorio nunca pensei que seria tão f*** assim....

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao você nao entendeu de novo só usar o loop depois do select da pra você fazer qualquer coisa, cara nao duvide só pergunte como ,o seu erro é que você ta martelando numa forma errada de se fazer por isso que da errado

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.