Ir para conteúdo

POWERED BY:

Arquivado

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

paulinhovianna

PHP lógica

Recommended Posts

Tenho uma tabela com a seguinte estrutura:

ID ID_EMPRESA MES ANO ACESSO NOME_CONTA SALDO_FINAL

 

estou tentado gerar um relatório que recebe de uma página anterior o ano que se esta trabalhando, depois dentro da página do relatório é selecionado o mês.

 

se tenho apenas o mês de um ano o relatório gera corretamente, mas se tenho um mesmo mês em dois anos diferentes o relatório não gera corretamente, o último valor do ano anterior segue repetindo e o nome das contas de acesso começar a repetir novamente

 

<COMO ESTA SAINDO>

 

ACESSO 2012 2013

ACESSO1 1

ACESSO2 2

ACESSO3 3

ACESSO1 3 4

ACESSO2 3 5

ACESSO3 3 6

 

<COMO DEVERIA SER>

 

ACESSO 2012 2013

ACESSO1 1 4

ACESSO2 2 5

ACESSO3 3 6

 

 

 

 
 
 
<?php
if(file_exists("init.php")) {
require "init.php";
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
  }
 
if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi alterado, nao existe a função Abre_Conexao";
exit;
}
 
Abre_Conexao();
 
?>
 
<form action="#" method="POST">
<input type="hidden" name="id" value="<?php echo isset($_GET['id']) ? $_GET['id'] : ''; ?>" />    
<input type="hidden" name="ano" value="<?php echo isset($_GET['ano']) ? $_GET['ano'] : ''; ?>" />    
<select name="mes" id="mes" type="text">
                <option>Selecione Mes</option>
                <option value="01">Janeiro</option>
                <option value="02">Fevereiro</option> 
                <option value="03">Marco</option> 
                <option value="04">Abril</option> 
                <option value="05">Maio</option> 
                <option value="06">Junho</option> 
                <option value="07">Julho</option> 
                <option value="08">Agosto</option> 
                <option value="09">Setembro</option> 
                <option value="10">Outubro</option> 
                <option value="11">Novembro</option> 
                <option value="12">Dezembro</option> 
            </select>
<input type='submit' value='enviar' />
</form>
 
<?php
if( $_SERVER["REQUEST_METHOD"] == "POST"){
    
$id = $_POST["id"];    
$mes = $_POST["mes"];
$ano_atual = $_POST["ano"];
 
$ano_anterior = $ano_atual-1;
$saldo_final_anterior="";
$saldo_final_ano="";
$porcento_anterior="";
$porcento_ano="";
 
$query = mysql_query ("SELECT * FROM balancete WHERE (classificador LIKE '1%') AND (id_empresa=$id) AND (mes=$mes) AND (saldo_final!=0)");
echo "
    
        <table width=\"100%\" border=\"1\">
<tr>
            <td>Nome Conta</td>
            <td>$ano_anterior</td>
            <td>%</td>
            <td>$ano_atual</td>
            <td>%</td>
</tr>";
}
while($row = mysql_fetch_array($query)) {
$ano            = $row["ano"];
        $acesso         = $row["acesso"];
        $classificador  = $row["classificador"];
        $saldo_final    = $row["saldo_final"];
        
        if ($acesso=='10000'){
            $ativo = $saldo_final*(-1);
        }
                 
        if($ano==$ano_anterior){
        $saldo_final_anterior    = number_format($row["saldo_final"]*(-1), 2, ",", ".");
        $nome_conta          = $row["nome_conta"];
            if ($acesso=='10000'){ 
                    $porcento_anterior = '100%';
           } else {$porcento_anterior = number_format ($saldo_final/$ativo*100,2).'%'; }
        }
            
        if($ano==$ano_atual){
        $saldo_final_ano    = number_format($row["saldo_final"]*(-1), 2, ",", ".");
        $nome_conta          = $row["nome_conta"];
        $classificador = $row["classificador"];
            if ($acesso=='10000'){ 
                    $porcento_ano = '100%';
            } else {$porcento_ano = number_format ($saldo_final/$ativo*100,2).'%'; }
        }
        
        echo "
            <tr>";
                
                if ($acesso==10000) { 
                    echo" <td style='background-color:orange;'>$nome_conta</td>"; 
                } else if (substr($classificador, -8)== '00000000') {
                    echo" <td style='background-color:green;'>$nome_conta</td>";
                } else if (substr($classificador, -6)== '000000') {
                    echo" <td style='background-color:red;'>$nome_conta</td>";
                } else if (substr($classificador, -4)== '0000') {
                    echo" <td style='background-color:purple;'>$nome_conta</td>";
                }
                 else {echo" <td style='background-color:blue;'>$nome_conta</td>";}echo"
                
                
                <td>$saldo_final_anterior</td>
                <td>$porcento_anterior</td>
                <td>$saldo_final_ano</td>
                <td>$porcento_ano</td>
            </tr>\n";
        }
 
@mysql_close();
 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, primeiro, veja que está fazendo uma contagem de acessos por usuários diferentes.

Sabendo disso poderá fazer uma tabela separada para contar a quantidade de acessos.

 

historico_acesso

id

cod_user

data

ano

IP

 

e assim ao acessar o sistema se os dados forem corretos a tabela historico_acesso seria adicionado o cod_user que no caso seria o login ou até mesmo o id que vem de outra tabela a data que assim saberia qual o dia de acesso o ano que seria para relatório e o IP que seria uma segurança interessante.

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.