Ir para conteúdo

POWERED BY:

Arquivado

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

Clear

fetch_array a partir do 2º registro

Recommended Posts

Boa tarde amigos !!!

 

Como eu faço para executar um mysql_fetch_array() de forma que ele só começe a me mostrar a partir do 2º registro. Quero ignorar o 1º registro.

 

Agradeço desde já !! :D

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Várias possibilidades:

 

- Pela própria query, você pode usar a cláusula LIMIT com offset:

 

 LIMIT 1,99999999999999999999999

Esses vários noves são para assegurar que nenhum resultado lá do fim da tabela deixe de vir

 

Usando um continue no seu laço (while, for, foreach...):

 

$i = 0;

while( $rows = mysql_fetc_array( $query ) ) {

   if( $i == 0 ) {
       continue;
   }

   $data[] = $rows;

   $i += 1;
}

Ou arrancando fora o primeiro item do array gerado pelo laço antes de utilizá-lo, com array_shift()

 

while( $rows = mysql_fetc_array( $query ) ) {

   $data[] = $rows;
}

array_shift( $data ); // Um print_r() e você verá que o índice zero não existe

Por questões de performance, a primeira é mais rápida, afinal o PHP não terá que interpretar nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Bruno !!!!

 

 

Vlw pela resposta ..foi beeeem esclarecedora mesmo..

 

Só mais uma perguntinha..

 

Como ficaria o uso do continue para o laço 'for'...

 

Eis o exemplo que esstou tentando:

 


$query = mysql_query ("SELECT * FROM tabela ORDER BY `id` DESC LIMIT 10");
$rows = mysql_num_rows ($query);

for ($i=0 ; $i<$rows ; $i++)
{

   if( $i == 0 ) {
       continue;
   }
$dados = mysql_fetch_array($query);

<img src="'.$dados[dado1].'" alt="" title="" border="0" /></a>


}

 

 

Obrigado e Abraço !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, pra falar a verdade eu não tenho muita certeza de como se itera um recurso MySQL com for-loop.

 

Nunca fiz :yay:

 

Esse código funciona como esperado? Se funciona, beleza. :thumbsup:

 

Mas tem duas coisas:

 

1. Na declaração do for-loop, use o sinal de menor ou igual ( <= ) no limitador. Se não o último elemento da iteração não vai aparecer.

 

2. Prefiro incrementar o identificador de iteração ($i) assim $i += 1.É ligeiramente mais rápido do que as outras possibilidades.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, pra falar a verdade eu não tenho muita certeza de como se itera um recurso MySQL com for-loop.

 

Nunca fiz :yay:

 

for( $i = 0; $row = mysql_fetch_assoc( $query ); $i++ )
{
   var_dump( $i, $row );
}

 

1. Na declaração do for-loop, use o sinal de menor ou igual ( <= ) no limitador. Se não o último elemento da iteração não vai aparecer.

 

Neste exemplo, me retornou todos os 96 registros.

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.