Ir para conteúdo
Fórum Script Brasil
  • 0

Diferença Ao Retonar Registro Do Banco


dlumeida

Pergunta

Estou com um problema em uma classe de conexão, sou novato em PHP e gostaria de saber o porque do ocorrido.

$resultado=$this->query($query);
	while ($result=$resultado->fetch_row()) {
  echo $result[0] . '<br/>';
	}
Esse código acima funciona corretamente, mas quando mudo o mesmo e deixo dessa maneira o script entra em loop infinito imprimindo somente o primeiro registro milhoes de veses.
$resultado=$this->query($query);
	$result=$resultado->fetch_row()
	while ($result) {
  echo $result[0] . '<br/>';
	}

alguém saberia me responder.

Obrigado.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Graymalkin,

mas não teria que dar certo? ao fim do array o mesmo vai ter o valor FALSE, com isso saindo do loop.

SO estou mudando a atribuição... porque eu estou usando uma função dentro de uma classe, e essa função tem que me retornar um array para que eu possa percorela em uma outra pagina. mas o fetch_row() vai estar disponivel somente dentro dessa classe. por isso tenho que rotorna um array com o fetch_row() já executado.

deu pra endender?

Link para o comentário
Compartilhar em outros sites

  • 0

Acho que vai ficar mais fácil de entender vendo o equivalente para o que você quer:

$resultado=$this->query($query);
$result=$resultado->fetch_row();
while ($result) {
  echo $result[0] . '<br/>';
  $result=$resultado->fetch_row();
}

Note que aí, explicitamente, eu chamo o método fetch_row() dentro do loop, atribuindo o registro corrente à $result. Na condição do loop, neste caso, eu só testo se $result é verdadeiro ou falso. No caso do primeiro código que você postou, esse teste é feito após a atribuição de fetch_row() à $result. Ou seja, as duas coisas são feitas em uma mesma linha, no primeiro caso, e em linhas diferentes no segundo.

Sacou? wink.gif

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Saquei...

Eu pensava que esse fetch_row() ou fetch_array() retornava uma matriz com todas as colunas e registros de uma SQL. Mas pelo visto ela retorna somente um registro né? tendo a obrigação de executar novamente o fetch_row().

Mas o meu problema ainda continua. pois eu criei uma classe para facilitar o retorno dos registros, e esse fetch_row() só está disponivel dentro de minha classe.

Se eu fazer o while com o fetch_row(), preencher uma matrix e retorna a mesma com a função solucionaria meu problema. Mas não existe uma maneira mais facil de fazer isso?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...