Programação Web
Fatec Ipiranga
Análise e Desenvolvimento de Sistemas


Aula 08 – Introdução ao uso do banco de dados MySQL




    Dalton Martins
  dmartins@gmail.com

São Paulo, Outubro, 2011
Acessando o banco
Teremos duas formas de acessar diretamente o
 banco de dados usando o XAMPP:
- via web, utilizando o phpMyAdmin;
Http://localhost/phpmyadmin


- via linha de comando, utilizando o programa
  interpretador de comandos para o MySQL
C:xamppmysqlbinmysql
Criando uma tabela no MySQL
Para nossos exemplos, criamos uma tabela diretamente na linha de comando:
1. o primeiro passo é nos logarmos no MySQL com as permissões necessárias para criar uma tabela:
Comando: mysql -h localhost -u root -p


2. criamos um banco de dados:
Comando: CREATE DATABASE exemplos;


3. selecionamos o banco de dados:
Comando: USE exemplos;


4. criamos a tabela com os campos necessários:
Comando:
CREATE TABLE produtos (
id INT NOT NULL AUTO_INCREMENT,
tipo VARCHAR(8) NOT NULL,
nome VARCHAR(100) NOT NULL,
preco DECIMAL(5,2) NOT NULL,
PRIMARY KEY(id));
Inserindo dados no MySQL
Para popular a tabela que criamos anteriormente,
 podemos incluir dados diretamente no MySQL
 utilizando o comando INSERT:


INSERT INTO produtos (id, tipo, nome, preco)
VALUES (null, 'teclado','abnt2 ','10');



Observação: coloque alguns produtos na tabela para que possamos utilizar em nossos
exemplos posteriores.
Acessando o MySQL no PHP
Utilizaremos uma extensão do PHP, chamada
 mysqli, que fará a conexão com o banco,
 permitindo acessarmos suas funcionalidades.
 Utilizaremos a extensão como uma classe em
 PHP.
    <?php

    // Temos de passar como parâmetro para a instanciação da classe
    //os valores de: servidor,login, senha, nome do banco de dados

    $mysqli = new mysqli('localhost','root','','exemplos');

    $mysqli->close();

    ?>
Consultando dados nas tabelas
<?php


// cria a conexão com o banco de dados
$mysqli = new mysqli('localhost','root','','exemplos');


// monta a consulta SQL
$consulta = 'SELECT tipo,nome,preco FROM produtos ORDER by nome';

// gera a consulta e retorna os resultados para um objeto $resultado
$resultado = $mysqli->query($consulta);


// utiliza o método fetch_row() do objeto $resultado para alocar o conteúdo
// de cada linha da consulta em 3 variáveis independentes.
while(list($tipo,$nome,$preco) = $resultado->fetch_row())
      printf(" %s - %s - R$%s <br />",$tipo,$nome,$preco);

$mysqli->close();

?>
Inserindo dados na tabela
<?php


// cria a conexão com o banco de dados
$mysqli = new mysqli('localhost','root','','exemplos');


// monta a inserção em SQL
$insere = 'INSERT INTO produtos (id, tipo, nome, preco) VALUES (null, 'monitor','touch','200')';

// gera a inserção e retorna os resultados para um objeto $resultado
$resultado = $mysqli->query($insere);


$mysqli->close();

?>
Apagando dados de uma tabela
<?php


// cria a conexão com o banco de dados
$mysqli = new mysqli('localhost','root','','exemplos');


// monta o comando para apagar em SQL
$apaga = 'DELETE FROM produtos WHERE tipo = 'mouse'';

// apaga e retorna os resultados para um objeto $resultado
$resultado = $mysqli->query($apaga);


$mysqli->close();

?>
Atualizando dados de uma tabela
<?php


// cria a conexão com o banco de dados
$mysqli = new mysqli('localhost','root','','exemplos');


// monta a atualização em SQL
$atualiza = 'UPDATE produtos SET preco='50' WHERE tipo = 'teclado'';

// gera a atualização e retorna os resultados para um objeto $resultado
$resultado = $mysqli->query($atualiza);


$mysqli->close();

?>
Número de linhas que atendem a uma consulta
<?php

// cria a conexão com o banco de dados
$mysqli = new mysqli('localhost','root','','exemplos');

// monta a consulta SQL
$consulta = 'SELECT nome FROM produtos WHERE preco > 20';

// gera a consulta e retorna os resultados para um objeto $resultado
$resultado = $mysqli->query($consulta);

// utiliza a variável num_rows do objeto resultado para apontar
// quantas linhas que atendem ao critério da consulta

printf("Ha %d produto(s) acima de R$ 20,00. <br />",$resultado->num_rows);

// realizando a consulta novamente, mas para outro critério
$consulta = 'SELECT nome FROM produtos WHERE preco > 200';
$resultado = $mysqli->query($consulta);
printf("Ha %d produto(s) acima de R$ 200,00.",$resultado->num_rows);

$mysqli->close();

?>
Número de linhas afetadas por uma operação

<?php


// cria a conexão com o banco de dados
$mysqli = new mysqli('localhost','root','','exemplos');


// monta a atualização em SQL
$atualiza = 'UPDATE produtos SET preco='50' WHERE preco = '100'';

// gera a atualização e retorna os resultados para um objeto $resultado
$resultado = $mysqli->query($atualiza);

// utiliza a variável affected_rows do objeto mysqli para retornar
// o número de linhas da tabela que foram afetadas pelo comando SQL.
printf("Ha %d produto(s) afetados.",$mysqli->affected_rows);

$mysqli->close();

?>
Exercícios
Cria um programa que faça:
  1. um formulário para cadastrar clientes de uma loja, contendo os seguintes
    campos:
          • Nome, RG, CPF, endereço, bairro, cidade, estado, CEP, e-mail e telefone.
  2. cria um banco de dados e uma tabela para armazenar os dados;
  3. permita que seu usuário possa gravar os dados no banco, consultar por
    nome, cidade, estado e CPF, apresentando os resultados em formato tabela.
  4. permita que seu usuário possa atualizar dados cadastrais de um cliente;
  5. permita que seu usuário possa apagar o registro de um cliente;
  5. permita que seu usuário possa gerar um relatório de todos os clientes
    cadastrados.
  Em todas as operações SQL, mostra quantos resultados foram afetados ou
   retornados.

Aula 08 - Introdução ao banco de dados MySQL - Programação Web

  • 1.
    Programação Web Fatec Ipiranga Análisee Desenvolvimento de Sistemas Aula 08 – Introdução ao uso do banco de dados MySQL Dalton Martins dmartins@gmail.com São Paulo, Outubro, 2011
  • 2.
    Acessando o banco Teremosduas formas de acessar diretamente o banco de dados usando o XAMPP: - via web, utilizando o phpMyAdmin; Http://localhost/phpmyadmin - via linha de comando, utilizando o programa interpretador de comandos para o MySQL C:xamppmysqlbinmysql
  • 3.
    Criando uma tabelano MySQL Para nossos exemplos, criamos uma tabela diretamente na linha de comando: 1. o primeiro passo é nos logarmos no MySQL com as permissões necessárias para criar uma tabela: Comando: mysql -h localhost -u root -p 2. criamos um banco de dados: Comando: CREATE DATABASE exemplos; 3. selecionamos o banco de dados: Comando: USE exemplos; 4. criamos a tabela com os campos necessários: Comando: CREATE TABLE produtos ( id INT NOT NULL AUTO_INCREMENT, tipo VARCHAR(8) NOT NULL, nome VARCHAR(100) NOT NULL, preco DECIMAL(5,2) NOT NULL, PRIMARY KEY(id));
  • 4.
    Inserindo dados noMySQL Para popular a tabela que criamos anteriormente, podemos incluir dados diretamente no MySQL utilizando o comando INSERT: INSERT INTO produtos (id, tipo, nome, preco) VALUES (null, 'teclado','abnt2 ','10'); Observação: coloque alguns produtos na tabela para que possamos utilizar em nossos exemplos posteriores.
  • 5.
    Acessando o MySQLno PHP Utilizaremos uma extensão do PHP, chamada mysqli, que fará a conexão com o banco, permitindo acessarmos suas funcionalidades. Utilizaremos a extensão como uma classe em PHP. <?php // Temos de passar como parâmetro para a instanciação da classe //os valores de: servidor,login, senha, nome do banco de dados $mysqli = new mysqli('localhost','root','','exemplos'); $mysqli->close(); ?>
  • 6.
    Consultando dados nastabelas <?php // cria a conexão com o banco de dados $mysqli = new mysqli('localhost','root','','exemplos'); // monta a consulta SQL $consulta = 'SELECT tipo,nome,preco FROM produtos ORDER by nome'; // gera a consulta e retorna os resultados para um objeto $resultado $resultado = $mysqli->query($consulta); // utiliza o método fetch_row() do objeto $resultado para alocar o conteúdo // de cada linha da consulta em 3 variáveis independentes. while(list($tipo,$nome,$preco) = $resultado->fetch_row()) printf(" %s - %s - R$%s <br />",$tipo,$nome,$preco); $mysqli->close(); ?>
  • 7.
    Inserindo dados natabela <?php // cria a conexão com o banco de dados $mysqli = new mysqli('localhost','root','','exemplos'); // monta a inserção em SQL $insere = 'INSERT INTO produtos (id, tipo, nome, preco) VALUES (null, 'monitor','touch','200')'; // gera a inserção e retorna os resultados para um objeto $resultado $resultado = $mysqli->query($insere); $mysqli->close(); ?>
  • 8.
    Apagando dados deuma tabela <?php // cria a conexão com o banco de dados $mysqli = new mysqli('localhost','root','','exemplos'); // monta o comando para apagar em SQL $apaga = 'DELETE FROM produtos WHERE tipo = 'mouse''; // apaga e retorna os resultados para um objeto $resultado $resultado = $mysqli->query($apaga); $mysqli->close(); ?>
  • 9.
    Atualizando dados deuma tabela <?php // cria a conexão com o banco de dados $mysqli = new mysqli('localhost','root','','exemplos'); // monta a atualização em SQL $atualiza = 'UPDATE produtos SET preco='50' WHERE tipo = 'teclado''; // gera a atualização e retorna os resultados para um objeto $resultado $resultado = $mysqli->query($atualiza); $mysqli->close(); ?>
  • 10.
    Número de linhasque atendem a uma consulta <?php // cria a conexão com o banco de dados $mysqli = new mysqli('localhost','root','','exemplos'); // monta a consulta SQL $consulta = 'SELECT nome FROM produtos WHERE preco > 20'; // gera a consulta e retorna os resultados para um objeto $resultado $resultado = $mysqli->query($consulta); // utiliza a variável num_rows do objeto resultado para apontar // quantas linhas que atendem ao critério da consulta printf("Ha %d produto(s) acima de R$ 20,00. <br />",$resultado->num_rows); // realizando a consulta novamente, mas para outro critério $consulta = 'SELECT nome FROM produtos WHERE preco > 200'; $resultado = $mysqli->query($consulta); printf("Ha %d produto(s) acima de R$ 200,00.",$resultado->num_rows); $mysqli->close(); ?>
  • 11.
    Número de linhasafetadas por uma operação <?php // cria a conexão com o banco de dados $mysqli = new mysqli('localhost','root','','exemplos'); // monta a atualização em SQL $atualiza = 'UPDATE produtos SET preco='50' WHERE preco = '100''; // gera a atualização e retorna os resultados para um objeto $resultado $resultado = $mysqli->query($atualiza); // utiliza a variável affected_rows do objeto mysqli para retornar // o número de linhas da tabela que foram afetadas pelo comando SQL. printf("Ha %d produto(s) afetados.",$mysqli->affected_rows); $mysqli->close(); ?>
  • 12.
    Exercícios Cria um programaque faça: 1. um formulário para cadastrar clientes de uma loja, contendo os seguintes campos: • Nome, RG, CPF, endereço, bairro, cidade, estado, CEP, e-mail e telefone. 2. cria um banco de dados e uma tabela para armazenar os dados; 3. permita que seu usuário possa gravar os dados no banco, consultar por nome, cidade, estado e CPF, apresentando os resultados em formato tabela. 4. permita que seu usuário possa atualizar dados cadastrais de um cliente; 5. permita que seu usuário possa apagar o registro de um cliente; 5. permita que seu usuário possa gerar um relatório de todos os clientes cadastrados. Em todas as operações SQL, mostra quantos resultados foram afetados ou retornados.