Formas de manipular os dados de uma busca MySQL
MYSQL_FETCH_ROW()
Executamos a seguinte busca:
Teremos então o seguinte resultado:

Chamamos a função mysql_fetch_row() e ela retornará os dados numa matriz (array) numérica, com chaves sendo números inteiros representando cada campo (começando com zero). Veja:
Esta busca nos retornou somente uma linha de resultado, mas se fizermos:
Teremos o seguinte resultado:

Agora, se chamarmos a função mysql_fetch_row() como fizemos antes teremos os mesmos dados retornados. Isso ocorre porque estas funções retornam somente uma linha por vez. Para obtermos todos os dados basta executar o seguinte código:
Temos o seguinte resultado na tela:
Fulano
Beltrano
Siclano
Este ciclo não continua infinitamente pois a função retorna FALSE quando não há mais resultados, finalizando o loop.
Note que o resultado não foi armazenado em nenhuma variável, ou seja, se chamarmos $arr, ele retornará seu último valor, FALSE.
Analisando o tipo de resultado que mysql_fetch_row() nos dá, ela só é recomendada para tabelas com um pequeno número de colunas. Claro que isto depende da aplicação.
Vamos para a próxima função: mysql_fetch_assoc()
Executamos a seguinte busca:
<?php
$result = mysql_query("SELECT * FROM tabela1 WHERE id=1");
?>
Teremos então o seguinte resultado:
Chamamos a função mysql_fetch_row() e ela retornará os dados numa matriz (array) numérica, com chaves sendo números inteiros representando cada campo (começando com zero). Veja:
<?php
$arr = mysql_fetch_row($result);
// $arr terá os seguintes valores
$arr = array (
0 => 1,
1 => "Fulano",
2 => "fulano@prov.com.br",
3 => "Campinas"
);
// se quisermos o nome da pessoa
echo $arr[1];
?>
Esta busca nos retornou somente uma linha de resultado, mas se fizermos:
<?php
$result = mysql_query("SELECT * FROM tabela1");
?>
Teremos o seguinte resultado:
Agora, se chamarmos a função mysql_fetch_row() como fizemos antes teremos os mesmos dados retornados. Isso ocorre porque estas funções retornam somente uma linha por vez. Para obtermos todos os dados basta executar o seguinte código:
<?php
while ($arr = mysql_fetch_row($result)){
echo $arr[1]; // retorna o nome
echo "<BR>"; // próxima linha
}
?>
Temos o seguinte resultado na tela:
Fulano
Beltrano
Siclano
Este ciclo não continua infinitamente pois a função retorna FALSE quando não há mais resultados, finalizando o loop.
Note que o resultado não foi armazenado em nenhuma variável, ou seja, se chamarmos $arr, ele retornará seu último valor, FALSE.
Analisando o tipo de resultado que mysql_fetch_row() nos dá, ela só é recomendada para tabelas com um pequeno número de colunas. Claro que isto depende da aplicação.
Vamos para a próxima função: mysql_fetch_assoc()

foi de grande ajuda!!! Valeu!
11/07/2005 12:47pm
(~20 anos atrás)
Estou desenvolvendo um sistema para faculdades, e para exibir os nomes dos alunos utilizei os informações do David Bittencourt, foi de grande ajuda!!!
Parabéns!
Parabéns!
19/05/2005 12:58pm
(~20 anos atrás)
David, parabéns pelo artigo.
Gostei da dica de atribuir os resultados da consulta a uma outra array para depois usar assim: $myarr[3]['nome'];
Gostei também do esclarecimento a respeito do uso de mysql_fetcha_array, como o segundo argumento para economizarmos espaço na memória.
Parabéns mesmo.
Gostei da dica de atribuir os resultados da consulta a uma outra array para depois usar assim: $myarr[3]['nome'];
Gostei também do esclarecimento a respeito do uso de mysql_fetcha_array, como o segundo argumento para economizarmos espaço na memória.
Parabéns mesmo.
24/07/2004 9:45am
(~21 anos atrás)
Perdão, as imagens não apareceram por causa de um bug no codigo do site que eu consertei semana passada.
O David enviou para mim as imagens novamente para eu consertar o artigo, mas só agora tive tempo para isso.
--Joao
O David enviou para mim as imagens novamente para eu consertar o artigo, mas só agora tive tempo para isso.
--Joao
14/12/2003 4:12pm
(~21 anos atrás)
Obrigado Bucaneiro... =)
É, com as imagens seria bem melhor... =(
--db
É, com as imagens seria bem melhor... =(
--db
10/12/2003 2:11pm
(~21 anos atrás)
cara formidavel, com exemplos práticos, abordagem simples e de uso comum.
Poxa galera consertem as imagens, este é um artigo de grande valor pros iniciantes.
Poxa galera consertem as imagens, este é um artigo de grande valor pros iniciantes.
10/12/2003 12:06pm
(~21 anos atrás)
Prefiro a função mysql_fetch_row(), pois é a mais rápida de todas.
Em relação ao artigo, muito bom MESMO, principalmente referente à dica do 'alias'.
Parabéns!
Em relação ao artigo, muito bom MESMO, principalmente referente à dica do 'alias'.
Parabéns!
09/12/2003 2:12pm
(~21 anos atrás)
No início eu também usava mysql_fetch_object() pois era como eu tinha aprendido.
Quando meus scripts começaram a ficar mais complicados eu vi a vantagem em usar mysql_fetch_array() como expliquei na última página do artigo.
Hoje, como minhas buscas no MySQL exigem diversas tabelas e grande número de campos, usar mysql_fetch_assoc() é a melhor opção pra mim.
Cada um precisa analisar a sua necessidade =)
--db
Quando meus scripts começaram a ficar mais complicados eu vi a vantagem em usar mysql_fetch_array() como expliquei na última página do artigo.
Hoje, como minhas buscas no MySQL exigem diversas tabelas e grande número de campos, usar mysql_fetch_assoc() é a melhor opção pra mim.
Cada um precisa analisar a sua necessidade =)
--db
08/12/2003 7:57pm
(~21 anos atrás)