Sie sind auf Seite 1von 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 bsicos sobre MySQL + PHP para iniciantes.
Nessa primeira parte vamos criar um script que ir resgatar as notcias de um banco de dados e fazer
mais alguns procedimentos.
Vamos usar MySQLi ao invs de MySQL. Mesmo sendo um recurso avanado para alguns, bom
ensinar uma forma correta e segura de trabalhar pra quem t comeando.
Saiba mais sobre o MySQLi aqui e aqui
Os recursos utilizando aqui (MySQLi) s funcionam em PHP 5+ e MySQL 4.1+
Essas sero as tabelas que iremos utilizar nesse e nos prximos 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 notcias que estaro ligadas categorias.
Cada notcia pertence a uma categoria
Cada categoria contm zero ou mais notcias
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 cdigo SQL:
Vamos iniciar o nosso script criando um pequeno script de conexo 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 ns criamos uma instncia do MySQLi passando os dados de conexo com o servidor e, logo
depois, verificamos se houve algum erro durante a conexo e exibimos a mensagem de erro.
Salve esse script com o nome de mysqli.php em uma pasta chamada includes.
O prximo passo ser criar um script que faz uma consulta SQL, vamos comear o arquivo PHP com os
comentrios de crditos e o require para chamar o arquivo de conexo ao banco de dados:
Agora vamos montar uma consulta SQL simples para buscar as 10 ltimas notcias ativas:
01 <?php
02 /**
03 * PHP e MySQL para iniciantes
04 *
05 * Arquivo que faz a conexo 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', // Endereo do servidor
16 'usuario' => 'root', // Usurio
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 conexo ao banco de dados
14 require_once('includes/mysqli.php');
15
16 ?>
17 // Monta a consulta SQL para trazer as ltimas 10 notcias 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 mtodo query do MySQLi:
E agora s precisamos rodar um loop, e em cada iterao (passada no loop) iremos exibir a notcia
encontrada, montando um bloco HTML:
Fazendo isso, para cada notcia encontrada pela consulta, ser criado o seguinte bloco HTML:
Depois disso, podemos colocar mais um pequeno bloco de cdigo que ir mostrar o total de registros
encontrados com a consulta:
E no final de tudo precisamos SEMPRE liberar o resultado da consulta, limpando espao na memria 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 notcia 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 notcia">Leia mais &raquo;</a></p>
35
36 <?php
37 } // while ($noticia = $resultado->fetch_object())
1 <h2>Titulo da notcia</h2>
2 <p>Descrio da notcia</p>
3 <p><a href="noticia.php?id=2" title="Continue lendo essa notcia">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 memria
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!
Faa o download de todos os arquivos desse tutorial: PHP-e-MySQL-Consulta-Simples.zip
Nas prximas partes desse tutorial iremos ver uma consulta mais complexa (ligando as duas tabelas) e
outros scripts para cadastrar e editar notcias.
Um grade abrao e at a prxima!
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 conexo ao banco de dados
14 require_once('includes/mysqli.php');
15
16 // Monta a consulta SQL para trazer as ltimas 10 notcias 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 notcia 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 notcia">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 memria
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 fao pra ver se h um aconexao ja existente, pra no ficar ai conectando toda a hora, tipo
assim, verifica se h uma conexao existente, se h segue em frente, se no 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, alm de ser um conteudo praticamente raro, tratando-se de
qualidade
Sou estudante do 1 ano de Informtica, e como o curso no 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 maro 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 maro 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, continuao 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 ateno vc citar o MySQL Workbenchtem como criar um tpico 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 comentrio fez todo sentido e me fez mudar de idia Irei editar o
tutorial e faz-lo usando MySQLi.
Obrigado e um grande abrao!
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! Parabns Thiago! Bem vindo de volta ao seu blog! Hehehe
Abraos 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 desiluso, h um retrocesso e at
uma certa repetio. No deveria usar-se apenas MYSQLI ou melhor ainda PDO ?? Apesar de ser para
iniciantes melhore comearem j pelas melhores prticas.
Helder
21 de julho de 2010 at 15:02
Obrigado, tinha uma leve impresso 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 dvidas sobre Como fao uma
pgina de cadastro? e resolvi fazer do comeo..
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 no morreu rsrs
Brincadeiras a parte timo post, bem explicado e simples.
Parabns
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

Das könnte Ihnen auch gefallen