php - aula_08 conexão bd - projeto parte 01

Post on 07-Jul-2016

12 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Aula 08 php

TRANSCRIPT

Desenvolvimento de Sistema Web

Jolvani Morgan

morgan.prof.ti@gmail.comhttps://sites.google.com/site/profemti

Roteiro

Armazenamento em Banco de dados

Conectividade com Banco de dados

Linguagem SQL

SQL

SQL – Structured Query Language. (Linguagem de consulta estruturada)

Padrão para interagir com banco de dados relacionais.

Banco de dados

Um banco de dados relacional é composto por tabelas

Cada coluna da tabela armazena um tipo de dado e representa um campo do banco de dados. Cada linha armazena os dados de um cliente e representa um registro.

Tipos de dados MySQL – (Principais)

Principais comandos

Create table

Insert

Select

Update

Delete

Create Table

Cria uma tabelaSintaxe:

Exemplo:

Insert

Insere um registro em uma determinada tabelaSintaxe:

Exemplo:

Insere pessoa com ID = 1, se executarmos novamente irá inserir pessoa com ID = 2 e assim por diante...

Select

Retorna um subconjunto de registrosSintaxe:

Exemplos:

Select - WHERE

Usando WHERESintaxe:

SELECT <lista de atributos> FROM <tabela> WHERE <condição>

Condição:<nome atributo> <operador> <valor>

Operadores:=,>=,<,AND, OR e NOT

Select - WHERE

Exemplo: Listar o nome e sexo dos empregados do departamento 15.

SELECT nome, sexo FROM Empregado WHERE num_dep = 15

Listar o nome e sexo dos funcionários do departamento 15 com salário > R$ 2.000,00.

SELECT nome, sexo FROM funcionario WHERE num_dep = 15 AND salario > 2000

Select – WHERE – LIKE e NOT LIKE

Só se aplicam sobre atributos do tipo char ou varchar. Operam com operadores “=“, “<> ou !=” utilizando os símbolos “%” (substitui uma palavra) e “_” (substitui um caractere).

Sintaxe: SELECT ... WHERE <nome atributo> LIKE <valor 1>

Exemplo:Listar os empregados que tem como primeiro nome José

SELECT nome FROM empregado WHERE nome LIKE “José%”

Select – ORDER BY

Ordenando os dados selecionados (ORDER BY).

Sintaxe: SELECT <lista de atributo> FROM <tabela> [WHERE <condição>]

ORDER BY <nome atributo> ASC | DESC

Exemplo:Listar todos os empregados ordenados ascendentes por nome

SELECT * FROM empregado ORDER BY nome

Listar todos os empregados ordenados descendentemente pelo salário. SELECT * FROM empregado ORDER BY salario DESC

Select – Funções

Utilizando funções sobre conjuntos.

Comando: MAX, MIN, SUM, AVG, COUNT

Exemplos:Mostrar valor do maior salário dos empregados

SELECT MAX(salario) FROM empregadoMostrar qual o salário médio dos empregados.

SELECT AVG(salario) FROM empregadoQuantos empregados ganham mais de R$ 2.000,00?

SELECT COUNT(*) FROM empregado WHERE salario > 2000

Select IN – (NOT IN)

Define valores a partir de uma lista de valores (IN).

Sintaxe: SELECT <lista de atributo> FROM <tabela> [WHERE <condição>] IN

(value1, value2,...)

Exemplo:Listar todos os empregados ordenados ascendentes por nome

SELECT nome FROM empregado OWHERE salario IN (2000,1000,3000)

Similar a: SELECT nome FROM empregado WHERE salario=2000 OR salario=1000 OR salario=3000

+ (http://www.devmedia.com.br/introducao-ao-comando-select-da-sql-parte-i/16527)

Update

Atualiza uma tabela.

Sintaxe:

Exemplo:

Update

Atualiza uma tabela.

Sintaxe:

Exemplo:

CUIDADO Se não for passada uma condição na cláusula WHERE todas as linhas da tabela serão alteradas !!!

Delete

Deleta (apaga) registro(s) de uma tabela.

Sintaxe:

Exemplo:

Delete

Deleta (apaga) registro(s) de uma tabela.

Sintaxe:

Exemplo:

CUIDADO Se não for passada uma condição na cláusula WHERE todas as linhas da tabela serão deletadas!!!

PHP – Banco de Dados• CONEXAO com BD Mudou PHP 7• http://rberaldo.com.br/pdo-mysql/• Bem elaborado

• Com PDO ou mysqli....

• http://www.w3schools.com/php/php_mysql_select.asp

• Banco de Dados• Necessário para armazenar dados, e fazer aplicações web dinâmicas.

• Mysql• Postgresql• MSSQL Server• Firebird• Oracle

ATENÇÃO

PHP – Banco de Dados• Existem 3 fases na utilização de um banco de dados• 1 - Fazer a conexão, abrir um link de comunicação entre a aplicação e o SGDB• 2 - Abrir uma transação• 3 - Executar Comandos SQL, Selects, Inserts, Updates, Deletes• 4 - Finalizar a transação (commit, Rollback)• 5 - Fechar a Conexão

• Em alguns SGDB as fazes de Abrir transação e finalizar podem ser omitidas

PHP – Banco de Dados• No Mysql• Em Mysql trabalhamos sem as fazes de transação• Conectar ao Banco de Dados mysql_connect(servidor,usuário,senha);• ainda na faze de conexão temos que escolher o banco de dados a utilizarmysql_select_db("Bando_de_dados", Id_conexão);

<?php$con = mysql_connect("localhost","turma","abc123");mysql_select_db("aula", $con);?>

PHP – Banco de Dados

• Executar uma ação no banco de dados

• mysql_query("sql",id_conexão)– mysql_query executa qualquer ação no

banco de dados(select, insert, update, delete, create, drop, etc...)

<?$result = mysql_query(“insert into

pessoa (nome) values (‘juvenal’)");?>

PHP – Banco de Dados• quando usado com selects ele trás em seu resultado o resultado da consulta, nos outros casos trás

apenas True• para acessar o resultado de uma consulta usamos

– mysql_fetch_array(Resultado da pesquisa)– para cada interação vai retornar uma linha do resultado

• o resultado será um array associativo no qual cada elemento será uma coluna na tabela, conforme especificado no sql

<?$result = mysql_query("SELECT nome, idade FROM pessoa");while($row = mysql_fetch_array($result)) echo $row['nome'] . " - " . $row['idade']; echo "<br />"; ?>

PHP – Banco de Dados• Após utilizar a conexão com o banco é necessário fecharmos, existem dois

caminhos1 - podemos esperar a execução do código e o termino do script (mais usado)2 - podemos usar a função mysql_close(id_conexão)

<?php$con = mysql_connect("localhost","turma","abc123");//codigo aquimysql_close($con);?>

PHP – Banco de Dados

• Para recuperar mensagens de erro no mysql usa-se mysql_error()

• Esta função retorna a ultima mensagem de erro do Banco de dados

<?php$con = mysql_connect("localhost","turma","abc123");if (!$con) echo('erro ao conectar : ' . mysql_error());?>

PHP – Banco de Dados

• 1 - insira um dado na tabela aluno

PHP – Banco de Dados

• 2 - monte um formulário com a estrutura da tabela alunos, e insira os dados do formulário nela

PHP – Banco de Dados

• 3 - monte uma tela que exiba os dados da tabela aluno, e a qtde de registros gravados.

PHP – Banco de Dados

• 4 - na tela do exercício anterior habilite uma coluna com a opção excluir, e quando clicar nesse link, excluir o registro selecionado

PHP – Banco de Dados

• 5 - continuando na tela do exercício anterior exiba outra coluna com a opção editar, ao clicar nela, abra um formulário com os dados preenchidos e se clicar em salvar altere os dados cadastrados no banco de dados

Conectividade com SGBD

Existem duas maneiras:

Drive Nativo:

ODBC:

Drive Nativo

Fala a mesma “Língua” do SGBD:Extremamente rápido

ODBC

Open Database ConnectivityPadrão para acesso a Banco de DadosAbstrair o SGBD da aplicaçãoTraduz as chamadas genéricas (ODBC) em chamadas específicas

do SGBDMais Versátil.

PHP – Banco de Dados• CONEXAO com BD Mudou PHP 7• http://rberaldo.com.br/pdo-mysql/• Bem elaborado

• Com PDO ou mysqli....

• http://www.w3schools.com/php/php_mysql_select.asp

ATENÇÃO

Drive Nativo

Principais Funções:

mysql_connect(); mysql_select_db(); mysql_query(); mysql_affected_rows(); mysql_num_rows(); mysql_fecth_array();

PHP – Banco de Dados• CONEXAO com BD Mudou PHP 7• http://rberaldo.com.br/pdo-mysql/• Bem elaborado

• Com PDO ou mysqli....

• http://www.linhadecodigo.com.br/artigo/3638/php-pdo-como-se-conectar-ao-banco-de-dados.aspx

• http://www.w3schools.com/php/php_mysql_select.asp

ATENÇÃO

Drive Nativo Acesso ao BD MySQL

Conectando o Banco de Dados passo a passo

Passo 1: conectar ao banco de dados utilizando o método resuerce mysql_connect($host, $user, $password);

Passo 2: se conectado, selecionar o nome do BD utilizando o método mysql_select_db($dbname, $conn);

Passo 3: executar queries através do método mysql_query($query);

Passo 4(final): fechar a conexão com o banco através do método mysql_close($conn);

Acesso a banco de dadosConectando o Banco de Dados passo a passo

<?php$localhost = "localhost";$user = "root";$senha = "";

$con = mysqli_connect($localhost,$user,$senha);

if($con == false)echo "Conexão não estabelecida";

else $db = mysqli_select_db($con,"bdempresa");if ($db == false)

echo "Erro ao selecionar a base de dados";

Acesso a banco de dados

É uma boa prática criar arquivos que serão reutilizados

dbconfig.php e dbconnect.php podem ser no mesmo arquivo...

Executando queries

Executa uma query

resuerce mysql_query(string $sql);

Executando Queries

Exemplo

Executando Queries

Recupera o ID gerado da operação insert anterior

int mysql_insert_id([resource link_identifier])

<?php

mysql_query("INSERT INTO usuário (nome, endereco) values('joao', 'avenida', '...')");

print("O ultimo registro incluído tem id %d\n". mysql_insert_id());

?>

Recuperando dados da base

Métodosmysql_facth_arrayarray mysql_facth_array(resuerce $query)$query: resultado de um mysql_query

Exemplo:<?php include (“conect.inc”); $sql = “SELECT nome,endereco FROM usuário”; $query = mysql_query($sql); $total = mysql_num_rows($query);

for ($i=0; $i<$total; $i++) $result = mysql_fetch_array($query); echo $result['nome']; echo $result['endereco'];

?>

Mostrando o resultado

$sql = "select * from tb_empregados";$query = mysql_query($sql);

while ($empregado = mysql_fetch_array($query))

Devolve o número de linhas afetadas:

<?php

mysql_query("DELETE FROM usuário WHERE nome LIKE ‘%joao’”); printf("Registros excluídos: %d\n“, mysql_affected_rows());

?>

Mostrando o resultado

int mysql_affected_rows ([resource id_conexao])

Ferramenta que permite criar de maneira intuitiva tabelas no MySQL.

Mas por que então saber MySQL?Abrir http://localhost/phpmyadminEfetuar as atividades propostas

PHP My Admin

Utilizando o phpMyAdminCrie a tabela empregado e campos (id, nome, salario,

departamento) (id = inteiro; nome = varchar(80); salario=double;

departamento=inteiro “será uma chave estrangeira”)Fazer inserções e testar comandos SQL.Criar PHP que exiba todos os empregados

Exercícios

Criar as tabelas empregado e produto com os seguintes campos e os seguintes arquivos?

http://forum.imasters.com.br/topic/191441-escolhendo-um-tipo-de-campo-correto/

Mini Projeto Parte 1

Imagem

caminhoImagem

Incrementar o projeto com:

Outra tabela tb_categoria(id, nome, descricao). O ID será referenciado na tabela produtos no campo categoria.

Outra tabela tb_departamento(id, departamento).O ID será referenciado na tabela empregados no campo departamento.

Outra tabela tb_venda(id, id_empregado, id_produto, quantidade, data). OBS: Verificar a quantidade disponível do produto.

Mini Projeto Parte 1- Achou Fácil

No add_empregado.php insira um combobox substituindo o input para selecionar o departamento da tabela tb_departamento.

Mini Projeto Parte 1- Achou Fácil

No alt_empregado.php também insira um combobox conforme código abaixo...

Mini Projeto Parte 1- Achou Fácil

Projeto BD

Criar o BD denominado bdcrud e as tabelas como segue:Crie a tabela empregado e campos (id, nome, salario,

departamento) (id = inteiro; nome = varchar(80); salario=double;

departamento=inteiro “será uma chave estrangeira”)Tb_departamentosidDeptodepartamento

Drive Nativo Acesso ao BD MySQL

Criar uma pasta em c:\xampp\htdocs chamada prj_crud Criar os arquivos:conexao.php

Drive Nativo Acesso ao BD MySQL

index.php

Drive Nativo Acesso ao BD MySQL

Crie uma pasta css e o arquivo estilo.css

Drive Nativo Acesso ao BD MySQL

Crie uma pasta css e o arquivo estilo.css

Drive Nativo Acesso ao BD MySQL

Crie uma pasta empregados e os arquivos:

Add_empregado.php Viz_empregado.php Alt_empregado.php Del_empregado.php

Drive Nativo Acesso ao BD MySQL

Crie uma pasta empregados e os arquivos: Add_empregado.php

Criar uma pagina com um formulário: <form action="adiciona_bd.php" method="post"> nome <input… salario <input… departamento …. </form>

Enviar para o arquivo adiciona_bd.php

Drive Nativo Acesso ao BD MySQL No adiciona_bd.php

Drive Nativo Acesso ao BD MySQL

Crie uma pasta empregados e os arquivos: Viz_empregado.php: criar uma pagina para visualizar os dados do BD Partes do código....

• $res = "select * from tbempregados";• $query = mysql_query($res) or die ("Erro ao selecionar tabela Empregados");

• while ($emp = mysql_fetch_array($query, MYSQL_ASSOC))

• echo $emp['id_empregado'].“ - ".$emp['nome'];• echo $emp['salario'].“-". $emp[‘departamento];

Revisão

Front-End: HTML index.php CSS conexão.php JavaScript, jQuery ...

Back-End: Sessão de Login PHP Login.php JSP, JSF Confere.php ASP Main.php

Verifica.php

Revisão

Programação Estruturada Para desenvolver o CRUD/sistema usamos:

Back-End: Inserir Dados no BD

Add_empregado.phpAlterar (Atualizar) Dados no BD

Alt_empregado.phpDeletar Dados no BD

Del_empregado.php

CRUD

Revisão

Programação Estruturada (Back-End):

Inserir Dados no BD Add_empregado.php: Responsável por criar o formulário para

adicionar os dados no Banco, enviando-os para um novo arquivo; Adiciona_bd.php: Fazer a conexão ao Banco, adicionar os dados

recebido do formulário, providos do Add_empregado.php usando instrução SQL.

Alterar (Atualizar) Dados no BD Alt_empregado.php e Altera_bd: Alteração/atualização dos registros

do banco de dados, seguindo a mesma estrutura dos arquivos anteriores.

Deletar Dados no BD Del_empregado.php: Deleta um registro do banco de dados.

CRUD

Vitrine de Produtos:

Exercício

Vitrine de Produtos:

Exercício

Vitrine de Produtos:

Exercício

Vitrine de Produtos:

Exercício

Vitrine de Produtos:

Exercício

Vitrine de Produtos:

Exercício

Vitrine de Produtos:

Exercício

top related