Skip Registration within a while

6

I would like to know how do I skip a record within a while?

For example, when type is 2 it jumps

while($pessoa = mysqli_fetch_object($query)){
  if($pessoa->tipo == 2){break;}
//continua a exibição de pessoa
}

However, when running this it for the execution of all the while, how to solve?

    
asked by anonymous 16.06.2017 / 19:42

5 answers

7

Using the break command will actually break the loop. For you to continue normally use continue;

That is ..

while($pessoa = mysqli_fetch_object($query)){
  if($pessoa->tipo == 2)
    continue;
 //  não irá executar os comandos que tiverem após essa condição.
}
    
16.06.2017 / 19:45
5

Only execute condition if different from 2

 while($pessoa = mysqli_fetch_object($query)){
    if($pessoa->tipo != 2){
     //continua a exibição de pessoa
    }
 }
    
16.06.2017 / 19:51
4

Can you construct a logic that 'excludes' type 2 records, pergutando in comparison type is different from two? In code it looks like this:

while($pessoa = mysqli_fetch_object($query)){
  if($pessoa->tipo != 2){
    //executa todas as ações ... dos demais tipos
  }
}
    
16.06.2017 / 19:52
2

All the answers already satisfy your need, but I propose a different approach:

while($pessoa = mysqli_fetch_object($query)){
  if( in_array($pessoa->tipo, array(/* 2,...outros valores que devem ser pulados*/) ) ){
    continue;
  }
}

Or even

while($pessoa = mysqli_fetch_object($query)){
  if( ! in_array($pessoa->tipo, array(/* 2,...outros valores que devem ser pulados*/) ) ){
    /* Seu código */
  }
}

So I think it's a little easier to define which records (If more than one), it should skip.

link

    
16.06.2017 / 20:03
2

If you want to ignore tipo of 2 completely, it would be ideal not to get them from the database, using for example:

$query = "SELECT * FROM tabela WHERE tipo != 2";

If 2 is maximum type, you can use tipo < 2 .

In this way the mysqli_fetch_object will only get the values where tipo is not 2 , without needing to handle this in PHP.

Another option, different from the others, is to use GOTO , jmp :

while($pessoa = mysqli_fetch_object($query)){

  if($pessoa->tipo === '2'){
     goto fim;
  }

  echo 'Você não é 2!';  // Executa o que tem que fazer.

  fim: // Se ele for '2' ele vem direto para cá. :D
}

Try this.

    
17.06.2017 / 00:10