Ir para conteúdo

POWERED BY:

Arquivado

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

falcao544

[Resolvido] Incompatibilidade?

Recommended Posts

 

Eu ja vi isso, mas quando faco uma consulta, o mysql_fetch_row nao funciona direito! Exemplo:

 

<?php
$result = mysql_query("SELECT nome FROM tabela");
$valor = $mysql_fetch_row($result);
?>

 

Ai se eu do print_r no $valor ou var_dump, ele me retorna apenas um resultado, ai eu descobri que o que acontece eh que a cada resultado que o array recebe ele armazena no indice 0, ou seja cada resultado que vem do BD sobrepoe o que veio antes!

 

 

------------------------------

 

Resolvido!

 

O jeito foi usar um while e a funcao current();

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, resolveu, mas você entendeu o motivo do problema?

 

Veja, se você executa uma query que possa te retornar um Row, que é um conjunto de dados de um único registro, como se consultasse por um ID de chave primária específico, tudo bem você usar mysql_fetch_row().

 

Não é lá muito prático, mas tudo bem.

 

Mas se sua query pode retornar um Rowset que é um conjunto de dados de mais de um registro você vai ter, no mínimo, um array bidimensional.

 

Porém, as funções nativas do PHP referentes à MySQL (não sei MySQLi), não possuem uma forma simples de se obter Rowset da mesma forma que a PDO tem através do método fetchAll().

 

Sem uma biblioteca de abstração de dados, você DEVE iterar pelo recurso, populando uma matriz para ser usada fora dele:

 

$data = array();

while( $row = mysql_fetch_array( $queryResult, MYSQL_ASSOC ) ) {

   $data[] = $row;
}

print '<pre>'; print_r( $data )

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.