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

Atualizar um campo dentro do while na mesma tabela


Sorrentino

Pergunta

Oi Pessoal... Estou tendo dificuldade em fazer funcionar um calculo em PHP. A rotina que fiz (abaixo ), tem a seguinte função....

1) Por um FORM envio a data e valor final....

2) quando envio o form  ele busca o valor inicial em uma tabela chamada  tb_grupo

3) Usa os  dados enviados pelo form e dados da tabela para fazer calculos

4) faz  a inclusao dos dados em uma tabela chamada Tb_lancamento.

5) Atualiza a tabela Tb_grupo

6 )entra em um while de uma tabela chamada tb_participantes...

7) Na primeira passada do while os lancamentos ficam corretos.... porem na segunda em diante ele le, mas os valores atualizados ficam errados...

Detalhe.... fiz o teste colocando echo "...." no lugar de gravar e o valor vem correto...

 

alguém pode me dar uma dica onde estou errando?

 

o ARQUIVO ESTA TODO COMENTADO

 

Grato

 

<?php
session_start(); 

            $_SESSION["sessiontime"] = time() + 2400;    
            include_once("conexao.php");
                  
                //dados inseridos no formulario
                    $Lan_grupo=$_POST['Lan_grupo'];
                    $Lan_data=$_POST['Lan_data'];
                    $Lan_saldo_final= //$_POST['Lan_saldo_final'];
                    
                                    
                        // busca dados do grupo para calculo dos novos valores
                     $sql = "SELECT * FROM tb_grupo WHERE Gr_id = '$Lan_grupo'";
                         $executa = mysqli_query($conn, $sql);
                         $cotacao=$executa->fetch_array();
                // pega saldo do grupo para ser o saldo inicial da operacao
                         $Lan_saldo_inicial=$cotacao[2];
                         $Lan_cotas_atuais_grupo=$cotacao[3];  // Total de cotas no inicio do lancamento
                         $Lan_valor_cota_inicial=$cotacao[4];  // valor da cota no inicio do lancamento
                // lucro total em dolares (saldo final - saldo_inicial)
                         $Lucro  = $Lan_saldo_final-$Lan_saldo_inicial; 
                // valor atualizado por cota (divide saldo_final pelo numero de cotas totais no grupo)
                        $Valor_cotas = $Lan_saldo_final/$Lan_cotas_atuais_grupo;  
                // valor do lucro por cota  // divide lucro pelo numero de cotas totais no grupo
                        $lucro_por_cotas = $Lucro/$Lan_cotas_atuais_grupo;  // valor da cota individual
                        // valor da cota inicial
                        $Cota_inicio=$Lan_saldo_inicial/$Lan_cotas_atuais_grupo;
                        
                
                    
//===========================================================================================================================    
                // inclui a operacao em lancamento usando os dados digitados e dados vindos de tb_grupo
//===========================================================================================================================                        
                          // Inclui o lancamento no TB_lancamento   
                        $result_usuario = "INSERT INTO tb_lancamento
                            (Lan_id, Lan_grupo, Lan_data, Lan_saldo_inicial, Lan_saldo_final, Lan_cotas_grupo, Lan_valor_cota_inicial ) 
                    VALUES ('NULL', '$Lan_grupo', '$Lan_data', '$Lan_saldo_inicial', '$Lan_saldo_final', '$Lan_cotas_atuais_grupo' , ' $Lan_valor_cota_inicial')";
                            $resultado_usuario = mysqli_query($conn, $result_usuario);
                            
                            
                        //   atualizacao dos valores em tb_grupo
                            $grupo = "UPDATE tb_grupo SET 
                            Gr_saldo='$Lan_saldo_final',
                            Gr_valor_cotas='$Valor_cotas',
                            Gr_dt_ultimo='$Lan_data'
                        WHERE Gr_id = '$Lan_grupo'";
                     mysqli_query($conn, $grupo); // executa a query lista 
                    
            
                        
//===========================================================================================================================    
                          //    lanca resultado e comissoes nos participantes  //
//===========================================================================================================================                        
    
                        // seleciona o participante para buscar dados
                        $participante = "SELECT * FROM tb_participante  where Par_grupo=$Lan_grupo";
                        $participa = $conn->query($participante);
                        
    while($participa10 = $participa->fetch_row() )
    {
                        $Usuario_id=$participa10[0];  // id do usuario atual
                        $Usuario=$participa10[1];     // nome do participante
                        $Usuario_cotas=$participa10[7];  //  numero de cotas atuais do participante
                        $Captador=$participa10[9];       //  Id do captador
                        $cap_comissao=$participa10[10];   // % da comissao a pagar ao captador
                        $Trader=$participa10[11];          // id do trader
                        $Trader_comissao=$participa10[12];  // // % da comissao a pagar ao trader
                        $Comissao_em_valor_captador=0;  // zera comissao do captador em USD
                        $Comissao_em_cotas_captador = 0;  //zera valor em cotas pagas ao captador
                        $Comissao_em_valor_trader=0;  // comissao do captador em USD
                        $Comissao_em_cotas_trader = 0;  // valor em cotas pagas ao trader
                        $Comissoes_pagas_em_cotas=0;  // total a debitar nas cotas do investidor
                        $Usuario_nova_cota= 0;        // cotas do investidor
                        $Lucro_usuario_valor =0;  // lucro do participante em valor
                        $Lucro_usuario_cotas =0;    // lucro participante em cotas 
                        Echo "<h3>".$Usuario."----Valor inicial  :  ".$Lan_saldo_inicial.
                        "   ----  Valor final da operação  :  ".$Lan_saldo_final.
                        "---Cotas atuais  : ".$Usuario_cotas."<br>";

        if(    $Usuario_cotas>0)
        {                                  
                    $Lucro_usuario_valor = $lucro_por_cotas*$Usuario_cotas;  // lucro do investidor em valor
                    $Lucro_usuario_cotas = $Lucro_usuario_valor/$Usuario_cotas;    // lucro investidor em cotas 
                            
            //===============================================================================================
                    if($cap_comissao >0){
                    $Comissao_em_valor_captador=(($Lucro_usuario_valor*$cap_comissao)/100);  // comissao do captador em USD
                    $Comissao_em_cotas_captador = ($Comissao_em_valor_captador/$Valor_cotas);  // valor em cotas pagas ao captador
                    }else{ 
                    $Comissao_em_valor_captador=0;  // comissao do captador em USD
                    $Comissao_em_cotas_captador = 0;  // valor em cotas pagas ao captador
                    Echo "<h1>Calculo da Comissao do Captador na operaçao  =  ".$Comissao_em_cotas_captador."</h1><hr>";
                    }
                    
            //=================================================================================================
                    if($Trader_comissao >0 ){
                    $Comissao_em_valor_trader=(($Lucro_usuario_valor*$Trader_comissao)/100); // comissao em USD
                    $Comissao_em_cotas_trader = ($Comissao_em_valor_trader/$Valor_cotas);   // valor em cotas pagar ao trader 
                    }else{ 
                    $Comissao_em_valor_trader=0;  // comissao do captador em USD
                    $Comissao_em_cotas_trader = 0;  // valor em cotas pagas ao trader
                    Echo "<h1>Calculo da Comissao do trader na operação =  ".$Comissao_em_cotas_trader."</h1><hr>";
                    }
                    
            //==================================================================================================
                    if($Lucro <= 0){
                    $Usuario_nova_cota=$Usuario_cotas;
                    } else {
                    $Comissoes_pagas_em_cotas=($Comissao_em_cotas_captador+$Comissao_em_cotas_trader);  // total a debitar nas cotas do investidor
                    $Usuario_nova_cota=($Usuario_cotas-$Comissoes_pagas_em_cotas); // saldo em cotas do investidor
                    }
                    Echo "<h1>Investidor Cotas atuais  =  ".$Usuario_cotas." --- Nova cota  =  ".$Usuario_nova_cota."</h1><hr>";
        
            //==================================================================================================        
            //  Update no Investidor   (AQUI ESTA DANDO CERTO)
                $lanca = "UPDATE tb_participante SET 
                Par_cotas = $Usuario_nova_cota
                WHERE Par_id = $Usuario_id";
                mysqli_query($conn, $lanca); // executa a query lista
                
                        $investidor = "SELECT * FROM tb_participante  WHERE Par_id = $Usuario_id";
                        $investe = $conn->query($investidor);
                        $investido=$investe->fetch_array();
                        echo "<h1>Nova cota do investidor gravada ".$investido[7]."</h1><br>";
                
            //==================================================================================================
              if($Lucro> 0.00)
            {
              //==================================================================================================
              
             // (NESTE LANCAMENTO OS VALORES são GRAVADOS, POREM COM VALORES ERRADOS A PARTIR DO SEGUNDO REGISTRO)
              
                //  Update no Captador 
                if($cap_comissao > 0)
                  {
                    if($Captador!=$Usuario_id){
                    $lanca7 = "UPDATE tb_participante SET 
                    Par_cotas = (Par_cotas+$Comissao_em_cotas_captador)
                    WHERE Par_id = $Captador";
                     mysqli_query($conn, $lanca7); // executa a query lista
                     
                        $captador = "SELECT * FROM tb_participante  WHERE Par_id = $Captador";
                        $captado = $conn->query($captador);
                        $captado1 =$captado->fetch_array();
                        
                        echo "<h1>Nova cota do captador gravada --- ".$captado1[7]."</h1><br>";
                    }else{ echo "<h1>Não tem captador</h1><br>";}
                }
            //===================================================================================================                    
                //  Update no Trader 
                
                // (AQUI TAMBEM...NESTE LANCAMENTO OS VALORES são GRAVADOS, POREM COM VALORES ERRADOS A PARTIR DO SEGUNDO REGISTRO)
                
                if($Trader_comissao > 0)
                {
                    if($Captador!=$Usuario_id){
                    $lanca3 = "UPDATE tb_participante SET 
                    Par_cotas = Par_cotas+$Comissao_em_cotas_trader
                    WHERE Par_grupo=$Lan_grupo && Par_id = $Trader";
                     mysqli_query($conn, $lanca3); // executa a query lista
                
                        $operador = "SELECT * FROM tb_participante  WHERE  Par_id = $Trader";
                        $operado = $conn->query($operador);
                        $operador1 =$operado->fetch_array();
                        echo "<h1>Nova cota do trader gravada ".$operador1[7]."</h1><br>";
                    }else{ echo "<h1>Não tem Trader</h1><br>";}
                }
                        
            //===================================================================================================    
            // fim da comissao
            } // fim do if lucro >0
        //===================================================================================================         
        } // fim do if cotas>0
    echo "================================================================================<br> ";      
    } // fim do while 
?>

 

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...