Clear 0 Denunciar post Postado Dezembro 29, 2011 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
Bruno Augusto 417 Denunciar post Postado Dezembro 29, 2011 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
Clear 0 Denunciar post Postado Dezembro 29, 2011 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
Bruno Augusto 417 Denunciar post Postado Dezembro 30, 2011 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
Kakashi_Hatake 267 Denunciar post Postado Dezembro 30, 2011 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