sábado, 22 de dezembro de 2012

Estamos de volta! (:
Nesse artigo, estarei mostrando como é possível recuperar registros do banco de dados com PHP. Essa tarefa consiste em pegar os registros já gravados no banco e exibi-los novamente.
Suponhamos uma tabela de produtos com três campos: "Id, Descrição, Preço e Quantidade". Vamos recuperar o registro que possui o Id de número 3.

<?php

    // variáveis para a conexão com o banco MySQL
    $server = 'localhost';
    $banco = 'nome_do_banco';
    $user = 'usuario';
    $senha = 'senha';
    
    // conexão com o banco MySQL
    mysql_connect($server, $user, $senha);
    mysql_select_db($banco);
    
    // query SQL
    $query = "SELECT descricao, preco, quantidade FROM produtos WHERE id = 3";
    // executa a query e 'grava' o resultado em $res
    $res = mysql_query($query) or die(mysql_error());

    // busca os campos da query
    $campo = mysql_fetch_array($res);
    // armazena cada campo do banco em uma variável
    $desc = $campo["descricao"];
    $preco = $campo["preco"];
    $quant= $campo["quantidade"];

    // exibe o resultado
    echo "Descrição: ".$desc;
    echo "Preço: ".$preco;
    echo "Quantidade: ".$quant;                
?>

Dessa forma, exibimos o resultado do item com Id 3.
Repare que, para buscar os campos dentro do banco de dados, usamos $campo = mysql_fetch_array($res), onde $res é a variável que retorna a query ($res = mysql_query($query);).
Após buscar os campos, armazenamos cada um em uma variável:


$desc = $campo["descricao"];
$preco = $campo["preco"];
$quant= $campo["quantidade"];

Depois, simplesmente exibimos.

E para exibir mais de um item?

Simples, vamos criar um laço for que vá de 0 até o número de registros encontrados na query. Vamos lá.
Considere que a conexão com o banco já foi feita. Vamos selecionar os registros de 1 a 5.

...

    $query = "SELECT descricao, preco, quantidade FROM produtos WHERE id >= 1 AND id <=5";
    // executa a query e 'grava' o resultado em $res
    $res = mysql_query($query) or die(mysql_error());
    // pega o número de linhas que a query retornou
    $num_reg = mysql_num_rows($res);

          // faz um loop de 0 até o numero de linhas encontradas
    for($i=0;$i<$num_reg;$i++) {
       // busca os campos da query
       $campo = mysql_fetch_array($res);
       // armazena cada campo do banco em uma variável
       $desc = $campo["descricao"];
       $preco = $campo["preco"];
       $quant= $campo["quantidade"];

       // exibe o resultado
       echo "Descrição: ".$desc;
       echo "Preço: ".$preco;
       echo "Quantidade: ".$quant;
       echo "---------------------";             
    }
?>

Repare que a lógica é praticamente a mesma, a única diferença, é que, usamos mysql_num_rows($res) que pega o número de linhas que a query retornou. 
A partir daí, usamos ela para fazer o loop, que vai de 0 até a variável que armazena as linhas da query ($num_reg = mysql_num_rows($res)).

Simples né? É isso aí galera, abraço, bons estudos e até a próxima.

mysql_fetch_array();

mysql_num_rows();



Categories:

6 comentários:

  1. Anônimo18.10.13

    Bom código irei testa-lo

    ResponderExcluir
  2. # 1366 - Incorrect integer value: '' for column 'id_destaque' at row 1

    ResponderExcluir
  3. Como resolver este erro: # 1366 - Incorrect integer value: '' for column 'id_destaque' at row 1

    ResponderExcluir
  4. Como resolver este erro: # 1366 - Incorrect integer value: '' for column 'id_destaque' at row 1

    ResponderExcluir
  5. # 1366 - Incorrect integer value: '' for column 'id_destaque' at row 1

    ResponderExcluir
  6. My relatives all the time say that I am killing my time here at net, except I know I am getting experience everyday by reading such pleasant content.

    ResponderExcluir