Display only one message at the end of an operation within a WHILE

1

I have a situation. I do a search on a table and from the data returned, I insert into a new table and update the current one. Ex:

$busca = $link->prepare("SELECT valor FROM tabela1 WHERE funcionario = ? and confere = 0");

$busca->bind_param("i", $funcionario);

$busca->execute();

$busca->bind_param($valor);

$busca->store_result();

if($busca->num_rows() == 0){
  echo "Nenhuma linha na primeira tabela";
} else {

  while($busca->fetch()){

    $novo_registro = $link->prepare("INSERT INTO tabela2 (caixa) VALUES (?)");
    $novo_registro->bind_param("i", $valor);

    $novo_registro->execute();

    if($novo_registro == true){

      $update_tabela1 = $link->prepare("UPDATE tabela1 SET confere = 0 WHERE funcionario = ?");

      $update_tabela1->bind_param("i",$funcionario); 

      $update_tabela1->execute();

      if($update_tabela1 == true){

      echo "Ok<br>Debitado com Sucesso.";

      }else{

      echo "erro ao tentar atualizar a tabela 1";

     } // Esta chave fecha if($update_tabela1 == true){

    } else{

      echo "Oocrreu um erro ao executar a inserção.";

    } // Esta chave fecha if($novo_registro == true){


  } // Esta chave fecha o while($busca->fetch()){


} // Esta chave fecha if($busca->num_rows() == 0){

It's working okay, though I'm having difficulty returning the message

  

Okay. Debited Successfully.

When I have MORE than ONE record in tabela1 , the success message appears more than once because of while($busca->fetch()){ .

HowcanIproceedinthissituation.Ijustwantedafinalreturnofsuccessorfailure,likethis:

    
asked by anonymous 21.09.2017 / 21:50

3 answers

2

Web, what you can do is to use a variable as an auxiliary, follow this example:

// variavél auxiliar
   $auxiliar = "";

// seu While
   while( $busca->fetch() )
   {
       if ( $auxiliar != $update_tabela1 )
       {
         // printa os dados
       }

     // aqui você atribiu o valor de $update_tabela1 para $auxiliar
       $auxiliar = $update_tabela1;
   }

See if this works and if it helps. :)

    
21.09.2017 / 22:32
2
//código ocultado

$mensagem = ""; // declara essa variavel antes do while

//código ocultado

while($busca->fetch()){

//código ocultado

    if($update_tabela1 == true){
        $mensagem = "Ok<br>Debitado com Sucesso."; //atribui uma mensagem a ela
    }

//código ocultado


if(!empty($mensagem)){  //no fim do código você exibe a mensagem
    echo $mensagem;
}
    
21.09.2017 / 22:34
0

By searching I could find a solution. Let me know if it's feasible:

while($busca->fetch()){

  if (!$i++){
 if($update == true){
   
   echo "Ok<br>Debitado com sucesso";
 
 }else{
  
   echo "Erro<br>Falha ao debitar";
 
  } // Esta chave fecha o if($update == true){
  
   }// Esta chave fecha if (!$i++){
 
} // Esta chave fecha o while aberto acima

It worked perfectly, but is it a viable way?

    
22.09.2017 / 13:20