Ir para conteúdo

Arquivado

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

Marrom

pegar os 3 primeiros registros de uma busca ?

Recommended Posts

Pessoal

 

fiz uma busca no BD :

 

$sql = "SELECT * FROM clientes";  $rsCli = mysql_query($sql) or die(mysql_error());  $totalRows = mysql_num_rows($rsCli);

aí eu utilizei o código abaixo para mostrar todos os resultados :

 

while($array_cli = mysql_fetch_array($rsCli)){             $id = $array_cli['id'];              $nome = $array_cli['nome'];    echo $id;echo $nome;}      

Pelo que me parece o código acima cria um array com o resultado do select. Pórem ele me mostra todos os ids e nomes da busca, porém eu só preciso do 3 primeiros ... como fazer ?

 

Agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá uma estudada/pesquisada sobre: LIMIT, do Mysql. ;)

michelsp, obrigado pela "luz" ...

 

o problema do LIMIT na query é que ele também afeta o total de linhas buscadas, ou seja se eu colocar no select LIMIT 3 ele só buscará as 3 primeiras linhas e mostrará as 3 primeiras linhas ... porém nesta mesma tela eu informo o total de clientes cadastrados na base através da função : mysql_num_rows e utilizando o limit aparecerá um total de 3 clientes cadastrados, quando na verdade são mais ...

 

Concluindo :

 

Eu preciso informar o total de clientes cadastrados ( e por isso não posso utilizar o limit ), porém só devo mostrar os 3 primeiros ?

 

e aí ? tem outro jeito ?

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz, tá meio confuso o q você quer.Se você quer mostrar o número de registros de uma tabela, usa o $totalRows = mysql_num_rows($rsCli);echo $totalRows; // Mostra a quantidade de registrosQual a necessidade de mostrar só os três primeiros registros ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

2 query's, ou então você usa, por exemplo: 'mysql_result' e mostra somente os registros q desejar. 

pois é acabei optando por 2 selects ... obrigado

Rapaz, tá meio confuso o q você quer.Se você quer mostrar o número de registros de uma tabela, usa o $totalRows = mysql_num_rows($rsCli);echo $totalRows; // Mostra a quantidade de registrosQual a necessidade de mostrar só os três primeiros registros ?

Leandru .... a necessidade nunca é nossa ... é sempre do cliente. Ele precisa que apareça uma lista com os 3 primeiros clientes e o total de clientes cadastrados, não sei o pq, porém ele quer assim, então eu tenho que fazer ...Acabei utilizando a opção de 2 selectsvaleu pela força

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marrom, eu tenho uma classe que exibe uma determinada quantidade de registros por página (p.ex. "página 1 de 3"). Pode ser interessante p/você, pois não precisará de dois selects:/* DEFINIÇÃO DA CLASSE */<?Class Paginador{ var $pagina; var $totalPaginas; var $primeiraLinha; var $ultimaLinha; var $totalLinhas; var $linha; //construtor function Paginador( $pagina= 1, $totalLinhas=0, $linhasPorPagina ) { if ( $pagina <= 0 ) { $pagina= 1; } if ( $totalLinhas < 0 ) { $totalLinhas= 0; } $this->pagina= $pagina; $this->totalLinhas= $totalLinhas; $this->linha= 0; //definir intervalo a ser impresso $this->totalPaginas= ceil( ( $this->totalLinhas / $linhasPorPagina ) ); if ( $this->pagina > $this->totalPaginas ) { $this->pagina= $this->totalPaginas; } if ( $this->pagina <= $this->totalPaginas ) { $this->ultimaLinha= ( $this->pagina * $linhasPorPagina ); $this->primeiraLinha= ( $this->ultimaLinha - $linhasPorPagina ) + 1; } } //end construtor //recuperar os dados contidos no resultset, pertencentes ao intervalo a ser impresso function getDados( $conn, $result ) { while ( $oDado= $conn->getDados( $result ) ) { ++$this->linha; if ( $this->totalPaginas >= $this->pagina and $this->linha >= $this->primeiraLinha and $this->linha <= $this->ultimaLinha ) { return ( $oDado ); } }//end while }//end getDados}//end class paginador?>NO SEU PROGRAMA, FAÇA://sua seleção dos registros$sql= "SELECT * FROM clientes";$rsCli= mysql_query($sql) or die(mysql_error());$totalRows= mysql_num_rows($rsCli); //CLASS PAGINADORrequire( 'paginador.class.php' );$pagina= 1; // página a ser exibida$linhas= 3; // qtde de linhas a ser exibida na página acima//OBJETO PAGINADOR$Paginador= new Paginador( $pagina, $linhas );//EXIBINDO OS REGISTROS (APENAS, A QTDE DEFINIDA ACIMA)while ( $oCliente= $Paginador->getDados( $conn, $rsCli ) ){ echo $oCliente->id; echo $oCliente->nome;}Espero ter contribuído.

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.