Buscando dados no MySQL com o PHP

O comando SELECT é usado para selecionar dados de um banco de dados.

Sintaxe
   1:select
2: nome_coluna(s)
3:from nome_tabela;
Para aprender mais sobre SQL visite o tutorial de SQL

Para que o PHP execute o comando acima devemos usar a função mysql_query(). Esta função é usada para enviar pesquisas ou comandos para uma conexão MySQL.

Exemplo

O exemplo seguinte seleciona todos os dados guardados na tabela pessoas. (O caractere * seleciona todas as colunas da tabela):
   1:<?php
2:$con = mysql_connect('localhost', 'banco', 'abc123') or
3: die('Não foi possível conectar');
4:
5:mysql_select_db("my_db", $con);
6:
7:$result = mysql_query('SELECT * FROM pessoas');
8:while($row = mysql_fetch_array($result)){
9: echo $row['nome_completo'];
10: echo "<br />";
11:}
12:mysql_close($con);
13:?>
O exemplo acima guarda os dados retornado pela função mysql_query() na variável $result.
Em seguinda nos usamos a função mysql_fetch_array() para retornar a primeira linha em um conjunto de registros como um array. Cada chamada ao mysql_fetch_array() retorna a próxima linha no conjunto de registros. A iteração while passa por todos os registros no conjunto. Para imprimir cada linha, nos usamos a variável $row.

A saida do código acima deve se parecer com o seguinte:

Pedro Griffin
Eduardo Quagmire
...

Mostrando o resultado em uma tabela HTML

O exemplo seguinte seleciona os mesmos dados do exemplo acima, mas mostrará os dados em uma tabela HTML.
   1:<?php
2:$con = mysql_connect('localhost', 'banco', 'abc123') or
3: die('Não foi possível conectar');
4:
5:mysql_select_db("my_db", $con);
6:
7:$result = mysql_query('SELECT * FROM pessoas');
8:echo "<table border='1'>
9:<tr>
10:<th>Nome completo</th>
11:<th>Idade</th>
12:</tr>";
13:while($row = mysql_fetch_array($result)) {
14: echo "<tr>";
15: echo "<td>" . $row['nome_completo'] . "</td>";
16: echo "<td>" . $row['idade'] . "</td>";
17: echo "</tr>";
18:}
19:echo "</table>";
20:mysql_close($con);
21:?>
A saída do código acima sera:

Nome completoIdade
Pedro Griffin35
Eduardo Quagmire33


Fonte

19 comentários:

  1. cara, muuuuito obrigado!!!

    vc é o professor mais claro da net!!!

    ResponderExcluir
  2. talvez alguem possa me ajudar
    preciso colocar uma variável php em uma consulta sql

    SELECT texto FROM $variavel WHERE...

    qual a sintaxe para $variavel..
    entra aspas, aspas duplas, pontos, ...

    vlww

    ResponderExcluir
  3. Munir isso tem a ver com a sintaxe sql e portanto com o banco de dados. No caso do mysql, você deve usar aspas simples nos valores de texto, mas realmente, a melhor forma de você saber é olhar a sintaxe do sql.

    ResponderExcluir
  4. Fiz o exemplo mais completo e aparece essa mensagem

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\luis.php on line 13
    Nome Endereco

    ResponderExcluir
  5. meu banco de dados esta na raiz do Msql

    ResponderExcluir
  6. endereco do meu banco de dados
    C:\xampp\mysql\data
    tem a pasta agenda
    e dentro dela que tem a tabela dados

    por que esse erro ? ta no lugar errado ?

    ResponderExcluir
  7. Gostaria de saber como faço para apresentar o conteudo de apenas uma pessoa

    ResponderExcluir
  8. QUERIA SABER COM FAÇO PARA EXIBIR UMA CONSULTA COM DA SOMA DOS VALORES DE 3 CAMPOS DE UMA TABELA.

    CAMPOS: sist_com, adequacoes e barragens.

    TABELA servicos:

    CREATE TABLE IF NOT EXISTS servicos ( idservico int(11) NOT NULL AUTO_INCREMENT, municipio varchar(100) DEFAULT NULL, sist_comp int(11) DEFAULT NULL, adequacoes int(11) DEFAULT NULL, barragens int(11) DEFAULT NULL, contato1 varchar(45) DEFAULT NULL, telefone1 varchar(45) DEFAULT NULL, contato2 varchar(45) DEFAULT NULL, telefone2 varchar(45) DEFAULT NULL, obs longtext, PRIMARY KEY (idservico) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

    ResponderExcluir
    Respostas
    1. tente.. select (sist_com + adequacoes + barragens) as soma from servicos

      Excluir
    2. Thiago, desculpa! Esqueci de especificar que quero exibir os resultados em uma tabela abaixo, cada campo com seu somatório separado! Desde ja agradeço

      Excluir
  9. boa tarde, estou com a situação, tenho vários clientes com sites, todos os sites tem a mesmas tabelas de banco de dados, porem cada um inseriu seu conteúdo, gostaria de criar uma pagina que agregue todos os conteúdos dos clientes.. alguém pode me ajudar?

    ResponderExcluir
  10. Parabens pelo blog. Sensacional, internet precisa de mais pessoas assim como você que compartilhe conhecimento e faça nome na internet. Parabens, vou compartilha esse blog.

    ResponderExcluir
  11. Nunca um conteudo foi tão funcional comigo quanto esse. Fiz da mesma forma e deu certinho. Obrigado.

    ResponderExcluir
  12. Alguém pode me ajuda? Preciso fazer download de um arquivo em PDF usando o CPF da pessoa na qual já tenho uma tabela com cpf e nome.

    ResponderExcluir
  13. Boa tarde, me Chamo Robilan Silva e estou desenvolvendo um site para imobiliária aqui da região, porém não sou programador, tenho o arquivo mysql (banco de dados), tenho o script de importação dos dados para as tabelas, pois este foram feitos por um programador que infelizmente veio a falecer e não conheço ninguém que poderia me ajudar a fazer a exibição destes dados no site, sou designer...

    Se puder me ajudar, lhe envio os arquivos para dar uma olhada e o sr me fala quanto cobraria pelo serviço, como disse, preciso exibir os dados na home e tb na página de resultados de busca dos imóveis, tenho olhado muitos tutoriais na internet, porém sem êxito por falta de conhecimento.

    Desde já, agradeço a sua atenção.

    ResponderExcluir
  14. olá galera,
    tenho uma tb_ramais que dou um select nela e vem as informações que la esta cadastrada, como faço para quando eu escolher certo ramal, aparecer os dados em uma tabela, tipo quem usa o ramal, setor, e-mail da pessoa.

    ResponderExcluir