-rafael- 1 Denunciar post Postado Fevereiro 15, 2010 qual a diferença entre mysql_fetch_array e mysql_fetch_assoc?? quando uso um ou outro?? sempre para pegar os resultados de uma consulta eu preciso utilizar mysql_fetch_array? ou existe outra forma? obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 15, 2010 mysql_fetch_array() mysql_fetch_assoc() mysql_result() Compartilhar este post Link para o post Compartilhar em outros sites
-rafael- 1 Denunciar post Postado Fevereiro 15, 2010 ola obrigado! mas de qualquer forma, tem que dar o while (fazer o loop)? Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 15, 2010 Nao. Na maioria das vezes o fetch_array() é utilizado com o While, mas o não depende dele. Compartilhar este post Link para o post Compartilhar em outros sites
-rafael- 1 Denunciar post Postado Fevereiro 15, 2010 o detalhe é que a minha consulta vai retornar apenas 1 linha, pois to fazendo ela pelo ID quais desses comandos seria melhor pra retornar essa linha? mais uma vez, obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Fevereiro 15, 2010 Por padrão use mysql_fetch_assoc para apenas uma linha $linha = mysql_fetch_assoc($result); echo $linha['id']; echo $linha['texto']; Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 15, 2010 você pode usar o fetch_assoc(), por que é mais rápido. Ele pega o valor do campo no banco de dados igualmente como fetch_array(). Porém, pelo nome do campo. Exemplo fetch_assoc() abaixo: $sql = "select codigo, nome, idade from tabela LIMIT 1"; $exe = mysql_query($sql); $res = mysql_fetch_assoc($exe); echo $res['codigo'].'<br>'; echo $res['nome'].'<br>'; echo $res['idade'].'<br>'; E pelo fetch_array(), você pode ir tanto pelo nome do campo como pelo seu indice na tabela ou sequência. [code] $sql = "select codigo, nome, idade from tabela LIMIT 1"; $exe = mysql_query($sql); $res = mysql_fetch_array($exe); echo $res['codigo'].'<br>'; echo $res['nome'].'<br>'; echo $res['idade'].'<br>'; echo $res['1'].'<br>'; echo $res['2'].'<br>'; echo $res['3'].'<br>'; Compartilhar este post Link para o post Compartilhar em outros sites
-rafael- 1 Denunciar post Postado Fevereiro 15, 2010 ok pessoal vlw pela ajuda obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 15, 2010 você pode usar o fetch_assoc(), por que é mais rápido. Acho que não é mais rápido que mysql_result, já que mysql_fetch_* cria array, o que ocupa memória, além de gastar mais tempo Para ter certeza, tem que ver o fonte do PHP, a fim de verificar como essas funções são implementadas. Mas, para recuperar apenas uma linha, ainda prefiro mysql_result(). http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
-rafael- 1 Denunciar post Postado Fevereiro 15, 2010 Beraldo pela documentação do php é recomendado utilizar mysql_fetch_* retirado da documentação do php sobre o mysql_result() Alternativas de alta performance recomendadas: mysql_fetch_row(), mysql_fetch_array(), mysql_fetch_assoc() e mysql_fetch_object(). Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 16, 2010 Interessante. Eu não havia lido isso. Parece controverso, já que mysql_result pesquisa por somente um valor, sem precisar usar mais memória e processador. Peculiaridades malucas do PHP... :P Compartilhar este post Link para o post Compartilhar em outros sites
pabon 0 Denunciar post Postado Fevereiro 16, 2010 Por ser mais legível no código prefiro usar fetch_object //Com fetch_array echo "txt".$res['campo']."txt"; //Com fetch_object echo "txt $res->campo txt"; //Código mais limpo Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Fevereiro 17, 2010 Por ser mais legível no código prefiro usar fetch_object //Com fetch_array echo "txt".$res['campo']."txt"; //Com fetch_object echo "txt $res->campo txt"; //Código mais limpo lamentamos pela performance das suas aplicações =\ bah, td bem.. não sejamos tão extremistas, mas se começar a passar de 50k registros o fetch_obj começa a ficar pra trás //Com fetch_assoc echo "txt {$res['campo']} txt"; Compartilhar este post Link para o post Compartilhar em outros sites
chroda 0 Denunciar post Postado Janeiro 20, 2011 FONTE: http://www.php.net/manual/pt_BR/function.mysql-result.php Quando trabalhando com um grande conjunto de resultado, você deve considerar o uso de uma das funções que retornam toda a linha(especificadas abaixo). Estas funções retornam o conteúdo de multiplas células em uma chamada de função, elas são MUITO mais rapidas do que mysql_result(). Também note que especificar um índice do campo é muito mais rapido do que especificar o nome do campo ou tabela.campo. Compartilhar este post Link para o post Compartilhar em outros sites