You are on page 1of 10

15/5/2014 PHP e MySQL para iniciantes – Consulta Simples | Thiago Belem / Blog

http://blog.thiagobelem.net/php-e-mysql-para-iniciantes-consulta-simples/ 1/10
PHP e MySQL para iniciantes – Consulta Simples
Fala minha gente!
Hoje consegui um tempinho para voltar a postar no blog e resolvi voltar um com uma sequencia de
tutorias básicos sobre MySQL + PHP para iniciantes.
Nessa primeira parte vamos criar um script que irá resgatar as notícias de um banco de dados e fazer
mais alguns procedimentos.
Vamos usar MySQLi ao invés de MySQL. Mesmo sendo um recurso avançado para alguns, é bom
ensinar uma forma correta e segura de trabalhar pra quem tá começando.
• Saiba mais sobre o MySQLi aqui e aqui
• Os recursos utilizando aqui (MySQLi) só funcionam em PHP 5+ e MySQL 4.1+
Essas serão as tabelas que iremos utilizar nesse e nos próximos tutoriais:
$t hiagobel em- >bl og();
Artigos e tutoriais sobre PHP, CakePHP, WordPress, jQuery, HTML e CSS
15/5/2014 PHP e MySQL para iniciantes – Consulta Simples | Thiago Belem / Blog
http://blog.thiagobelem.net/php-e-mysql-para-iniciantes-consulta-simples/ 2/10
Iremos usar essas tabelas para armazenar notícias que estarão ligadas à categorias.
Cada notícia pertence a uma categoria
Cada categoria contém zero ou mais notícias
A imagem acima foi criada utilizando o MySQL Workbench , uma ótima ferramenta de modelagem de
banco de dados.
Para criar essas tabelas em seu banco de dados, execute esse código SQL:
Vamos iniciar o nosso script criando um pequeno script de conexão ao banco de dados:
01 -- -----------------------------------------------------
02 -- Table `categorias`
03 -- -----------------------------------------------------
04 DROP TABLE IF EXISTS `categorias` ;
05
06 CREATE TABLE IF NOT EXISTS `categorias` (
07 `id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
08 `nome` VARCHAR(50) NOT NULL ,
09 PRIMARY KEY (`id`) )
10 ENGINE = MyISAM;
11
12 -- -----------------------------------------------------
13 -- Table `noticias`
14 -- -----------------------------------------------------
15 DROP TABLE IF EXISTS `noticias` ;
16
17 CREATE TABLE IF NOT EXISTS `noticias` (
18 `id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
19 `categoria_id` INT UNSIGNED NOT NULL ,
20 `titulo` VARCHAR(100) NOT NULL ,
21 `descricao` TEXT NOT NULL ,
22 `texto` LONGTEXT NOT NULL ,
23 `ativa` TINYINT(1) NOT NULL DEFAULT 1 ,
24 `cadastro` DATETIME NOT NULL ,
25 PRIMARY KEY (`id`) ,
26 INDEX `CATEGORIA` (`categoria_id` ASC) ,
27 CONSTRAINT `FK_CATEGORIA`
28 FOREIGN KEY (`categoria_id` )
29 REFERENCES `categorias` (`id` )
30 ON DELETE NO ACTION
31 ON UPDATE NO ACTION)
32 ENGINE = MyISAM;
15/5/2014 PHP e MySQL para iniciantes – Consulta Simples | Thiago Belem / Blog
http://blog.thiagobelem.net/php-e-mysql-para-iniciantes-consulta-simples/ 3/10
Na linha 21 nós criamos uma instância do MySQLi passando os dados de conexão com o servidor e, logo
depois, verificamos se houve algum erro durante a conexão e exibimos a mensagem de erro.
Salve esse script com o nome de mysqli.php em uma pasta chamada includes.
O próximo passo será criar um script que faz uma consulta SQL, vamos começar o arquivo PHP com os
comentários de créditos e o require para chamar o arquivo de conexão ao banco de dados:
Agora vamos montar uma consulta SQL simples para buscar as 10 últimas notícias ativas:
01 <?php
02 /**
03 * PHP e MySQL para iniciantes
04 *
05 * Arquivo que faz a conexão com o banco de dados utilizando MySQLi
06 *
07 * PHP 5+, MySQL 4.1+
08 *
09 * @author Thiago Belem <contato@thiagobelem.net>
10 * @link http://blog.thiagobelem.net/mysql/php-e-mysql-para-iniciantes-consulta-
simples/
11 */
12
13 // Dados de acesso ao servidor MySQL
14 $MySQL = array(
15 'servidor' => '127.0.0.1', // Endereço do servidor
16 'usuario' => 'root', // Usuário
17 'senha' => '', // Senha
18 'banco' => 'meu_site' // Nome do banco de dados
19 );
20
21 $MySQLi = new MySQLi($MySQL['servidor'], $MySQL['usuario'], $MySQL['senha'],
$MySQL['banco']);
22
23 // Verifica se ocorreu um erro e exibe a mensagem de erro
24 if (mysqli_connect_errno())
25 trigger_error(mysqli_connect_error(), E_USER_ERROR);
26
27 ?>
01 <?php
02 /**
03 * PHP e MySQL para iniciantes
04 *
05 * Arquivo com um exemplo de consulta ao banco de dados MySQL
06 *
07 * PHP 5+, MySQL 4.1+
08 *
09 * @author Thiago Belem <contato@thiagobelem.net>
10 * @link http://blog.thiagobelem.net/mysql/php-e-mysql-para-iniciantes-consulta-
simples/
11 */
12
13 // Inclui o arquivo que faz a conexão ao banco de dados
14 require_once('includes/mysqli.php');
15
16 ?>
17 // Monta a consulta SQL para trazer as últimas 10 notícias ativas
18 $sql = 'SELECT *
19 FROM `noticias` AS Noticia
20 WHERE Noticia.`ativa` = 1
21 ORDER BY Noticia.`cadastro` DESC
15/5/2014 PHP e MySQL para iniciantes – Consulta Simples | Thiago Belem / Blog
http://blog.thiagobelem.net/php-e-mysql-para-iniciantes-consulta-simples/ 4/10
A consulta montada poderia ser traduzida por:
SELECIONE todas as colunas
DA TABELA `noticias`
ONDE `ativa` for igual a 1
ORDENANDO PELO `cadastro` DECRESCENTEMENTE
LIMITADO A 10 resultados
Agora precisamos executar a consulta utilizando o método query do MySQLi:
E agora só precisamos rodar um loop, e em cada iteração (passada no loop) iremos exibir a notícia
encontrada, montando um bloco HTML:
Fazendo isso, para cada notícia encontrada pela consulta, será criado o seguinte bloco HTML:
Depois disso, podemos colocar mais um pequeno bloco de código que irá mostrar o total de registros
encontrados com a consulta:
E no final de tudo precisamos – SEMPRE – liberar o resultado da consulta, limpando espaço na memória e
deixando tudo mais organizado:
O arquivo consulta.php ficou assim:
22 LIMIT 10';
24 // Executa a consulta OU mostra uma mensagem de erro
25 $resultado = $MySQLi->query($sql) OR trigger_error($MySQLi->error, E_USER_ERROR);
27 // Faz um loop, passando por todos os resultados encontrados
28 while ($noticia = $resultado->fetch_object()) {
29 // Exibe a notícia dentro de um bloco HTML
30 ?>
31
32 <h2><?php echo $noticia->titulo; ?></h2>
33 <p><?php echo $noticia->descricao; ?></p>
34 <p><a href="noticia.php?id=<?php echo $noticia->id; ?>" title="Continue lendo
essa notícia">Leia mais &raquo;</a></p>
35
36 <?php
37 } // while ($noticia = $resultado->fetch_object())
1 <h2>Titulo da notícia</h2>
2 <p>Descrição da notícia</p>
3 <p><a href="noticia.php?id=2" title="Continue lendo essa notícia">Leia mais
&raquo;</a></p>
39 // Exibe o total de registros encontrados
40 echo "<p>Registros encontrados: {$resultado->num_rows}</p>";
42 // Libera o resultado para liberar memória
43 $resultado->free();
15/5/2014 PHP e MySQL para iniciantes – Consulta Simples | Thiago Belem / Blog
http://blog.thiagobelem.net/php-e-mysql-para-iniciantes-consulta-simples/ 5/10
Compartilhe: 4 Tweet 1 11 Curtir
Curtir isso:
Gosto
Be the f irst to like this.

Por hoje é só!
Faça o download de todos os arquivos desse tutorial: PHP-e-MySQL-Consulta-Simples.zip
Nas próximas partes desse tutorial iremos ver uma consulta mais complexa (ligando as duas tabelas) e
outros scripts para cadastrar e editar notícias.
Um grade abraço e até a próxima!
01 <?php
02 /**
03 * PHP e MySQL para iniciantes
04 *
05 * Arquivo com um exemplo de consulta ao banco de dados MySQL
06 *
07 * PHP 5+, MySQL 4.1+
08 *
09 * @author Thiago Belem <contato@thiagobelem.net>
10 * @link http://blog.thiagobelem.net/mysql/php-e-mysql-para-iniciantes-consulta-
simples/
11 */
12
13 // Inclui o arquivo que faz a conexão ao banco de dados
14 require_once('includes/mysqli.php');
15
16 // Monta a consulta SQL para trazer as últimas 10 notícias ativas
17 $sql = 'SELECT *
18 FROM `noticias` AS Noticia
19 WHERE Noticia.`ativa` = 1
20 ORDER BY Noticia.`cadastro` DESC
21 LIMIT 10';
22
23 // Executa a consulta OU mostra uma mensagem de erro
24 $resultado = $MySQLi->query($sql) OR trigger_error($MySQLi->error, E_USER_ERROR);
25
26 // Faz um loop, passando por todos os resultados encontrados
27 while ($noticia = $resultado->fetch_object()) {
28 // Exibe a notícia dentro de um bloco HTML
29 ?>
30
31 <h2><?php echo $noticia->titulo; ?></h2>
32 <p><?php echo $noticia->descricao; ?></p>
33 <p><a href="noticia.php?id=<?php echo $noticia->id; ?>" title="Continue lendo
essa notícia">Leia mais &raquo;</a></p>
34
35 <?php
36 } // while ($noticia = $resultado->fetch_object())
37
38 // Exibe o total de registros encontrados
39 echo "<p>Registros encontrados: {$resultado->num_rows}</p>";
40
41 // Libera o resultado para liberar memória
42 $resultado->free();
43
44 ?>
15/5/2014 PHP e MySQL para iniciantes – Consulta Simples | Thiago Belem / Blog
http://blog.thiagobelem.net/php-e-mysql-para-iniciantes-consulta-simples/ 6/10
This entry was posted in MySQL, PHP, Tutoriais and tagged MySQL, PHP, Query on 20 de julho de 2010
[http://blog.thiagobelem.net/php-e-mysql-para-iniciantes-consulta-simples/] by Thiago Belem.
About Thiago Belem
Desenvolvedor a mais de 10 anos, trabalha como freelancer criando sites, sistemas e portais utilizando
PHP, MySQL, CakePHP, WordPress e jQuery.
View all posts by Thiago Belem →
23 thoughts on “PHP e MySQL para iniciantes – Consulta Simples”
Thiago, como faço pra ver se há um aconexao ja existente, pra não ficar ai conectando toda a hora, tipo
assim, verifica se há uma conexao existente, se há segue em frente, se não há conecta e segue.
Muito bom o seu blog, e ja esta no meu Favoritos a muito tempo. sempre estou por aqui, valeu.
giachini
20 de junho de 2013 at 21:17
Muito bons os Tutoriais aqui do blog, além de ser um conteudo praticamente raro, tratando-se de
qualidade…
Sou estudante do 1º ano de Informática, e como o curso não é focado em desenvolvimento pra web,
desde o principio to me virando por conta propria, e seu blog tem sido muito útil!
obrigado .
Plinio
13 de outubro de 2011 at 23:42
Continuo lendo esse blog, tá servindo bem,
mas gostaria que fizessem um tuto de como relacionar tabelas, quando devemos usar o relacionamento
e como puxar o conteudo desse relacionamento no PHP
Ruben
2 de março de 2011 at 14:41
15/5/2014 PHP e MySQL para iniciantes – Consulta Simples | Thiago Belem / Blog
http://blog.thiagobelem.net/php-e-mysql-para-iniciantes-consulta-simples/ 7/10
Tem como? Grato.
http://blog.thiagobelem.net/relacionamento-de-tabelas-no-mysql/
Thiago Belem
2 de março de 2011 at 15:53
Post author
Everton disse : “Vlw velho, mto bopm seu blog, to apredendo coisa pakas aqui.. ”
Sou +1
Obrigado pelos elogios ao blog!
Ruben
20 de janeiro de 2011 at 16:33
Thiago Belem
21 de janeiro de 2011 at 0:03
Post author
Ecomo ficaria para trasformar isso em uma busca com paavras chaves?
Willians
5 de janeiro de 2011 at 18:14
Vlw velho, mto bopm seu blog, to apredendo coisa pakas aqui..
Eberton
13 de dezembro de 2010 at 19:55
De nada, continuação de excelente trabalho.
Helder
26 de julho de 2010 at 9:42
15/5/2014 PHP e MySQL para iniciantes – Consulta Simples | Thiago Belem / Blog
http://blog.thiagobelem.net/php-e-mysql-para-iniciantes-consulta-simples/ 8/10
Tentarei fazer algo sobre
Thiago Belem
24 de julho de 2010 at 13:39
Opa..blz? Conheci teu blog e achei interessante…
me chamou a atenção vc citar o MySQL Workbench…tem como criar um tópico ensinando a usá-lo??
Alessandropires
24 de julho de 2010 at 3:23
Adoreeii !! (=
Anielly
23 de julho de 2010 at 0:58
Helder,
O seu comentário fez todo sentido e me fez mudar de idéia… Irei editar o
tutorial e fazê-lo usando MySQLi.
Obrigado e um grande abraço!
Thiago Belem
22 de julho de 2010 at 20:26
O artigo foi editado… Agora usaremos MySQLi
Obrigado pela dica!
Thiago Belem
22 de julho de 2010 at 4:06
15/5/2014 PHP e MySQL para iniciantes – Consulta Simples | Thiago Belem / Blog
http://blog.thiagobelem.net/php-e-mysql-para-iniciantes-consulta-simples/ 9/10
Até que enfim um artigo novo! Parabéns Thiago! Bem vindo de volta ao seu blog! Hehehe…
Abraços do colega colunista do iMasters.
Daniel Ribeiro Gomes
21 de julho de 2010 at 23:26
Tenho gostado muito dos tutoriais anteriores, mas este deixa alguma desilusão, há um retrocesso e até
uma certa repetição. Não deveria usar-se apenas MYSQLI ou melhor ainda PDO ?? Apesar de ser para
iniciantes é melhore começarem já pelas melhores práticas.
Helder
21 de julho de 2010 at 15:02
Obrigado, tinha uma leve impressão de que era esse programa, instalei ontem mesmo e testei, bem
legal.. eu só usava o MySQL Gui Tools
Danilo Iannone
21 de julho de 2010 at 11:24
MySQL Workbench
Thiago Belem
20 de julho de 2010 at 19:57
Essa sequencia de tutoriais foi criada para iniciantes… Haviam muitas dúvidas sobre “Como faço uma
página de cadastro?” e resolvi fazer do começo..
Thiago Belem
20 de julho de 2010 at 19:57
Carlos André Ferrari
20 de julho de 2010 at 19:56
15/5/2014 PHP e MySQL para iniciantes – Consulta Simples | Thiago Belem / Blog
http://blog.thiagobelem.net/php-e-mysql-para-iniciantes-consulta-simples/ 10/10
Comments are closed.
Kra, só acho que o tutorial deveria ser feito usando PDO, mas tá massa
Aeeeee, Thiago não morreu rsrs
Brincadeiras a parte ótimo post, bem explicado e simples.
Parabéns
Victor Brunner
20 de julho de 2010 at 19:47
Só por curiosidade, qual o programa que você usou para gerar aquela imagem de relacionamentos?
Danilo Iannone
20 de julho de 2010 at 19:44
Danilo O programa é o MySQL Workbench
pode baixar no site da mysql mesmo http://wb.mysql.com/
Emerson Vinicius
20 de julho de 2010 at 20:03