SlideShare uma empresa Scribd logo
1 de 169
Baixar para ler offline
Módulo 3
PHP & MySQL
Professor: Eduardo Mendes
Professor Eduardo Mendes edumendes@gmail.com
Agenda
•  Usando Banco de Dados
•  Trabalhando com MySQL
•  Linguagem SQL
•  MySQL e PHP Conexões
•  Criação de Consultas
•  Seleção de Bancos
•  Campos e Result Set
•  Formatando o Conteúdo
Professor Eduardo Mendes edumendes@gmail.com
Testando Configuração
•  Iniciar o EasyPHP
–  Iniciar  Programas  EasyPHP
Professor Eduardo Mendes edumendes@gmail.com
Testando Configuração
•  Executar algum browser (navegador)
–  http://localhost
Professor Eduardo Mendes edumendes@gmail.com
Testando Configuração
•  Os arquivos serão salvos na pasta www do
EasyPHP
–  C:Arquivos de programasEasyPHP1-8www
Professor Eduardo Mendes edumendes@gmail.com
MySQL
Professor Eduardo Mendes edumendes@gmail.com
O programa mysql
•  Iniciar EasyPHP
•  C:
•  cd Arquivos*
•  cd Easy*
•  cd mysql
•  cd bin
•  mysql –u root -p
Professor Eduardo Mendes edumendes@gmail.com
mysql
Professor Eduardo Mendes edumendes@gmail.com
Conceitos
•  Linhas
•  Registros
•  Tabelas
•  Campos
•  Id
Professor Eduardo Mendes edumendes@gmail.com
Tabela típica de dados:
Agenda Telefônica
Professor Eduardo Mendes edumendes@gmail.com
Cursos da FA7
Professor Eduardo Mendes edumendes@gmail.com
Professor Eduardo Mendes edumendes@gmail.com
Criando um Banco de Dados
CREATE DATABASE nomeDoBanco;
Professor Eduardo Mendes edumendes@gmail.com
Usando um BD específico
USE nomeDoBanco;
Professor Eduardo Mendes edumendes@gmail.com
Professor Eduardo Mendes edumendes@gmail.com
No MySQL
CREATE DATABASE modulo3;
USE modulo3;
CREATE TABLE agendaTelefonica (
id INT PRIMARY KEY,
primeiroNome VARCHAR(15),
sobreNome VARCHAR (15),
email VARCHAR(20),
telefone VARCHAR(15)
);
DESCRIBE agendaTelefonica;
Professor Eduardo Mendes edumendes@gmail.com
Inserindo Valores
INSERT INTO agendaTelefonica
VALUES(
0, ‘Eduardo', ‘Mendes',
‘eduardo@fa7.edu.br', '123567‘
);
Professor Eduardo Mendes edumendes@gmail.com
Recuperando os dados
•  Eu quero visualizar todos os registro
de uma tabela
SELECT * FROM nomeDaTabela;
Professor Eduardo Mendes edumendes@gmail.com
No MySQL
SELECT * FROM agendaTelefonica;
Professor Eduardo Mendes edumendes@gmail.com
O programa mysql
•  Iniciar EasyPHP
•  C:
•  cd Arquivos*
•  cd Easy*
•  cd mysql
•  cd bin
•  mysql –u root -p
Professor Eduardo Mendes edumendes@gmail.com
Conectando-se a um banco de dados
•  Na linha de comando
–  Nos conectamos ao mysql através de usuário e
senha:
•  mysql –u root -p
–  Para poder fazer consulta a um banco,
informamos qual o banco através de:
•  USE nomeDoBanco
Professor Eduardo Mendes edumendes@gmail.com
Conectando-se ao banco via PHP
•  Usamos uma função
–  mysql_connect()
•  Esta função precisa de alguns pârametros
•  Precisamos informar o servidor onde está
localizado o banco de dados
–  localhost
•  Informamos o usuário, exemplo:
–  root
•  Informamos a senha do usuário:
–  123456
Professor Eduardo Mendes edumendes@gmail.com
Juntando tudo
mysql_connect("localhost", "root", "");
O servidorA função O usuário A senha
Guardar o retorno da função em uma variável é opcional
$conexao = mysql_connect("localhost", "root", "");
Professor Eduardo Mendes edumendes@gmail.com
Selecionando o banco de dados com PHP
•  O “USE” da linha de comando:
mysql_select_db();
•  Precisamos informar o nome o banco
– agendaTelefonica
•  É opcional informar uma conexão
previamente obtida
–  $conexao
Professor Eduardo Mendes edumendes@gmail.com
Juntando tudo
mysql_select_db(“agendaTelefonica”);
ou
mysql_select_db(“agendaTelefonica", $conexao);
A função O nome do banco A conexão
Professor Eduardo Mendes edumendes@gmail.com
Sucesso na conexão
Professor Eduardo Mendes edumendes@gmail.com
Erro na conexão
Professor Eduardo Mendes edumendes@gmail.com
conexao.php
<h1>Conexão</h1>
<? $conexao = mysql_pconnect("localhost", "root", "");
if ($conexao) {
mysql_select_db("agendaTelefonica", $conexao);
print "Conexão realizada com sucesso";
} else {
print "Falha na conexão!";
}
?>
Professor Eduardo Mendes edumendes@gmail.com
O programa mysql
•  Iniciar EasyPHP
•  C:
•  cd Arquivos*
•  cd Easy*
•  cd mysql
•  cd bin
•  mysql –u root -p
Professor Eduardo Mendes edumendes@gmail.com
Inserindo muitos dados
•  Baixar o arquivo dados.txt
–  http://www.fa7.edu.br/phpparainiciantes/modulo3/dados.zip
•  Salvar o arquivo dados.txt na pasta:
–  C:Arquivos de programasEasyPHP1-8mysqlbin
–  Executar o comando no mysql
–  LOAD DATA LOCAL INFILE “dados.txt” INTO
TABLE agendaTelefonica
•  SELECT * FROM agendaTelefonica
Professor Eduardo Mendes edumendes@gmail.com
Limitando o número de colunas
•  Selecionar apenas o nome e o sobrenome de
todas os registros da tabela
SELECT primeironome,sobrenome
FROM agendaTelefonica;
Professor Eduardo Mendes edumendes@gmail.com
Adicionando uma condição
WHERE
SELECT nome, sobrenome
FROM agendaTelefonica
WHERE nome=‘Eduardo’;
Professor Eduardo Mendes edumendes@gmail.com
WHERE
e operadores de comparação
•  WHERE nomeDoCampo = ‘xxxxx’;
•  WHERE nomeDoCampo > XXXX;
•  WHERE nomeDoCampo < ‘XXXX’;
•  WHERE nomeDoCampo >= XXXX;
•  WHERE nomeDoCampo <= ‘XXXX’;
Professor Eduardo Mendes edumendes@gmail.com
Exemplo
•  Eu quero todos os registros da
agendaTelefonica que começam ou com ‘A’,
ou com ‘B’ ou com ‘C’
SELECT *
FROM agendaTelefonica
WHERE primeironome < ‘D’;
Professor Eduardo Mendes edumendes@gmail.com
MYSQL e PHP
•  Para trabalhar com um banco
–  Precisamos nos conectar ao banco
–  Como?
mysql_connect("localhost", "root", "");
–  Precisamos também selecionar o banco
–  Como?
mysql_select_db(“modulo3”);
Professor Eduardo Mendes edumendes@gmail.com
No MySQL
•  Para fazer uma consulta a uma tabela no
banco, fizemos:
•  Deve existir uma formaa de fazer isto no
PHP. Qual?
SELECT primeironome
FROM agendaTelefonica;
Professor Eduardo Mendes edumendes@gmail.com
PHP & MySQL
•  Primeiro precisamos criar uma consulta em
forma de String
“SELECT nome FROM agendaTelefonica”
•  Atribuir esta String a uma variável
$sql = “SELECT nome FROM agendaTelefonica”
•  Enviar esta consulta ao banco
•  Guardar o resultado da consulta em outra
variável
Professor Eduardo Mendes edumendes@gmail.com
PHP & MySQL
•  Como enviar a consulta para o banco?
•  Esta função precisa de 1 argumento:
–  A consulta: “SELECT ...”
mysql_query($sql);
Professor Eduardo Mendes edumendes@gmail.com
PHP & MySQL
•  Guarde o resultado
$resultado = mysql_query($sql);
•  Percorra os resultados com mysql_fetch_assoc
<?
while ($linha = mysql_fetch_assoc($resultado)){
print $linha['nome'] .”<br/>”;
} ?>
agenda.php
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("cursoweb");
$sql = "SELECT * FROM agendatelefonica”;
$res = mysql_query($sql);
?>
<html>
<body>
<h1>Agenda Telefonica</h1>
<h2>Contatos</h2>
<?php while($linha = mysql_fetch_array($res)) { ?>
<li><?php print $linha['nome'] ?> -
<?php print $linha['email'] ?></li>
<? } ?>
</body>
</html>
Professor Eduardo Mendes edumendes@gmail.com
Professor Eduardo Mendes edumendes@gmail.com
Uma agenda Simples
Professor Eduardo Mendes edumendes@gmail.com
agenda.php
<h1>Agenda Telefônica</h1>
<?
$conexao = mysql_pconnect("localhost", "root", "");
mysql_select_db("modulo3", $conexao);
$sql = "SELECT nome FROM agendaTelefonica";
$resultado = mysql_query($sql, $conexao);
?>
<table>
<tr>
<th>Nome</th>
</tr>
<?
while ($linha = mysql_fetch_assoc($resultado)){
?>
<tr>
<td><?= $linha['nome'] ?></td>
</tr>
<? } ?>
</table>
Professor Eduardo Mendes edumendes@gmail.com
agenda.php
<h1>Agenda Telefônica</h1>
<?
$conexao = mysql_pconnect("localhost", "root", "");
mysql_select_db("modulo3", $conexao);
$sql = "SELECT primeironome, sobrenome
FROM agendaTelefonica";
$resultado = mysql_query($sql, $conexao);
?>
<table>
<tr>
<th>Nome</th><th>Sobrenome</th>
</tr>
<?
while ($linha = mysql_fetch_assoc($resultado)){
?>
<tr>
<td><?= $linha['primeironome'] ?></td>
<td><?= $linha[‘sobrenome'] ?></td>
</tr>
<? } ?>
</table>
Professor Eduardo Mendes edumendes@gmail.com
Mais consultas
•  Todos os registros da tabela que ‘a’, ‘b’,
‘c’, ‘d’
Professor Eduardo Mendes edumendes@gmail.com
Coringa  %
•  Selecione todos os registros que começam
com a letra ‘A’;
SELECT *
FROM agendaTelefonica
WHERE primeironome LIKE ‘A%’;
Professor Eduardo Mendes edumendes@gmail.com
Coringa com limitação de colunas
•  Todos os nome e sobrenomes da
agendaTelefonica, que possuam emails
terminados com ‘br’
SELECT nome, sobrenome
FROM agendaTelefonica
WHERE email LIKE ‘%br’;
Professor Eduardo Mendes edumendes@gmail.com
Múltiplas condições
SELECT *
FROM agendaTelefonica
WHERE nome LIKE ‘J%’
AND sobrenome LIKE ‘%o%’;
Professor Eduardo Mendes edumendes@gmail.com
Inserindo Valores no MySQL
INSERT INTO agendaTelefonica
VALUES(
0, ‘Eduardo', ‘Mendes',
‘eduardo@fa7.edu.br', '123567‘
);
Professor Eduardo Mendes edumendes@gmail.com
Inserindo um valor via PHP
Professor Eduardo Mendes edumendes@gmail.com
Inserindo um valor via PHP
<h1>Inserindo um valor</h1>
<?
$conexao = mysql_connect("localhost", "root", "");
mysql_select_db("modulo3", $conexao);
$sql = "INSERT INTO agendaTelefonica
VALUES (50, 'Lizbela', 'E o prisioneiro',
'lizbela@fa7.edu.br', '1234567')";
$resultado = mysql_query($sql, $conexao);
if ($resultado) {
print "<p>Valor inserido com sucesso!</p>";
} else {
print "<p>Não foi possível inserir...</p>";
}
?>
Professor Eduardo Mendes edumendes@gmail.com
Recuperando o valor via PHP
<h1>Recuperando um valor</h1>
<?
$conexao = mysql_connect("localhost", "root", "");
mysql_select_db("modulo3", $conexao);
$sql = "SELECT * FROM agendaTelefonica WHERE id=50";
$resultado = mysql_query($sql, $conexao);
if ($resultado) {
while ($linha = mysql_fetch_assoc($resultado)) {
?>
<p>O Nome inserido foi: <?= $linha['primeiroNome'] ?></p>
<p>Telefone: <?= $linha['telefone'] ?></p>
<?
}
} else {
print "<p>Não foi possível recuperar o valor inserido...</p>";
}
?>
Professor Eduardo Mendes edumendes@gmail.com
Recuperando o valor via PHP
Professor Eduardo Mendes edumendes@gmail.com
Inserindo Valores a partir De Um Formulario
Professor Eduardo Mendes edumendes@gmail.com
Inserindo valores com formulário
<h1>Inserindo valores com Formulario </h1>
<form method="post" action="inserirForm.php">
<p>Primeiro Nome: <input name="nome" type="text" /></p>
<p>Sobre-nome: <input name="sobrenome" type="text" /></p>
<p>Email: <input name="email" type="text“/></p>
<p>Telefone: <input name="telefone" type="text“/></p>
<p><input type="submit" value="Inserir" /></p>
</form>
Professor Eduardo Mendes edumendes@gmail.com
O action
Professor Eduardo Mendes edumendes@gmail.com
O action
<h1>Inserindo um valor</h1>
<?
$nome = $_POST['nome'];
$sobrenome = $_POST['sobrenome'];
$telefone = $_POST['telefone'];
$email = $_POST['email'];
$conexao = mysql_connect("localhost", "root", "");
mysql_select_db("modulo3", $conexao);
$sql = "INSERT INTO agendaTelefonica
VALUES (NULL, '$nome', '$sobrenome', '$email', '$telefone')";
$resultado = mysql_query($sql, $conexao);
if ($resultado) {
print "<p>Valor inserido com sucesso!</p>";
} else {
print "<p>Não foi possível inserir...</p>";
}
?>
Professor Eduardo Mendes edumendes@gmail.com
A agenda completa
Professor Eduardo Mendes edumendes@gmail.com
Procura por nome específico
•  Como encontrar um único
nome caso seja preciso?
Professor Eduardo Mendes edumendes@gmail.com
A solução  Caixa de pesquisa
Professor Eduardo Mendes edumendes@gmail.com
Altere o php
<?
$conexao = mysql_connect("localhost", "root", "");
mysql_select_db("modulo3", $conexao);
$sql = "SELECT * FROM agendaTelefonica";
if (isset($_POST['nome'])) {
$nome = $_POST['nome'];
$sql = $sql . " WHERE nome LIKE ‘$nome%’ ";
}
$resultado = mysql_query($sql, $conexao);
?>
Professor Eduardo Mendes edumendes@gmail.com
O campo de texto antes da tabela
<form method="post">
<p>Pesquisa: <input type="text" name="nome" /></p>
</form>
Professor Eduardo Mendes edumendes@gmail.com
Alterando Dados - UPDATE
•  Altere o sobrenome para ‘Oliveira’ onde o
nome é igual ‘Eduardo’
UPDATE agendaTelefonica
SET sobrenome=‘Oliveira’
WHERE nome = ‘Eduardo’;
Professor Eduardo Mendes edumendes@gmail.com
Excluindo linhas
DELETE
•  Delete da tabela agendaTelefonica o
registro de todos os ‘Eduardo’
DELETE FROM agendaTelefonica
WHERE nome = ‘Eduardo’;
Professor Eduardo Mendes edumendes@gmail.com
Banco de Dados da FA7
CREATE DATABASE fa7;
USE DATABASE fa7;
Professor Eduardo Mendes edumendes@gmail.com
Professor
•  Id
•  Nome
•  Titulação
•  Idade
•  Disciplina
Professor Eduardo Mendes edumendes@gmail.com
Tabela Professor
DROP TABLE IF EXISTS professor;
CREATE TABLE professor (
id INT PRIMARY KEY,
nome VARCHAR(15),
titulacao VARCHAR (15),
idade INT,
disciplina VARCHAR(30)
);
Professor Eduardo Mendes edumendes@gmail.com
Inserindo dados
Professor
INSERT INTO professor
VALUES (
0, ‘Fláudio', 'Mestre', 15, ‘Cálculo'
);
INSERT INTO professor
VALUES (
0, ‘Marum', 'Mestre', 10, ‘Sistemas de
Informação'
);
SELECT * FROM professor;
Professor Eduardo Mendes edumendes@gmail.com
E se eu quiser mais sobre
Disciplina????
•  Carga Horaria
•  Curso
Professor Eduardo Mendes edumendes@gmail.com
Disciplina
•  Id
•  Nome
•  Carga Horária
•  Curso
Professor Eduardo Mendes edumendes@gmail.com
Tabela Disciplina
DROP TABLE IF EXISTS disciplina;
CREATE TABLE disciplina (
id INT PRIMARY KEY,
nome VARCHAR(30),
cargaHoraria INT,
curso VARCHAR(30)
);
Professor Eduardo Mendes edumendes@gmail.com
Inserindo dados
Disciplina
INSERT INTO disciplina
VALUES (
0, ‘Cálculo', 80, ‘Sistemas de Informação’
);
INSERT INTO disciplina
VALUES (
0, ‘Sistemas de Informação', 80,
‘Sistemas de Informação’
);
SELECT * FROM disciplina;
Professor Eduardo Mendes edumendes@gmail.com
Relacionando Tabelas
Professor Eduardo Mendes edumendes@gmail.com
Modificando a estrura
da Tabela
ALTER TABLE professor
MODIFY disciplina INT;
•  Alterar os valores dos campos disciplina da tabela
professor para que possa haver a correlação
entre o campo disciplina da tabela professor e o
campo id da tabela disciplina
Professor Eduardo Mendes edumendes@gmail.com
Executando um script no PhpMyAdmin
•  O que são scripts?
–  Instruções formais escritas com linguagens
interpretadas
–  Cada instrução de um script é executada sem a
necessidade de se criar um arquivo executável
Professor Eduardo Mendes edumendes@gmail.com
Executando um script no PhpMyAdmin
•  Um exemplo de script que pode ser salvo
como um arquivo
DROP TABLE IF EXISTS professor;
CREATE TABLE professor (
id INT PRIMARY KEY,
nome VARCHAR(15),
titulacao VARCHAR (15),
idade INT,
disciplina VARCHAR(30)
);
Professor Eduardo Mendes edumendes@gmail.com
Executando um script no PhpMyAdmin
Professor Eduardo Mendes edumendes@gmail.com
Executando os scripts para o banco de dados fa7
•  Baixe os arquivos
Professor Eduardo Mendes edumendes@gmail.com
Verifique o banco fa7 agora
• SELECT * FROM curso;
• SELECT * FROM disciplina;
• SELECT * FROM professor;
Professor Eduardo Mendes edumendes@gmail.com
Combinando Tabelas
SELECT *
FROM professor,
disciplina;
Professor Eduardo Mendes edumendes@gmail.com
JOIN
Professor Eduardo Mendes edumendes@gmail.com
Solução
•  Precisamos colocar uma condição na nossa
consulta
SELECT * FROM professor, disciplina
•  Para que haja o relacionamento entre as
duas tabelas
Professor Eduardo Mendes edumendes@gmail.com
Impondo uma condição
SELECT *
FROM professor, disciplina
WHERE professor.disciplina=
disciplina.id;
Professor Eduardo Mendes edumendes@gmail.com
Dando um ‘apelido’
para Tabela
SELECT *
FROM professor p,
disciplina d;
Professor Eduardo Mendes edumendes@gmail.com
Apelido == ALIAS
SELECT p.nome,
d.nome
FROM professor p,
disciplina d
WHERE p.disciplina =
d.id;
Professor Eduardo Mendes edumendes@gmail.com
Alias para campos
SELECT p.nome as professor,
d.nome as disciplina
FROM professor p,
disciplina d
WHERE p.disciplina = d.id;
Professor Eduardo Mendes edumendes@gmail.com
Tabela curso
Professor Eduardo Mendes edumendes@gmail.com
Relacionando tabelas
SELECT *
FROM curso c,
disciplina d
WHERE d.curso = c.id;
Professor Eduardo Mendes edumendes@gmail.com
Qual o curso de cada professor?
SELECT c.nome as curso,
p.nome as professor
FROM curso c,
disciplina d,
professor p
WHERE p.disciplina=d.id
AND d.curso=c.id;
Professor Eduardo Mendes edumendes@gmail.com
Qual o curso de um professor específico?
SELECT c.nome as curso,
p.nome as professor
FROM curso c,
disciplina d,
professor p
WHERE p.disciplina=d.id
AND d.curso=c.id
AND p.nome=‘Flaudio’;
Professor Eduardo Mendes edumendes@gmail.com
Selecionando todos os professores
SELECT nome
FROM professor;
Professor Eduardo Mendes edumendes@gmail.com
Selecionando todos os professores
sem repetir nomes
SELECT DISTINCT nome
FROM professor;
Professor Eduardo Mendes edumendes@gmail.com
Quantos professores
existem na tabela?
SELECT COUNT(*)
FROM professor;
Professor Eduardo Mendes edumendes@gmail.com
Quantos professores
um curso específico possui?
SELECT COUNT(DISTINCT p.nome)
FROM professor p,
disciplina d,
curso c
WHERE p.disciplina=d.id
AND d.curso=c.id
AND c.nome=‘CONTABILIDADE’;
Professor Eduardo Mendes edumendes@gmail.com
Quantos professores
cada curso possui?
SELECT COUNT(DISTINCT p.nome),
c.nome
FROM professor p,
disciplina d,
curso c
WHERE p.disciplina=d.id
AND d.curso=c.id
GROUP BY c.nome;
Professor Eduardo Mendes edumendes@gmail.com
Consultas
•  Selecione os professores e os ordene por
ordem alfabética
•  Selecione a quantidade de disciplinas do
curso SISTEMAS DE INFORMACAO
•  Selecione a quantidade de disciplinas de
cada Curso
•  Selecione a quantidade de disciplinas de
cada professor
Professor Eduardo Mendes edumendes@gmail.com
Quantos professores
cada curso possui?
SELECT COUNT(DISTINCT d.nome),
p.nome
FROM professor p,
disciplina d,
curso c
WHERE p.disciplina=d.id
AND d.curso=c.id
GROUP BY p.nome;
Professor Eduardo Mendes edumendes@gmail.com
Funções no PHP para recuperar resultados
•  Cria um array associativo com a linha atual
de um conjunto de resultados
Id 0
primeiroNome Eduardo
sobreNome Mendes
email eduardo@fa7.edu.br
telefone 123-4567
Professor Eduardo Mendes edumendes@gmail.com
Funções no PHP para recuperar resultados
while ($linha = mysql_fetch_assoc($resultado)) {
?>
<p>O Nome inserido foi: <?= $linha['primeiroNome'] ?></p>
<p>Telefone: <?= $linha['telefone'] ?></p>
<?
}
Professor Eduardo Mendes edumendes@gmail.com
Funções no PHP para recuperar resultados
•  Cria um array normal com a linha atual de
um conjunto de resultados
0 0
1 Eduardo
2 Mendes
3 eduardo@fa7.edu.br
4 123-4567
Professor Eduardo Mendes edumendes@gmail.com
Funções no PHP para recuperar resultados
while ($linha = mysql_fetch_row($resultado)) {
?>
<p>O Nome inserido foi: <?= $linha[1] ?></p>
<p>Telefone: <?= $linha[4] ?></p>
<?
} 0 0
1 Eduardo
2 Mendes
3 eduardo@fa7.edu.br
4 123-4567
Professor Eduardo Mendes edumendes@gmail.com
Funções no PHP para recuperar resultados
•  Cria tanto o array associativo, quanto o
array numérico
Id 0
primeiroNome Eduardo
sobreNome Mendes
email eduardo@fa7.edu.br
Telefone 123-4567
0 0
1 Eduardo
2 Mendes
3 eduardo@fa7.edu.br
4 123-4567
Professor Eduardo Mendes edumendes@gmail.com
Funções no PHP para recuperar resultados
while ($linha = mysql_fetch_array($resultado)) {
?>
<p>O Nome inserido foi: <?= $linha[1] ?></p>
<p>Telefone: <?= $linha[‘telefone’] ?></p>
<?
}
0 0
1 Eduardo
2 Mendes
3 eduardo@fa7.edu.br
4 123-4567
Id 0
primeiroNome Eduardo
sobreNome Mendes
email eduardo@fa7.edu.br
telefone 123-4567
Professor Eduardo Mendes edumendes@gmail.com
Percorrendo os resultados
<table>
<?
while ($linha = mysql_fetch_row($resultado)){
?>
<tr>
<?
foreach ($linha as $valor) {
print "<td>$valor</td>n";
}
?>
</tr>
<? } ?>
</table>
Professor Eduardo Mendes edumendes@gmail.com
Percorrendo os resultados
<table>
<?
while ($linha = mysql_fetch_assoc($resultado)){
?>
<tr>
<?
foreach ($linha as $valor) {
print "<td>$valor</td>n";
}
?>
</tr>
<? } ?>
</table>
Professor Eduardo Mendes edumendes@gmail.com
Percorrendo os resultados
<table>
<?
while ($linha = mysql_fetch_array($resultado)){
?>
<tr>
<?
foreach ($linha as $valor) {
print "<td>$valor</td>n";
}
?>
</tr>
<? } ?>
</table>
Professor Eduardo Mendes edumendes@gmail.com
Algumas funções de Strings
•  strtoupper
–  Converte uma String para maiúsculas
–  strtoupper(“abcd”)  ABCD
•  strtolower
–  Converte uma String para minúsculas
–  strtolower(“XYWZ”)  xywz
•  strlen
–  Retorna o tamanho de uma String
•  Mais funções para String: http://php.net/
strings
Professor Eduardo Mendes edumendes@gmail.com
Nossa lista de professores  listarProfessor.php
Professor Eduardo Mendes edumendes@gmail.com
Como apresentar os campos em maiúsculas?
<?
$con = mysql_pconnect(“localhost”, “root”,””);
mysql_select_db(“jornada”, $con);
$consulta = “SELECT p.*, d.nome as dnome
FROM professor p, disciplina d
WHERE p.disciplina=d.id”;
$resultado = mysql_query($consulta, $con);
Professor Eduardo Mendes edumendes@gmail.com
?>
<h1>Professores</h1>
<table border=“1”>
<tr>
<td>Nome</td>
<td>Titulação</td>
<td>Idade</td>
<td>Disciplina</td>
</tr>
Professor Eduardo Mendes edumendes@gmail.com
<? while($linha = mysql_fetch_array($resultado)) {
?>
<tr>
<td>
<a href=“editarProfessor.php?id=<?= $linha[‘id’] ?>”>
<?= $linha[‘nome’] ?>
</a>
</td>
<td><?= $linha[‘titulacao’] ?></td>
<td><?= $linha[‘idade’] ?></td>
<td><?= $linha[‘dnome’] ?></td>
</tr>
<? } ?>
Professor Eduardo Mendes edumendes@gmail.com
<?
$con = mysql_pconnect(“localhost”,”root”,””);
mysql_select_db(“jornada”, $con);
$id = $_GET[‘id’];
$sql = “SELECT * FROM professor WHERE id=” . $id;
$resultado = mysql_query($sql, $con);
$professor = mysql_fetch_array($resultado);
?>
Professor Eduardo Mendes edumendes@gmail.com
<form method=“post” action=“alterar.php”>
<input type=“hidden” name=“id”
value=“<?= $professor[‘id’] ?>” />
Nome: <input type=“text” name=“nome”
value=“<?= $professor[‘nome’] ?>” />
<br/>
Idade: <input type=“text” name=“idade”
value=“<?= $professor[‘idade’] ?>” />
<br/>
Titulacao: <input type=“text” name=“titulacao”
value=“<?= $professor[‘titulacao’] ?>” />
<br/>
Professor Eduardo Mendes edumendes@gmail.com
<?
$con = mysql_pconnect(“localhost”, ”root”,””);
mysql_select_db(“jornada”, $con);
$id = $_POST[‘id’] ;
$nome = $_POST[‘nome’] ;
$titulacao = $_POST[‘titulacao’] ;
$idade = $_POST[‘idade’] ;
$sql = “UPDATE professor
SET nome=‘$nome’, titulacao=‘$titulacao’,idade=
$idade
WHERE id = $id”;
$r = mysql_query($sql, $con) or die(mysql_error());
Professor Eduardo Mendes edumendes@gmail.com
Professor Eduardo Mendes edumendes@gmail.com
Tornando os campos maiúsculos
<table>
<?
while ($campo = mysql_fetch_field($resultado)){
print " <th>" . strtoupper($campo->name) ."</th>n";
}
?>
Professor Eduardo Mendes edumendes@gmail.com
Alterando o valor no BD com PHP
Professor Eduardo Mendes edumendes@gmail.com
Criando uma página para Alterar
Professor Eduardo Mendes edumendes@gmail.com
Isto é o queremos
Professor Eduardo Mendes edumendes@gmail.com
O que precisamos?
•  Criar e executar uma
consulta para recuperar a
informações de um
professor específico
•  Criar e executar uma
consulta para recuperar as
informações de disciplinas
•  Fazer com que os campos
apresentem os valores do
professor específico
•  Fazer com o que campo
disciplinas apresente os
valores das disciplinas
Professor Eduardo Mendes edumendes@gmail.com
Realizando os 4 passos
•  Criar e executar uma consulta para
recuperar a informações de um professor
específico
$sql = "SELECT * FROM professor WHERE id=" . $_GET['id'];
$resultado = mysql_query($sql, $conexao);
$professor = mysql_fetch_assoc($resultado);
http://localhost/aplicacao/editarProfessor.php?id=1
Professor Eduardo Mendes edumendes@gmail.com
Realizando os 4 passos
•  Criar e executar uma consulta para
recuperar as informações de disciplinas
$sql = "SELECT id, nome FROM disciplina";
$disciplinas = mysql_query($sql, $conexao);
Professor Eduardo Mendes edumendes@gmail.com
Realizando os 4 passos
•  Fazer com que os campos apresentem os
valores do professor específico
<input type="hidden" name="id" value="<?= $professor['id'] ?>" />
<p>Nome:
<input type="text" name="nome" value="<?= $professor['nome'] ?>" />
</p>
Professor Eduardo Mendes edumendes@gmail.com
Realizando os 4 passos
•  Fazer com o que campo disciplinas
apresente os valores das disciplinas
<select name="disciplina">
<? while($opcoes = mysql_fetch_assoc($disciplinas)) { ?>
<option value="<?= $opcoes['id'] ?>">
<?= $opcoes['nome'] ?></option>
<? } ?>
</select>
Professor Eduardo Mendes edumendes@gmail.com
Exercícios
•  Criar uma tabela chamada produto
•  A tabela possui
–  Id: int
–  Nome: Varchar(50)
–  Preco: int
•  Crie uma tela para inserir produtos na
tabela
•  Crie uma tela para listar todos os produtos
da tabela
Professor Eduardo Mendes edumendes@gmail.com
Logando em uma aplicação
Professor Eduardo Mendes edumendes@gmail.com
Quais as necessidades para esta tela?
Professor Eduardo Mendes edumendes@gmail.com
Uma tabela de usuários
•  Id
•  Nome
•  Login
•  Senha
–  Quais as características de um login?
Professor Eduardo Mendes edumendes@gmail.com
Índices – login
•  Chave primária
–  Campo na tabela que não se repete
–  Serve para identificar uma “tupla” de maneira
única
–  A chave primária pode ser identificada como
um campo único ou como um conjunto de campos
•  Índices únicos
–  Determinados campos podem ter necessidades
especiais
–  Alguns campos não deveriam se repetir
Professor Eduardo Mendes edumendes@gmail.com
Professor Eduardo Mendes edumendes@gmail.com
No PhpMyAdmin
Teste para ver
a mensagem de erro
Professor Eduardo Mendes edumendes@gmail.com
Quais os campos?
Professor Eduardo Mendes edumendes@gmail.com
Login.php
<h1>Login</h1>
<p>Informe o nome de usuário e senha</p>
<form action="confere.php" method="post">
<p>Nome: <input name="login" type="text" /></p>
<p>Senha: <input name="senha" type="password" /></p>
<p><input type="submit" /></p>
</form>
Professor Eduardo Mendes edumendes@gmail.com
Professor Eduardo Mendes edumendes@gmail.com
A consulta
$login = $_POST [‘login’];
$senha = $_POST[‘senha’];
$sql = “SELECT * FROM usuario WHERE
login=‘$login’ ”;
$resultado = mysql_query($sql, $conexao);
$linha = mysql_fetch_assoc($resultado);
if($linha[‘senha’] == $senha) {
Professor Eduardo Mendes edumendes@gmail.com
Confere.php
<?
$login = $_POST['login'];
$senha = $_POST['senha'];
$conexao = mysql_pconnect("localhost", "root", "");
mysql_select_db("fa7", $conexao);
$sql = "SELECT * FROM usuario WHERE login='$login'";
$resultado = mysql_query($sql);
$linha = mysql_fetch_assoc($resultado);
if ($linha['senha'] == $senha) {
print "<p>Usuário logado com sucesso!</p>";
} else {
print "<p>Você não tem permissão para acessar esta página!</p>";
}
?>
Professor Eduardo Mendes edumendes@gmail.com
Professor Eduardo Mendes edumendes@gmail.com
listarCurso.php
<h1>Listar Cursos</h1>
<? $conn = mysql_connect("localhost", "root", "");
mysql_select_db("fa7", $conn);
$sql = "SELECT id, nome FROM curso";
$result = mysql_query($sql, $conn);
?>
<table>
<tr>
<th>ID</th>
<th>Nome</th>
</tr>
<?
while ($row = mysql_fetch_assoc($result)){
?>
<tr>
<td><?= $row['id'] ?></td>
<td><?= $row['nome'] ?></td>
</tr>
<? } ?>
</table>
Professor Eduardo Mendes edumendes@gmail.com
Criar um link para editarCurso
•  Como poderíamos criar
um link para editar o
curso?
•  Que link seria esse?
Professor Eduardo Mendes edumendes@gmail.com
O link
•  Destino
–  editarCurso.php
•  Informando o curso a ser editado
–  editarCurso.php?id=1
•  O link
<a href='editarCurso.php?id=<?= $row['id'] ?>'> <?= $row['nome'] ?> </a>
Professor Eduardo Mendes edumendes@gmail.com
Adicionando o link
<tr>
<td><?= $row['id'] ?></td>
<td>
<a href='editarCurso.php?id=<?= $row['id'] ?>'>
<?= $row['nome'] ?>
</a>
</td>
</tr>
Professor Eduardo Mendes edumendes@gmail.com
O editarCurso.php
Professor Eduardo Mendes edumendes@gmail.com
editarCurso.php
<h1>Editar Cursos</h1>
<?
$id = $_GET['id'];
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("fa7", $conn);
$sql = "SELECT * FROM curso where id=$id";
$result = mysql_query($sql, $conn);
$row = mysql_fetch_assoc($result);
?>
Professor Eduardo Mendes edumendes@gmail.com
editarCurso.php
<form action="alterarCurso.php“ method=“post”>
<p>Id:
<input type="text" name="id“ readonly=“true”
value="<?= $row['id'] ?>"/></p>
<p>Nome:
<input type="text" name="nome"
value="<?= $row['nome'] ?>"/></p>
<p>Duracao:
<input type="text" name="duracao“
value="<?= $row['duracao'] ?>"/></p>
<p>MEC:
<input type="text" name="MEC“
value="<?= $row['MEC'] ?>"/></p>
<input type="button"
onclick="javascript:history.go(-1);" value="Voltar"/>
<input type="submit" value="Alterar"/>
<a href="excluirCurso.php?id=<?= $row['id'] ?>">
Excluir Curso</a>
</form>
Professor Eduardo Mendes edumendes@gmail.com
alterarCurso.php
Professor Eduardo Mendes edumendes@gmail.com
alterarCurso.php
<?
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("fa7", $conn);
$nome = $_POST[‘nome’];
$duracao = $_POST[‘duracao’];
$MEC = $_POST[‘MEC’];
$id = $_POST[‘id’];
$sql = "UPDATE curso SET nome='$nome',
duracao='$duracao', MEC='$MEC' WHERE id=$id";
$result = mysql_query($sql, $conn);
if($result) {
print "<p>Curso alterado com sucesso!</p>";
} else {
print "<p>Alteração não realizada!</p>";
}
?>
<a href="listarCurso.php"><p>Listar Cursos</p></a>
Professor Eduardo Mendes edumendes@gmail.com
<?
$id = $_GET[‘id’];
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("fa7", $conn);
$sql = "DELETE FROM curso WHERE id=$id";
$result = mysql_query($sql, $conn);
if($result) {
print "<h1>Curso excluído com sucesso!</h1>";
} else {
print "<h1>Não foi possível excluir o curso!</h1>";
}
?>
<a href="listarCurso.php"><h4>Listar Cursos</h4></a>
Professor Eduardo Mendes edumendes@gmail.com
O condicional ternário
$acao = ([condição]) ? “agir” : “parar” ;
true
false
Professor Eduardo Mendes edumendes@gmail.com
Nosso fluxo
Professor Eduardo Mendes edumendes@gmail.com
Novo Fluxo
Professor Eduardo Mendes edumendes@gmail.com
Um novo fluxo
Professor Eduardo Mendes edumendes@gmail.com
Um novo fluxo
Professor Eduardo Mendes edumendes@gmail.com
Criando um fluxo de decisão
<?
$mensagem = “”;
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("fa7", $conn);
if (isset($_POST['acao']) || isset($_GET['acao'])) {
$acao = (isset($_POST['acao'])) ? $_POST['acao'] : $_GET['acao'] ;
if ($acao == "alterar") {
//comandos para alterar
} else if ($acao == "excluir") {
//comandos para excluir
} else if ($acao == "inserir") {
//comandos para inserir
} else if ($acao == "buscar") {
//comandos para buscar
}
}
Professor Eduardo Mendes edumendes@gmail.com
Adicionando o campo hidden ao editarCurso.php
<form action="listarCurso.php" method="post">
<input type="hidden" name="acao" value="alterar" />
<p>Id:
<input type="text" readonly="true"
name="id" value="<?= $row['id'] ?>"/>
</p>
<p>Nome:
<input type="text" name="nome" value="<?=
$row['nome'] ?>"/></p>
Professor Eduardo Mendes edumendes@gmail.com
O Alterar
if ($acao == "alterar") {
$nome = $_POST['nome'];
$duracao = $_POST['duracao'];
$MEC = $_POST['MEC'];
$id = $_POST['id'];
$sql = "UPDATE curso
SET nome='$nome', duracao='$duracao', MEC='$MEC' WHERE id=$id";
$result = mysql_query($sql, $conn);
if($result) {
$mensagem = "Curso alterado com sucesso!";
} else {
$mensagem = "Alteração não realizada!";
}
} els...
Professor Eduardo Mendes edumendes@gmail.com
O excluir
} else if ($acao == "excluir") {
$id = $_GET['id'];
$sql = "DELETE FROM curso WHERE id=$id";
$result = mysql_query($sql, $conn);
if($result) {
$mensagem = "Curso Excluído com sucesso!";
} else {
$mensagem = "A exclusão não pode ser realizada!";
}
} else ...
Professor Eduardo Mendes edumendes@gmail.com
Alterando o botão de exclusão
....
<input type="button"
onclick="javascript:history.go(-1);" value="Voltar"/>
<input type="submit" value="Alterar"/>
<a href="listarCurso.php?acao=excluir&id=<?= $row['id'] ?>">
Excluir Curso</a>
</form>
Professor Eduardo Mendes edumendes@gmail.com
O inserir
} else if ($acao == "inserir") {
$nome = $_POST['nome'];
$duracao = $_POST['duracao'];
$MEC = $_POST['MEC'];
$sql = "INSERT INTO curso
VALUES(NULL, '$nome', '$duracao', '$MEC')";
$result = mysql_query($sql, $conn);
if($result) {
$mensagem = "Curso inserido com sucesso!";
} else {
$mensagem = "O curso não pode ser incluso!";
}
} els...
Professor Eduardo Mendes edumendes@gmail.com
O que já temos
Professor Eduardo Mendes edumendes@gmail.com
O que precisaremos fazer?
Este botão direciona
o navegador para
a página de editar/inserir
Professor Eduardo Mendes edumendes@gmail.com
<tr>
<td><?= $row['id'] ?></td>
<td>
<a href='editarCurso.php?id=<?= $row['id'] ?>'>
<?= $row['nome'] ?>
</a>
</td>
</tr>
</table>
<p>
<input type="button"
value="Inserir Novo Curso"
onClick="javascript:
location.href='editarCurso.php';" />
</p>
</div>
Adicionando o botão
Professor Eduardo Mendes edumendes@gmail.com
O que precisamos fazer?
•  Determinar se esta
página vai alterar ou
criar um novo curso
•  Como?
–  Pela forma como foi
acessada
Professor Eduardo Mendes edumendes@gmail.com
As 2 maneiras de acessar a página de Edição
Professor Eduardo Mendes edumendes@gmail.com
O que precisamos fazer?
•  Precisamos criar uma
variável para mostrar
qual ação deve ser
realizada
–  $acao
–  Inicialmente ela vai
possuir o valor “inserir”
–  Caso a ação seja
alterar, mudamos para o
valor “alterar”
Professor Eduardo Mendes edumendes@gmail.com
O novo editarCurso.php
<h1>Editar Cursos</h1>
<?
$acao = "inserir";
$id = "";
$nome = "";
$duracao = "";
$MEC = "";
if (isset($_GET['id'])) {
$acao = "alterar";
$id = $_GET['id'];
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("fa7", $conn);
$sql = "SELECT * FROM curso where id=$id";
$result = mysql_query($sql, $conn);
$row = mysql_fetch_assoc($result);
$nome = $row['nome'];
$duracao = $row['duracao'];
$MEC = $row['MEC'];
}
Professor Eduardo Mendes edumendes@gmail.com
O novo editarCurso.php
<form action=“listarCurso.php“ method=“post”>
<input type="hidden" name="acao" value="<?= $acao ?>" />
<p>Id:
<input type="text" name="id“ readonly=“true”
value="<?= $id ?>"/></p>
<p>Nome:
<input type="text" name="nome"
value="<?= $nome ?>"/></p>
<p>Duracao:
<input type="text" name="duracao“
value="<?= $duracao ?>"/></p>
<p>MEC:
<input type="text" name="MEC“
value="<?= $MEC ?>"/></p>
<input type="button"
onclick="javascript:history.go(-1);" value="Voltar"/>
Professor Eduardo Mendes edumendes@gmail.com
A ação de alterar no listarCurso.php
} else if ($acao == "inserir") {
$nome = $_POST['nome'];
$duracao = $_POST['duracao'];
$MEC = $_POST['MEC'];
$sql = "INSERT INTO curso
VALUES(NULL, '$nome', '$duracao', '$MEC')";
$result = mysql_query($sql, $conn);
if($result) {
$mensagem = "Curso inserido com sucesso!";
} else {
$mensagem = "O curso não pode ser incluso<strong></strong>!";
}
} el....
Professor Eduardo Mendes edumendes@gmail.com
CRUD COMPLETO!!!
Professor Eduardo Mendes edumendes@gmail.com
O que foi visto?
•  Introdução Banco de Dados
–  Linhas
–  Tabelas
–  Colunas
–  Registros
–  Chave Primária
–  Chave Estrangeira
–  Relacionamento entre tabelas
–  Índices
•  MySQL
–  O cliente mysql.exe
•  Conexão via linha de comando
–  PhpMyAdmin
•  Linguagem SQL
–  Linguagem de Modelagem de
dados
•  CREATE, USE, ALTER, LOAD
DATA
•  Conectando o MySQL com
funções PHP
–  mysql_connect(),
mysql_pconnect(),
mysql_select_db(),
–  Consultas
–  Linguagem de Consulta
•  SELECT, UPDATE, DELETE,
INSERT
•  WHERE, AND, OR, ORDER BY,
LIKE, DISTINCT, COUNT,
GROUP BY
•  mysql_query(),
mysql_fetch_assoc(),
mysql_fetch_array(),
mysql_row(),
mysql_fetch_field()
•  Conjunto de Resultados
•  Formatando o conteúdo
–  Criação de CRUD
Professor Eduardo Mendes edumendes@gmail.com
Obrigado!

Mais conteúdo relacionado

Mais procurados

Curso JavaScript - Aula sobre DOM e Ajax
Curso JavaScript - Aula sobre DOM e AjaxCurso JavaScript - Aula sobre DOM e Ajax
Curso JavaScript - Aula sobre DOM e AjaxTiago Antônio da Silva
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03thomasdacosta
 
Apresentação HTML e CSS
Apresentação HTML e CSSApresentação HTML e CSS
Apresentação HTML e CSSledsifes
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01 Léo Dias
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Gercélia Ramos
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosRafael Albani
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na práticaRafael Cassau
 
Introdução a programação para a Internet
Introdução a programação para a InternetIntrodução a programação para a Internet
Introdução a programação para a InternetLeonardo Soares
 
Introdução a Linguagem de Programação PHP
Introdução a Linguagem de Programação PHPIntrodução a Linguagem de Programação PHP
Introdução a Linguagem de Programação PHPClayton de Almeida Souza
 

Mais procurados (20)

Curso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSSCurso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSS
 
CSS
CSSCSS
CSS
 
Curso JavaScript - Aula sobre DOM e Ajax
Curso JavaScript - Aula sobre DOM e AjaxCurso JavaScript - Aula sobre DOM e Ajax
Curso JavaScript - Aula sobre DOM e Ajax
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03
 
Apresentação HTML e CSS
Apresentação HTML e CSSApresentação HTML e CSS
Apresentação HTML e CSS
 
Uml
UmlUml
Uml
 
Introdução ao HTML
Introdução ao HTMLIntrodução ao HTML
Introdução ao HTML
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01
 
Introdução ao MySQL
Introdução ao MySQLIntrodução ao MySQL
Introdução ao MySQL
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)
 
Programacao para Web I Plano de Ensinodoc
Programacao para Web I Plano de EnsinodocProgramacao para Web I Plano de Ensinodoc
Programacao para Web I Plano de Ensinodoc
 
Programação Web com HTML e CSS
Programação Web com HTML e CSSProgramação Web com HTML e CSS
Programação Web com HTML e CSS
 
Linguagem SQL
Linguagem SQLLinguagem SQL
Linguagem SQL
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de Dados
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
 
Introdução a programação para a Internet
Introdução a programação para a InternetIntrodução a programação para a Internet
Introdução a programação para a Internet
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Introdução a Linguagem de Programação PHP
Introdução a Linguagem de Programação PHPIntrodução a Linguagem de Programação PHP
Introdução a Linguagem de Programação PHP
 

Destaque

Php e mysql aplicacao completa a partir do zero
Php e mysql   aplicacao completa a partir do zeroPhp e mysql   aplicacao completa a partir do zero
Php e mysql aplicacao completa a partir do zeroFred Ramos
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoLuiz Junior
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Willian Magalhães
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHPPaulo Dayvson
 
CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1Norivan Oliveira
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsGilmar Pupo
 
Desfrutando os Componentes do Zend Framework
Desfrutando os Componentes do Zend FrameworkDesfrutando os Componentes do Zend Framework
Desfrutando os Componentes do Zend FrameworkFernando Geraldo Mantoan
 
"Streamizando" com sucesso
"Streamizando" com sucesso"Streamizando" com sucesso
"Streamizando" com sucessoBruno Oliveira
 
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
HTML -  Listas, Estilos, Tabelas, Div, Span, FormulárioHTML -  Listas, Estilos, Tabelas, Div, Span, Formulário
HTML - Listas, Estilos, Tabelas, Div, Span, FormulárioArthur Emanuel
 
Aprender PHP e mySQL (UFCD0155)
Aprender PHP e mySQL (UFCD0155)Aprender PHP e mySQL (UFCD0155)
Aprender PHP e mySQL (UFCD0155)Afonso Gomes
 
Linux Ubuntu Server - Configurar modo grafico do user root
Linux Ubuntu Server - Configurar modo grafico do user rootLinux Ubuntu Server - Configurar modo grafico do user root
Linux Ubuntu Server - Configurar modo grafico do user rootRui Lopes
 
Prática de laboratório utilizando views, stored procedures e triggers
Prática de laboratório   utilizando views, stored procedures e triggersPrática de laboratório   utilizando views, stored procedures e triggers
Prática de laboratório utilizando views, stored procedures e triggersDaniel Maia
 
Desenvolvimento web com python e web2py
Desenvolvimento web com python e web2pyDesenvolvimento web com python e web2py
Desenvolvimento web com python e web2pyRelsi Maron
 
Desenvolvimento web com python e web2py
Desenvolvimento web com python e web2pyDesenvolvimento web com python e web2py
Desenvolvimento web com python e web2pyRelsi Maron
 

Destaque (20)

Php e mysql aplicacao completa a partir do zero
Php e mysql   aplicacao completa a partir do zeroPhp e mysql   aplicacao completa a partir do zero
Php e mysql aplicacao completa a partir do zero
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao Avançado
 
PHP e banco de dados
PHP e banco de dadosPHP e banco de dados
PHP e banco de dados
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHP
 
CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com Jenkins
 
Aula3
Aula3Aula3
Aula3
 
Unid i b-apostila
Unid i b-apostilaUnid i b-apostila
Unid i b-apostila
 
Desfrutando os Componentes do Zend Framework
Desfrutando os Componentes do Zend FrameworkDesfrutando os Componentes do Zend Framework
Desfrutando os Componentes do Zend Framework
 
Php Para Iniciantes
Php Para IniciantesPhp Para Iniciantes
Php Para Iniciantes
 
Advanced SQL
Advanced SQLAdvanced SQL
Advanced SQL
 
"Streamizando" com sucesso
"Streamizando" com sucesso"Streamizando" com sucesso
"Streamizando" com sucesso
 
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
HTML -  Listas, Estilos, Tabelas, Div, Span, FormulárioHTML -  Listas, Estilos, Tabelas, Div, Span, Formulário
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
 
Aprender PHP e mySQL (UFCD0155)
Aprender PHP e mySQL (UFCD0155)Aprender PHP e mySQL (UFCD0155)
Aprender PHP e mySQL (UFCD0155)
 
Turing seminar-2012
Turing seminar-2012Turing seminar-2012
Turing seminar-2012
 
Linux Ubuntu Server - Configurar modo grafico do user root
Linux Ubuntu Server - Configurar modo grafico do user rootLinux Ubuntu Server - Configurar modo grafico do user root
Linux Ubuntu Server - Configurar modo grafico do user root
 
Prática de laboratório utilizando views, stored procedures e triggers
Prática de laboratório   utilizando views, stored procedures e triggersPrática de laboratório   utilizando views, stored procedures e triggers
Prática de laboratório utilizando views, stored procedures e triggers
 
Desenvolvimento web com python e web2py
Desenvolvimento web com python e web2pyDesenvolvimento web com python e web2py
Desenvolvimento web com python e web2py
 
Desenvolvimento web com python e web2py
Desenvolvimento web com python e web2pyDesenvolvimento web com python e web2py
Desenvolvimento web com python e web2py
 

Semelhante a PHP MySQL Módulo 3

Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Dsi   015 - poo e php - conexão com bancos de dados usando pdoDsi   015 - poo e php - conexão com bancos de dados usando pdo
Dsi 015 - poo e php - conexão com bancos de dados usando pdoJorge Luís Gregório
 
Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4Carlos Santos
 
PHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosPHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosDaniel Brandão
 
Aula 08 - Introdução ao banco de dados MySQL - Programação Web
Aula 08 - Introdução ao banco de dados MySQL - Programação WebAula 08 - Introdução ao banco de dados MySQL - Programação Web
Aula 08 - Introdução ao banco de dados MySQL - Programação WebDalton Martins
 
LabMM4 (T16 - 12/13) - PHP + MySQL
LabMM4 (T16 - 12/13) - PHP + MySQLLabMM4 (T16 - 12/13) - PHP + MySQL
LabMM4 (T16 - 12/13) - PHP + MySQLCarlos Santos
 
Aula 12 Relatório - Tabelas
Aula 12   Relatório - TabelasAula 12   Relatório - Tabelas
Aula 12 Relatório - TabelasDalton Martins
 
DELPHI & MySQL - September 2004
DELPHI & MySQL - September 2004DELPHI & MySQL - September 2004
DELPHI & MySQL - September 2004Michel Alves
 
Otimização e Escalabilidade
Otimização e EscalabilidadeOtimização e Escalabilidade
Otimização e Escalabilidademetzen
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopDiego Sana
 
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8Emiliano Barbosa
 
Conectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcConectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcJeison Barros
 
Aula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias RelacionadasAula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias RelacionadasCJR, UnB
 
Banco de dadados MySQL com PHP
Banco de dadados MySQL com PHPBanco de dadados MySQL com PHP
Banco de dadados MySQL com PHPLeonardo Soares
 

Semelhante a PHP MySQL Módulo 3 (20)

Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Dsi   015 - poo e php - conexão com bancos de dados usando pdoDsi   015 - poo e php - conexão com bancos de dados usando pdo
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
 
Prog web 05-php-mysql
Prog web 05-php-mysqlProg web 05-php-mysql
Prog web 05-php-mysql
 
Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4
 
Python 04
Python 04Python 04
Python 04
 
PHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosPHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de Dados
 
Palestra PHPSP+Locaweb 2014 - PDO
Palestra PHPSP+Locaweb 2014 - PDOPalestra PHPSP+Locaweb 2014 - PDO
Palestra PHPSP+Locaweb 2014 - PDO
 
Aula 08 - Introdução ao banco de dados MySQL - Programação Web
Aula 08 - Introdução ao banco de dados MySQL - Programação WebAula 08 - Introdução ao banco de dados MySQL - Programação Web
Aula 08 - Introdução ao banco de dados MySQL - Programação Web
 
LabMM4 (T16 - 12/13) - PHP + MySQL
LabMM4 (T16 - 12/13) - PHP + MySQLLabMM4 (T16 - 12/13) - PHP + MySQL
LabMM4 (T16 - 12/13) - PHP + MySQL
 
Aula 12 Relatório - Tabelas
Aula 12   Relatório - TabelasAula 12   Relatório - Tabelas
Aula 12 Relatório - Tabelas
 
DELPHI & MySQL - September 2004
DELPHI & MySQL - September 2004DELPHI & MySQL - September 2004
DELPHI & MySQL - September 2004
 
Otimização e Escalabilidade
Otimização e EscalabilidadeOtimização e Escalabilidade
Otimização e Escalabilidade
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day Workshop
 
Java 16 Jdbc
Java 16 JdbcJava 16 Jdbc
Java 16 Jdbc
 
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
 
2006 - ADONET.ppt
2006 - ADONET.ppt2006 - ADONET.ppt
2006 - ADONET.ppt
 
Implementação de
Implementação de Implementação de
Implementação de
 
Conectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcConectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbc
 
Aula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias RelacionadasAula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias Relacionadas
 
Banco de dadados MySQL com PHP
Banco de dadados MySQL com PHPBanco de dadados MySQL com PHP
Banco de dadados MySQL com PHP
 
Crud
CrudCrud
Crud
 

Mais de Eduardo Mendes

JavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a ObjetosJavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a ObjetosEduardo Mendes
 
Angular JS - Fundamentos
Angular JS - FundamentosAngular JS - Fundamentos
Angular JS - FundamentosEduardo Mendes
 
Singleton - Padrão de Projeto
Singleton - Padrão de ProjetoSingleton - Padrão de Projeto
Singleton - Padrão de ProjetoEduardo Mendes
 
Introdução à Internet, Http e HTML
Introdução à Internet, Http e HTMLIntrodução à Internet, Http e HTML
Introdução à Internet, Http e HTMLEduardo Mendes
 
Estimativas de Esforço - Engenharia de Software
Estimativas de Esforço - Engenharia de SoftwareEstimativas de Esforço - Engenharia de Software
Estimativas de Esforço - Engenharia de SoftwareEduardo Mendes
 
Java web 6 JSP Expression Language Taglib parte 2
Java web 6 JSP Expression Language Taglib parte 2Java web 6 JSP Expression Language Taglib parte 2
Java web 6 JSP Expression Language Taglib parte 2Eduardo Mendes
 
Validações no Ruby on Rails
Validações no Ruby on Rails Validações no Ruby on Rails
Validações no Ruby on Rails Eduardo Mendes
 
Padroes Template-Method (Método Gabarito)
Padroes Template-Method (Método Gabarito)Padroes Template-Method (Método Gabarito)
Padroes Template-Method (Método Gabarito)Eduardo Mendes
 

Mais de Eduardo Mendes (20)

JavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a ObjetosJavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a Objetos
 
AngularJS - Rotas
AngularJS - RotasAngularJS - Rotas
AngularJS - Rotas
 
Angular JS - Fundamentos
Angular JS - FundamentosAngular JS - Fundamentos
Angular JS - Fundamentos
 
Singleton - Padrão de Projeto
Singleton - Padrão de ProjetoSingleton - Padrão de Projeto
Singleton - Padrão de Projeto
 
Layout Fluido
Layout FluidoLayout Fluido
Layout Fluido
 
Web Design Responsivo
Web Design ResponsivoWeb Design Responsivo
Web Design Responsivo
 
Html - Aula 4
Html - Aula 4Html - Aula 4
Html - Aula 4
 
Html - Aula 3
Html - Aula 3Html - Aula 3
Html - Aula 3
 
Introdução à Internet, Http e HTML
Introdução à Internet, Http e HTMLIntrodução à Internet, Http e HTML
Introdução à Internet, Http e HTML
 
ExtJS-4
ExtJS-4ExtJS-4
ExtJS-4
 
Jquery 2
Jquery 2Jquery 2
Jquery 2
 
Jquery
JqueryJquery
Jquery
 
Estimativas de Esforço - Engenharia de Software
Estimativas de Esforço - Engenharia de SoftwareEstimativas de Esforço - Engenharia de Software
Estimativas de Esforço - Engenharia de Software
 
Java web 6 JSP Expression Language Taglib parte 2
Java web 6 JSP Expression Language Taglib parte 2Java web 6 JSP Expression Language Taglib parte 2
Java web 6 JSP Expression Language Taglib parte 2
 
Validações no Ruby on Rails
Validações no Ruby on Rails Validações no Ruby on Rails
Validações no Ruby on Rails
 
Padrão Iterator
Padrão IteratorPadrão Iterator
Padrão Iterator
 
Padroes Template-Method (Método Gabarito)
Padroes Template-Method (Método Gabarito)Padroes Template-Method (Método Gabarito)
Padroes Template-Method (Método Gabarito)
 
Padrão Command
Padrão CommandPadrão Command
Padrão Command
 
Padrão Fachada
Padrão FachadaPadrão Fachada
Padrão Fachada
 
Padrão Adapter
Padrão AdapterPadrão Adapter
Padrão Adapter
 

PHP MySQL Módulo 3

  • 1. Módulo 3 PHP & MySQL Professor: Eduardo Mendes
  • 2. Professor Eduardo Mendes edumendes@gmail.com Agenda •  Usando Banco de Dados •  Trabalhando com MySQL •  Linguagem SQL •  MySQL e PHP Conexões •  Criação de Consultas •  Seleção de Bancos •  Campos e Result Set •  Formatando o Conteúdo
  • 3. Professor Eduardo Mendes edumendes@gmail.com Testando Configuração •  Iniciar o EasyPHP –  Iniciar  Programas  EasyPHP
  • 4. Professor Eduardo Mendes edumendes@gmail.com Testando Configuração •  Executar algum browser (navegador) –  http://localhost
  • 5. Professor Eduardo Mendes edumendes@gmail.com Testando Configuração •  Os arquivos serão salvos na pasta www do EasyPHP –  C:Arquivos de programasEasyPHP1-8www
  • 6. Professor Eduardo Mendes edumendes@gmail.com MySQL
  • 7. Professor Eduardo Mendes edumendes@gmail.com O programa mysql •  Iniciar EasyPHP •  C: •  cd Arquivos* •  cd Easy* •  cd mysql •  cd bin •  mysql –u root -p
  • 8. Professor Eduardo Mendes edumendes@gmail.com mysql
  • 9. Professor Eduardo Mendes edumendes@gmail.com Conceitos •  Linhas •  Registros •  Tabelas •  Campos •  Id
  • 10. Professor Eduardo Mendes edumendes@gmail.com Tabela típica de dados: Agenda Telefônica
  • 11. Professor Eduardo Mendes edumendes@gmail.com Cursos da FA7
  • 12. Professor Eduardo Mendes edumendes@gmail.com
  • 13. Professor Eduardo Mendes edumendes@gmail.com Criando um Banco de Dados CREATE DATABASE nomeDoBanco;
  • 14. Professor Eduardo Mendes edumendes@gmail.com Usando um BD específico USE nomeDoBanco;
  • 15. Professor Eduardo Mendes edumendes@gmail.com
  • 16. Professor Eduardo Mendes edumendes@gmail.com No MySQL CREATE DATABASE modulo3; USE modulo3; CREATE TABLE agendaTelefonica ( id INT PRIMARY KEY, primeiroNome VARCHAR(15), sobreNome VARCHAR (15), email VARCHAR(20), telefone VARCHAR(15) ); DESCRIBE agendaTelefonica;
  • 17. Professor Eduardo Mendes edumendes@gmail.com Inserindo Valores INSERT INTO agendaTelefonica VALUES( 0, ‘Eduardo', ‘Mendes', ‘eduardo@fa7.edu.br', '123567‘ );
  • 18. Professor Eduardo Mendes edumendes@gmail.com Recuperando os dados •  Eu quero visualizar todos os registro de uma tabela SELECT * FROM nomeDaTabela;
  • 19. Professor Eduardo Mendes edumendes@gmail.com No MySQL SELECT * FROM agendaTelefonica;
  • 20. Professor Eduardo Mendes edumendes@gmail.com O programa mysql •  Iniciar EasyPHP •  C: •  cd Arquivos* •  cd Easy* •  cd mysql •  cd bin •  mysql –u root -p
  • 21. Professor Eduardo Mendes edumendes@gmail.com Conectando-se a um banco de dados •  Na linha de comando –  Nos conectamos ao mysql através de usuário e senha: •  mysql –u root -p –  Para poder fazer consulta a um banco, informamos qual o banco através de: •  USE nomeDoBanco
  • 22. Professor Eduardo Mendes edumendes@gmail.com Conectando-se ao banco via PHP •  Usamos uma função –  mysql_connect() •  Esta função precisa de alguns pârametros •  Precisamos informar o servidor onde está localizado o banco de dados –  localhost •  Informamos o usuário, exemplo: –  root •  Informamos a senha do usuário: –  123456
  • 23. Professor Eduardo Mendes edumendes@gmail.com Juntando tudo mysql_connect("localhost", "root", ""); O servidorA função O usuário A senha Guardar o retorno da função em uma variável é opcional $conexao = mysql_connect("localhost", "root", "");
  • 24. Professor Eduardo Mendes edumendes@gmail.com Selecionando o banco de dados com PHP •  O “USE” da linha de comando: mysql_select_db(); •  Precisamos informar o nome o banco – agendaTelefonica •  É opcional informar uma conexão previamente obtida –  $conexao
  • 25. Professor Eduardo Mendes edumendes@gmail.com Juntando tudo mysql_select_db(“agendaTelefonica”); ou mysql_select_db(“agendaTelefonica", $conexao); A função O nome do banco A conexão
  • 26. Professor Eduardo Mendes edumendes@gmail.com Sucesso na conexão
  • 27. Professor Eduardo Mendes edumendes@gmail.com Erro na conexão
  • 28. Professor Eduardo Mendes edumendes@gmail.com conexao.php <h1>Conexão</h1> <? $conexao = mysql_pconnect("localhost", "root", ""); if ($conexao) { mysql_select_db("agendaTelefonica", $conexao); print "Conexão realizada com sucesso"; } else { print "Falha na conexão!"; } ?>
  • 29. Professor Eduardo Mendes edumendes@gmail.com O programa mysql •  Iniciar EasyPHP •  C: •  cd Arquivos* •  cd Easy* •  cd mysql •  cd bin •  mysql –u root -p
  • 30. Professor Eduardo Mendes edumendes@gmail.com Inserindo muitos dados •  Baixar o arquivo dados.txt –  http://www.fa7.edu.br/phpparainiciantes/modulo3/dados.zip •  Salvar o arquivo dados.txt na pasta: –  C:Arquivos de programasEasyPHP1-8mysqlbin –  Executar o comando no mysql –  LOAD DATA LOCAL INFILE “dados.txt” INTO TABLE agendaTelefonica •  SELECT * FROM agendaTelefonica
  • 31. Professor Eduardo Mendes edumendes@gmail.com Limitando o número de colunas •  Selecionar apenas o nome e o sobrenome de todas os registros da tabela SELECT primeironome,sobrenome FROM agendaTelefonica;
  • 32. Professor Eduardo Mendes edumendes@gmail.com Adicionando uma condição WHERE SELECT nome, sobrenome FROM agendaTelefonica WHERE nome=‘Eduardo’;
  • 33. Professor Eduardo Mendes edumendes@gmail.com WHERE e operadores de comparação •  WHERE nomeDoCampo = ‘xxxxx’; •  WHERE nomeDoCampo > XXXX; •  WHERE nomeDoCampo < ‘XXXX’; •  WHERE nomeDoCampo >= XXXX; •  WHERE nomeDoCampo <= ‘XXXX’;
  • 34. Professor Eduardo Mendes edumendes@gmail.com Exemplo •  Eu quero todos os registros da agendaTelefonica que começam ou com ‘A’, ou com ‘B’ ou com ‘C’ SELECT * FROM agendaTelefonica WHERE primeironome < ‘D’;
  • 35. Professor Eduardo Mendes edumendes@gmail.com MYSQL e PHP •  Para trabalhar com um banco –  Precisamos nos conectar ao banco –  Como? mysql_connect("localhost", "root", ""); –  Precisamos também selecionar o banco –  Como? mysql_select_db(“modulo3”);
  • 36. Professor Eduardo Mendes edumendes@gmail.com No MySQL •  Para fazer uma consulta a uma tabela no banco, fizemos: •  Deve existir uma formaa de fazer isto no PHP. Qual? SELECT primeironome FROM agendaTelefonica;
  • 37. Professor Eduardo Mendes edumendes@gmail.com PHP & MySQL •  Primeiro precisamos criar uma consulta em forma de String “SELECT nome FROM agendaTelefonica” •  Atribuir esta String a uma variável $sql = “SELECT nome FROM agendaTelefonica” •  Enviar esta consulta ao banco •  Guardar o resultado da consulta em outra variável
  • 38. Professor Eduardo Mendes edumendes@gmail.com PHP & MySQL •  Como enviar a consulta para o banco? •  Esta função precisa de 1 argumento: –  A consulta: “SELECT ...” mysql_query($sql);
  • 39. Professor Eduardo Mendes edumendes@gmail.com PHP & MySQL •  Guarde o resultado $resultado = mysql_query($sql); •  Percorra os resultados com mysql_fetch_assoc <? while ($linha = mysql_fetch_assoc($resultado)){ print $linha['nome'] .”<br/>”; } ?>
  • 40. agenda.php <?php mysql_connect("localhost", "root", ""); mysql_select_db("cursoweb"); $sql = "SELECT * FROM agendatelefonica”; $res = mysql_query($sql); ?> <html> <body> <h1>Agenda Telefonica</h1> <h2>Contatos</h2> <?php while($linha = mysql_fetch_array($res)) { ?> <li><?php print $linha['nome'] ?> - <?php print $linha['email'] ?></li> <? } ?> </body> </html> Professor Eduardo Mendes edumendes@gmail.com
  • 41. Professor Eduardo Mendes edumendes@gmail.com Uma agenda Simples
  • 42. Professor Eduardo Mendes edumendes@gmail.com agenda.php <h1>Agenda Telefônica</h1> <? $conexao = mysql_pconnect("localhost", "root", ""); mysql_select_db("modulo3", $conexao); $sql = "SELECT nome FROM agendaTelefonica"; $resultado = mysql_query($sql, $conexao); ?> <table> <tr> <th>Nome</th> </tr> <? while ($linha = mysql_fetch_assoc($resultado)){ ?> <tr> <td><?= $linha['nome'] ?></td> </tr> <? } ?> </table>
  • 43. Professor Eduardo Mendes edumendes@gmail.com agenda.php <h1>Agenda Telefônica</h1> <? $conexao = mysql_pconnect("localhost", "root", ""); mysql_select_db("modulo3", $conexao); $sql = "SELECT primeironome, sobrenome FROM agendaTelefonica"; $resultado = mysql_query($sql, $conexao); ?> <table> <tr> <th>Nome</th><th>Sobrenome</th> </tr> <? while ($linha = mysql_fetch_assoc($resultado)){ ?> <tr> <td><?= $linha['primeironome'] ?></td> <td><?= $linha[‘sobrenome'] ?></td> </tr> <? } ?> </table>
  • 44. Professor Eduardo Mendes edumendes@gmail.com Mais consultas •  Todos os registros da tabela que ‘a’, ‘b’, ‘c’, ‘d’
  • 45. Professor Eduardo Mendes edumendes@gmail.com Coringa  % •  Selecione todos os registros que começam com a letra ‘A’; SELECT * FROM agendaTelefonica WHERE primeironome LIKE ‘A%’;
  • 46. Professor Eduardo Mendes edumendes@gmail.com Coringa com limitação de colunas •  Todos os nome e sobrenomes da agendaTelefonica, que possuam emails terminados com ‘br’ SELECT nome, sobrenome FROM agendaTelefonica WHERE email LIKE ‘%br’;
  • 47. Professor Eduardo Mendes edumendes@gmail.com Múltiplas condições SELECT * FROM agendaTelefonica WHERE nome LIKE ‘J%’ AND sobrenome LIKE ‘%o%’;
  • 48. Professor Eduardo Mendes edumendes@gmail.com Inserindo Valores no MySQL INSERT INTO agendaTelefonica VALUES( 0, ‘Eduardo', ‘Mendes', ‘eduardo@fa7.edu.br', '123567‘ );
  • 49. Professor Eduardo Mendes edumendes@gmail.com Inserindo um valor via PHP
  • 50. Professor Eduardo Mendes edumendes@gmail.com Inserindo um valor via PHP <h1>Inserindo um valor</h1> <? $conexao = mysql_connect("localhost", "root", ""); mysql_select_db("modulo3", $conexao); $sql = "INSERT INTO agendaTelefonica VALUES (50, 'Lizbela', 'E o prisioneiro', 'lizbela@fa7.edu.br', '1234567')"; $resultado = mysql_query($sql, $conexao); if ($resultado) { print "<p>Valor inserido com sucesso!</p>"; } else { print "<p>Não foi possível inserir...</p>"; } ?>
  • 51. Professor Eduardo Mendes edumendes@gmail.com Recuperando o valor via PHP <h1>Recuperando um valor</h1> <? $conexao = mysql_connect("localhost", "root", ""); mysql_select_db("modulo3", $conexao); $sql = "SELECT * FROM agendaTelefonica WHERE id=50"; $resultado = mysql_query($sql, $conexao); if ($resultado) { while ($linha = mysql_fetch_assoc($resultado)) { ?> <p>O Nome inserido foi: <?= $linha['primeiroNome'] ?></p> <p>Telefone: <?= $linha['telefone'] ?></p> <? } } else { print "<p>Não foi possível recuperar o valor inserido...</p>"; } ?>
  • 52. Professor Eduardo Mendes edumendes@gmail.com Recuperando o valor via PHP
  • 53. Professor Eduardo Mendes edumendes@gmail.com Inserindo Valores a partir De Um Formulario
  • 54. Professor Eduardo Mendes edumendes@gmail.com Inserindo valores com formulário <h1>Inserindo valores com Formulario </h1> <form method="post" action="inserirForm.php"> <p>Primeiro Nome: <input name="nome" type="text" /></p> <p>Sobre-nome: <input name="sobrenome" type="text" /></p> <p>Email: <input name="email" type="text“/></p> <p>Telefone: <input name="telefone" type="text“/></p> <p><input type="submit" value="Inserir" /></p> </form>
  • 55. Professor Eduardo Mendes edumendes@gmail.com O action
  • 56. Professor Eduardo Mendes edumendes@gmail.com O action <h1>Inserindo um valor</h1> <? $nome = $_POST['nome']; $sobrenome = $_POST['sobrenome']; $telefone = $_POST['telefone']; $email = $_POST['email']; $conexao = mysql_connect("localhost", "root", ""); mysql_select_db("modulo3", $conexao); $sql = "INSERT INTO agendaTelefonica VALUES (NULL, '$nome', '$sobrenome', '$email', '$telefone')"; $resultado = mysql_query($sql, $conexao); if ($resultado) { print "<p>Valor inserido com sucesso!</p>"; } else { print "<p>Não foi possível inserir...</p>"; } ?>
  • 57. Professor Eduardo Mendes edumendes@gmail.com A agenda completa
  • 58. Professor Eduardo Mendes edumendes@gmail.com Procura por nome específico •  Como encontrar um único nome caso seja preciso?
  • 59. Professor Eduardo Mendes edumendes@gmail.com A solução  Caixa de pesquisa
  • 60. Professor Eduardo Mendes edumendes@gmail.com Altere o php <? $conexao = mysql_connect("localhost", "root", ""); mysql_select_db("modulo3", $conexao); $sql = "SELECT * FROM agendaTelefonica"; if (isset($_POST['nome'])) { $nome = $_POST['nome']; $sql = $sql . " WHERE nome LIKE ‘$nome%’ "; } $resultado = mysql_query($sql, $conexao); ?>
  • 61. Professor Eduardo Mendes edumendes@gmail.com O campo de texto antes da tabela <form method="post"> <p>Pesquisa: <input type="text" name="nome" /></p> </form>
  • 62. Professor Eduardo Mendes edumendes@gmail.com Alterando Dados - UPDATE •  Altere o sobrenome para ‘Oliveira’ onde o nome é igual ‘Eduardo’ UPDATE agendaTelefonica SET sobrenome=‘Oliveira’ WHERE nome = ‘Eduardo’;
  • 63. Professor Eduardo Mendes edumendes@gmail.com Excluindo linhas DELETE •  Delete da tabela agendaTelefonica o registro de todos os ‘Eduardo’ DELETE FROM agendaTelefonica WHERE nome = ‘Eduardo’;
  • 64. Professor Eduardo Mendes edumendes@gmail.com Banco de Dados da FA7 CREATE DATABASE fa7; USE DATABASE fa7;
  • 65. Professor Eduardo Mendes edumendes@gmail.com Professor •  Id •  Nome •  Titulação •  Idade •  Disciplina
  • 66. Professor Eduardo Mendes edumendes@gmail.com Tabela Professor DROP TABLE IF EXISTS professor; CREATE TABLE professor ( id INT PRIMARY KEY, nome VARCHAR(15), titulacao VARCHAR (15), idade INT, disciplina VARCHAR(30) );
  • 67. Professor Eduardo Mendes edumendes@gmail.com Inserindo dados Professor INSERT INTO professor VALUES ( 0, ‘Fláudio', 'Mestre', 15, ‘Cálculo' ); INSERT INTO professor VALUES ( 0, ‘Marum', 'Mestre', 10, ‘Sistemas de Informação' ); SELECT * FROM professor;
  • 68. Professor Eduardo Mendes edumendes@gmail.com E se eu quiser mais sobre Disciplina???? •  Carga Horaria •  Curso
  • 69. Professor Eduardo Mendes edumendes@gmail.com Disciplina •  Id •  Nome •  Carga Horária •  Curso
  • 70. Professor Eduardo Mendes edumendes@gmail.com Tabela Disciplina DROP TABLE IF EXISTS disciplina; CREATE TABLE disciplina ( id INT PRIMARY KEY, nome VARCHAR(30), cargaHoraria INT, curso VARCHAR(30) );
  • 71. Professor Eduardo Mendes edumendes@gmail.com Inserindo dados Disciplina INSERT INTO disciplina VALUES ( 0, ‘Cálculo', 80, ‘Sistemas de Informação’ ); INSERT INTO disciplina VALUES ( 0, ‘Sistemas de Informação', 80, ‘Sistemas de Informação’ ); SELECT * FROM disciplina;
  • 72. Professor Eduardo Mendes edumendes@gmail.com Relacionando Tabelas
  • 73. Professor Eduardo Mendes edumendes@gmail.com Modificando a estrura da Tabela ALTER TABLE professor MODIFY disciplina INT; •  Alterar os valores dos campos disciplina da tabela professor para que possa haver a correlação entre o campo disciplina da tabela professor e o campo id da tabela disciplina
  • 74. Professor Eduardo Mendes edumendes@gmail.com Executando um script no PhpMyAdmin •  O que são scripts? –  Instruções formais escritas com linguagens interpretadas –  Cada instrução de um script é executada sem a necessidade de se criar um arquivo executável
  • 75. Professor Eduardo Mendes edumendes@gmail.com Executando um script no PhpMyAdmin •  Um exemplo de script que pode ser salvo como um arquivo DROP TABLE IF EXISTS professor; CREATE TABLE professor ( id INT PRIMARY KEY, nome VARCHAR(15), titulacao VARCHAR (15), idade INT, disciplina VARCHAR(30) );
  • 76. Professor Eduardo Mendes edumendes@gmail.com Executando um script no PhpMyAdmin
  • 77. Professor Eduardo Mendes edumendes@gmail.com Executando os scripts para o banco de dados fa7 •  Baixe os arquivos
  • 78. Professor Eduardo Mendes edumendes@gmail.com Verifique o banco fa7 agora • SELECT * FROM curso; • SELECT * FROM disciplina; • SELECT * FROM professor;
  • 79. Professor Eduardo Mendes edumendes@gmail.com Combinando Tabelas SELECT * FROM professor, disciplina;
  • 80. Professor Eduardo Mendes edumendes@gmail.com JOIN
  • 81. Professor Eduardo Mendes edumendes@gmail.com Solução •  Precisamos colocar uma condição na nossa consulta SELECT * FROM professor, disciplina •  Para que haja o relacionamento entre as duas tabelas
  • 82. Professor Eduardo Mendes edumendes@gmail.com Impondo uma condição SELECT * FROM professor, disciplina WHERE professor.disciplina= disciplina.id;
  • 83. Professor Eduardo Mendes edumendes@gmail.com Dando um ‘apelido’ para Tabela SELECT * FROM professor p, disciplina d;
  • 84. Professor Eduardo Mendes edumendes@gmail.com Apelido == ALIAS SELECT p.nome, d.nome FROM professor p, disciplina d WHERE p.disciplina = d.id;
  • 85. Professor Eduardo Mendes edumendes@gmail.com Alias para campos SELECT p.nome as professor, d.nome as disciplina FROM professor p, disciplina d WHERE p.disciplina = d.id;
  • 86. Professor Eduardo Mendes edumendes@gmail.com Tabela curso
  • 87. Professor Eduardo Mendes edumendes@gmail.com Relacionando tabelas SELECT * FROM curso c, disciplina d WHERE d.curso = c.id;
  • 88. Professor Eduardo Mendes edumendes@gmail.com Qual o curso de cada professor? SELECT c.nome as curso, p.nome as professor FROM curso c, disciplina d, professor p WHERE p.disciplina=d.id AND d.curso=c.id;
  • 89. Professor Eduardo Mendes edumendes@gmail.com Qual o curso de um professor específico? SELECT c.nome as curso, p.nome as professor FROM curso c, disciplina d, professor p WHERE p.disciplina=d.id AND d.curso=c.id AND p.nome=‘Flaudio’;
  • 90. Professor Eduardo Mendes edumendes@gmail.com Selecionando todos os professores SELECT nome FROM professor;
  • 91. Professor Eduardo Mendes edumendes@gmail.com Selecionando todos os professores sem repetir nomes SELECT DISTINCT nome FROM professor;
  • 92. Professor Eduardo Mendes edumendes@gmail.com Quantos professores existem na tabela? SELECT COUNT(*) FROM professor;
  • 93. Professor Eduardo Mendes edumendes@gmail.com Quantos professores um curso específico possui? SELECT COUNT(DISTINCT p.nome) FROM professor p, disciplina d, curso c WHERE p.disciplina=d.id AND d.curso=c.id AND c.nome=‘CONTABILIDADE’;
  • 94. Professor Eduardo Mendes edumendes@gmail.com Quantos professores cada curso possui? SELECT COUNT(DISTINCT p.nome), c.nome FROM professor p, disciplina d, curso c WHERE p.disciplina=d.id AND d.curso=c.id GROUP BY c.nome;
  • 95. Professor Eduardo Mendes edumendes@gmail.com Consultas •  Selecione os professores e os ordene por ordem alfabética •  Selecione a quantidade de disciplinas do curso SISTEMAS DE INFORMACAO •  Selecione a quantidade de disciplinas de cada Curso •  Selecione a quantidade de disciplinas de cada professor
  • 96. Professor Eduardo Mendes edumendes@gmail.com Quantos professores cada curso possui? SELECT COUNT(DISTINCT d.nome), p.nome FROM professor p, disciplina d, curso c WHERE p.disciplina=d.id AND d.curso=c.id GROUP BY p.nome;
  • 97. Professor Eduardo Mendes edumendes@gmail.com Funções no PHP para recuperar resultados •  Cria um array associativo com a linha atual de um conjunto de resultados Id 0 primeiroNome Eduardo sobreNome Mendes email eduardo@fa7.edu.br telefone 123-4567
  • 98. Professor Eduardo Mendes edumendes@gmail.com Funções no PHP para recuperar resultados while ($linha = mysql_fetch_assoc($resultado)) { ?> <p>O Nome inserido foi: <?= $linha['primeiroNome'] ?></p> <p>Telefone: <?= $linha['telefone'] ?></p> <? }
  • 99. Professor Eduardo Mendes edumendes@gmail.com Funções no PHP para recuperar resultados •  Cria um array normal com a linha atual de um conjunto de resultados 0 0 1 Eduardo 2 Mendes 3 eduardo@fa7.edu.br 4 123-4567
  • 100. Professor Eduardo Mendes edumendes@gmail.com Funções no PHP para recuperar resultados while ($linha = mysql_fetch_row($resultado)) { ?> <p>O Nome inserido foi: <?= $linha[1] ?></p> <p>Telefone: <?= $linha[4] ?></p> <? } 0 0 1 Eduardo 2 Mendes 3 eduardo@fa7.edu.br 4 123-4567
  • 101. Professor Eduardo Mendes edumendes@gmail.com Funções no PHP para recuperar resultados •  Cria tanto o array associativo, quanto o array numérico Id 0 primeiroNome Eduardo sobreNome Mendes email eduardo@fa7.edu.br Telefone 123-4567 0 0 1 Eduardo 2 Mendes 3 eduardo@fa7.edu.br 4 123-4567
  • 102. Professor Eduardo Mendes edumendes@gmail.com Funções no PHP para recuperar resultados while ($linha = mysql_fetch_array($resultado)) { ?> <p>O Nome inserido foi: <?= $linha[1] ?></p> <p>Telefone: <?= $linha[‘telefone’] ?></p> <? } 0 0 1 Eduardo 2 Mendes 3 eduardo@fa7.edu.br 4 123-4567 Id 0 primeiroNome Eduardo sobreNome Mendes email eduardo@fa7.edu.br telefone 123-4567
  • 103. Professor Eduardo Mendes edumendes@gmail.com Percorrendo os resultados <table> <? while ($linha = mysql_fetch_row($resultado)){ ?> <tr> <? foreach ($linha as $valor) { print "<td>$valor</td>n"; } ?> </tr> <? } ?> </table>
  • 104. Professor Eduardo Mendes edumendes@gmail.com Percorrendo os resultados <table> <? while ($linha = mysql_fetch_assoc($resultado)){ ?> <tr> <? foreach ($linha as $valor) { print "<td>$valor</td>n"; } ?> </tr> <? } ?> </table>
  • 105. Professor Eduardo Mendes edumendes@gmail.com Percorrendo os resultados <table> <? while ($linha = mysql_fetch_array($resultado)){ ?> <tr> <? foreach ($linha as $valor) { print "<td>$valor</td>n"; } ?> </tr> <? } ?> </table>
  • 106. Professor Eduardo Mendes edumendes@gmail.com Algumas funções de Strings •  strtoupper –  Converte uma String para maiúsculas –  strtoupper(“abcd”)  ABCD •  strtolower –  Converte uma String para minúsculas –  strtolower(“XYWZ”)  xywz •  strlen –  Retorna o tamanho de uma String •  Mais funções para String: http://php.net/ strings
  • 107. Professor Eduardo Mendes edumendes@gmail.com Nossa lista de professores  listarProfessor.php
  • 108. Professor Eduardo Mendes edumendes@gmail.com Como apresentar os campos em maiúsculas?
  • 109. <? $con = mysql_pconnect(“localhost”, “root”,””); mysql_select_db(“jornada”, $con); $consulta = “SELECT p.*, d.nome as dnome FROM professor p, disciplina d WHERE p.disciplina=d.id”; $resultado = mysql_query($consulta, $con); Professor Eduardo Mendes edumendes@gmail.com
  • 111. <? while($linha = mysql_fetch_array($resultado)) { ?> <tr> <td> <a href=“editarProfessor.php?id=<?= $linha[‘id’] ?>”> <?= $linha[‘nome’] ?> </a> </td> <td><?= $linha[‘titulacao’] ?></td> <td><?= $linha[‘idade’] ?></td> <td><?= $linha[‘dnome’] ?></td> </tr> <? } ?> Professor Eduardo Mendes edumendes@gmail.com
  • 112. <? $con = mysql_pconnect(“localhost”,”root”,””); mysql_select_db(“jornada”, $con); $id = $_GET[‘id’]; $sql = “SELECT * FROM professor WHERE id=” . $id; $resultado = mysql_query($sql, $con); $professor = mysql_fetch_array($resultado); ?> Professor Eduardo Mendes edumendes@gmail.com
  • 113. <form method=“post” action=“alterar.php”> <input type=“hidden” name=“id” value=“<?= $professor[‘id’] ?>” /> Nome: <input type=“text” name=“nome” value=“<?= $professor[‘nome’] ?>” /> <br/> Idade: <input type=“text” name=“idade” value=“<?= $professor[‘idade’] ?>” /> <br/> Titulacao: <input type=“text” name=“titulacao” value=“<?= $professor[‘titulacao’] ?>” /> <br/> Professor Eduardo Mendes edumendes@gmail.com
  • 114. <? $con = mysql_pconnect(“localhost”, ”root”,””); mysql_select_db(“jornada”, $con); $id = $_POST[‘id’] ; $nome = $_POST[‘nome’] ; $titulacao = $_POST[‘titulacao’] ; $idade = $_POST[‘idade’] ; $sql = “UPDATE professor SET nome=‘$nome’, titulacao=‘$titulacao’,idade= $idade WHERE id = $id”; $r = mysql_query($sql, $con) or die(mysql_error()); Professor Eduardo Mendes edumendes@gmail.com
  • 115. Professor Eduardo Mendes edumendes@gmail.com Tornando os campos maiúsculos <table> <? while ($campo = mysql_fetch_field($resultado)){ print " <th>" . strtoupper($campo->name) ."</th>n"; } ?>
  • 116. Professor Eduardo Mendes edumendes@gmail.com Alterando o valor no BD com PHP
  • 117. Professor Eduardo Mendes edumendes@gmail.com Criando uma página para Alterar
  • 118. Professor Eduardo Mendes edumendes@gmail.com Isto é o queremos
  • 119. Professor Eduardo Mendes edumendes@gmail.com O que precisamos? •  Criar e executar uma consulta para recuperar a informações de um professor específico •  Criar e executar uma consulta para recuperar as informações de disciplinas •  Fazer com que os campos apresentem os valores do professor específico •  Fazer com o que campo disciplinas apresente os valores das disciplinas
  • 120. Professor Eduardo Mendes edumendes@gmail.com Realizando os 4 passos •  Criar e executar uma consulta para recuperar a informações de um professor específico $sql = "SELECT * FROM professor WHERE id=" . $_GET['id']; $resultado = mysql_query($sql, $conexao); $professor = mysql_fetch_assoc($resultado); http://localhost/aplicacao/editarProfessor.php?id=1
  • 121. Professor Eduardo Mendes edumendes@gmail.com Realizando os 4 passos •  Criar e executar uma consulta para recuperar as informações de disciplinas $sql = "SELECT id, nome FROM disciplina"; $disciplinas = mysql_query($sql, $conexao);
  • 122. Professor Eduardo Mendes edumendes@gmail.com Realizando os 4 passos •  Fazer com que os campos apresentem os valores do professor específico <input type="hidden" name="id" value="<?= $professor['id'] ?>" /> <p>Nome: <input type="text" name="nome" value="<?= $professor['nome'] ?>" /> </p>
  • 123. Professor Eduardo Mendes edumendes@gmail.com Realizando os 4 passos •  Fazer com o que campo disciplinas apresente os valores das disciplinas <select name="disciplina"> <? while($opcoes = mysql_fetch_assoc($disciplinas)) { ?> <option value="<?= $opcoes['id'] ?>"> <?= $opcoes['nome'] ?></option> <? } ?> </select>
  • 124. Professor Eduardo Mendes edumendes@gmail.com Exercícios •  Criar uma tabela chamada produto •  A tabela possui –  Id: int –  Nome: Varchar(50) –  Preco: int •  Crie uma tela para inserir produtos na tabela •  Crie uma tela para listar todos os produtos da tabela
  • 125. Professor Eduardo Mendes edumendes@gmail.com Logando em uma aplicação
  • 126. Professor Eduardo Mendes edumendes@gmail.com Quais as necessidades para esta tela?
  • 127. Professor Eduardo Mendes edumendes@gmail.com Uma tabela de usuários •  Id •  Nome •  Login •  Senha –  Quais as características de um login?
  • 128. Professor Eduardo Mendes edumendes@gmail.com Índices – login •  Chave primária –  Campo na tabela que não se repete –  Serve para identificar uma “tupla” de maneira única –  A chave primária pode ser identificada como um campo único ou como um conjunto de campos •  Índices únicos –  Determinados campos podem ter necessidades especiais –  Alguns campos não deveriam se repetir
  • 129. Professor Eduardo Mendes edumendes@gmail.com
  • 130. Professor Eduardo Mendes edumendes@gmail.com No PhpMyAdmin Teste para ver a mensagem de erro
  • 131. Professor Eduardo Mendes edumendes@gmail.com Quais os campos?
  • 132. Professor Eduardo Mendes edumendes@gmail.com Login.php <h1>Login</h1> <p>Informe o nome de usuário e senha</p> <form action="confere.php" method="post"> <p>Nome: <input name="login" type="text" /></p> <p>Senha: <input name="senha" type="password" /></p> <p><input type="submit" /></p> </form>
  • 133. Professor Eduardo Mendes edumendes@gmail.com
  • 134. Professor Eduardo Mendes edumendes@gmail.com A consulta $login = $_POST [‘login’]; $senha = $_POST[‘senha’]; $sql = “SELECT * FROM usuario WHERE login=‘$login’ ”; $resultado = mysql_query($sql, $conexao); $linha = mysql_fetch_assoc($resultado); if($linha[‘senha’] == $senha) {
  • 135. Professor Eduardo Mendes edumendes@gmail.com Confere.php <? $login = $_POST['login']; $senha = $_POST['senha']; $conexao = mysql_pconnect("localhost", "root", ""); mysql_select_db("fa7", $conexao); $sql = "SELECT * FROM usuario WHERE login='$login'"; $resultado = mysql_query($sql); $linha = mysql_fetch_assoc($resultado); if ($linha['senha'] == $senha) { print "<p>Usuário logado com sucesso!</p>"; } else { print "<p>Você não tem permissão para acessar esta página!</p>"; } ?>
  • 136. Professor Eduardo Mendes edumendes@gmail.com
  • 137. Professor Eduardo Mendes edumendes@gmail.com listarCurso.php <h1>Listar Cursos</h1> <? $conn = mysql_connect("localhost", "root", ""); mysql_select_db("fa7", $conn); $sql = "SELECT id, nome FROM curso"; $result = mysql_query($sql, $conn); ?> <table> <tr> <th>ID</th> <th>Nome</th> </tr> <? while ($row = mysql_fetch_assoc($result)){ ?> <tr> <td><?= $row['id'] ?></td> <td><?= $row['nome'] ?></td> </tr> <? } ?> </table>
  • 138. Professor Eduardo Mendes edumendes@gmail.com Criar um link para editarCurso •  Como poderíamos criar um link para editar o curso? •  Que link seria esse?
  • 139. Professor Eduardo Mendes edumendes@gmail.com O link •  Destino –  editarCurso.php •  Informando o curso a ser editado –  editarCurso.php?id=1 •  O link <a href='editarCurso.php?id=<?= $row['id'] ?>'> <?= $row['nome'] ?> </a>
  • 140. Professor Eduardo Mendes edumendes@gmail.com Adicionando o link <tr> <td><?= $row['id'] ?></td> <td> <a href='editarCurso.php?id=<?= $row['id'] ?>'> <?= $row['nome'] ?> </a> </td> </tr>
  • 141. Professor Eduardo Mendes edumendes@gmail.com O editarCurso.php
  • 142. Professor Eduardo Mendes edumendes@gmail.com editarCurso.php <h1>Editar Cursos</h1> <? $id = $_GET['id']; $conn = mysql_connect("localhost", "root", ""); mysql_select_db("fa7", $conn); $sql = "SELECT * FROM curso where id=$id"; $result = mysql_query($sql, $conn); $row = mysql_fetch_assoc($result); ?>
  • 143. Professor Eduardo Mendes edumendes@gmail.com editarCurso.php <form action="alterarCurso.php“ method=“post”> <p>Id: <input type="text" name="id“ readonly=“true” value="<?= $row['id'] ?>"/></p> <p>Nome: <input type="text" name="nome" value="<?= $row['nome'] ?>"/></p> <p>Duracao: <input type="text" name="duracao“ value="<?= $row['duracao'] ?>"/></p> <p>MEC: <input type="text" name="MEC“ value="<?= $row['MEC'] ?>"/></p> <input type="button" onclick="javascript:history.go(-1);" value="Voltar"/> <input type="submit" value="Alterar"/> <a href="excluirCurso.php?id=<?= $row['id'] ?>"> Excluir Curso</a> </form>
  • 144. Professor Eduardo Mendes edumendes@gmail.com alterarCurso.php
  • 145. Professor Eduardo Mendes edumendes@gmail.com alterarCurso.php <? $conn = mysql_connect("localhost", "root", ""); mysql_select_db("fa7", $conn); $nome = $_POST[‘nome’]; $duracao = $_POST[‘duracao’]; $MEC = $_POST[‘MEC’]; $id = $_POST[‘id’]; $sql = "UPDATE curso SET nome='$nome', duracao='$duracao', MEC='$MEC' WHERE id=$id"; $result = mysql_query($sql, $conn); if($result) { print "<p>Curso alterado com sucesso!</p>"; } else { print "<p>Alteração não realizada!</p>"; } ?> <a href="listarCurso.php"><p>Listar Cursos</p></a>
  • 146. Professor Eduardo Mendes edumendes@gmail.com <? $id = $_GET[‘id’]; $conn = mysql_connect("localhost", "root", ""); mysql_select_db("fa7", $conn); $sql = "DELETE FROM curso WHERE id=$id"; $result = mysql_query($sql, $conn); if($result) { print "<h1>Curso excluído com sucesso!</h1>"; } else { print "<h1>Não foi possível excluir o curso!</h1>"; } ?> <a href="listarCurso.php"><h4>Listar Cursos</h4></a>
  • 147. Professor Eduardo Mendes edumendes@gmail.com O condicional ternário $acao = ([condição]) ? “agir” : “parar” ; true false
  • 148. Professor Eduardo Mendes edumendes@gmail.com Nosso fluxo
  • 149. Professor Eduardo Mendes edumendes@gmail.com Novo Fluxo
  • 150. Professor Eduardo Mendes edumendes@gmail.com Um novo fluxo
  • 151. Professor Eduardo Mendes edumendes@gmail.com Um novo fluxo
  • 152. Professor Eduardo Mendes edumendes@gmail.com Criando um fluxo de decisão <? $mensagem = “”; $conn = mysql_connect("localhost", "root", ""); mysql_select_db("fa7", $conn); if (isset($_POST['acao']) || isset($_GET['acao'])) { $acao = (isset($_POST['acao'])) ? $_POST['acao'] : $_GET['acao'] ; if ($acao == "alterar") { //comandos para alterar } else if ($acao == "excluir") { //comandos para excluir } else if ($acao == "inserir") { //comandos para inserir } else if ($acao == "buscar") { //comandos para buscar } }
  • 153. Professor Eduardo Mendes edumendes@gmail.com Adicionando o campo hidden ao editarCurso.php <form action="listarCurso.php" method="post"> <input type="hidden" name="acao" value="alterar" /> <p>Id: <input type="text" readonly="true" name="id" value="<?= $row['id'] ?>"/> </p> <p>Nome: <input type="text" name="nome" value="<?= $row['nome'] ?>"/></p>
  • 154. Professor Eduardo Mendes edumendes@gmail.com O Alterar if ($acao == "alterar") { $nome = $_POST['nome']; $duracao = $_POST['duracao']; $MEC = $_POST['MEC']; $id = $_POST['id']; $sql = "UPDATE curso SET nome='$nome', duracao='$duracao', MEC='$MEC' WHERE id=$id"; $result = mysql_query($sql, $conn); if($result) { $mensagem = "Curso alterado com sucesso!"; } else { $mensagem = "Alteração não realizada!"; } } els...
  • 155. Professor Eduardo Mendes edumendes@gmail.com O excluir } else if ($acao == "excluir") { $id = $_GET['id']; $sql = "DELETE FROM curso WHERE id=$id"; $result = mysql_query($sql, $conn); if($result) { $mensagem = "Curso Excluído com sucesso!"; } else { $mensagem = "A exclusão não pode ser realizada!"; } } else ...
  • 156. Professor Eduardo Mendes edumendes@gmail.com Alterando o botão de exclusão .... <input type="button" onclick="javascript:history.go(-1);" value="Voltar"/> <input type="submit" value="Alterar"/> <a href="listarCurso.php?acao=excluir&id=<?= $row['id'] ?>"> Excluir Curso</a> </form>
  • 157. Professor Eduardo Mendes edumendes@gmail.com O inserir } else if ($acao == "inserir") { $nome = $_POST['nome']; $duracao = $_POST['duracao']; $MEC = $_POST['MEC']; $sql = "INSERT INTO curso VALUES(NULL, '$nome', '$duracao', '$MEC')"; $result = mysql_query($sql, $conn); if($result) { $mensagem = "Curso inserido com sucesso!"; } else { $mensagem = "O curso não pode ser incluso!"; } } els...
  • 158. Professor Eduardo Mendes edumendes@gmail.com O que já temos
  • 159. Professor Eduardo Mendes edumendes@gmail.com O que precisaremos fazer? Este botão direciona o navegador para a página de editar/inserir
  • 160. Professor Eduardo Mendes edumendes@gmail.com <tr> <td><?= $row['id'] ?></td> <td> <a href='editarCurso.php?id=<?= $row['id'] ?>'> <?= $row['nome'] ?> </a> </td> </tr> </table> <p> <input type="button" value="Inserir Novo Curso" onClick="javascript: location.href='editarCurso.php';" /> </p> </div> Adicionando o botão
  • 161. Professor Eduardo Mendes edumendes@gmail.com O que precisamos fazer? •  Determinar se esta página vai alterar ou criar um novo curso •  Como? –  Pela forma como foi acessada
  • 162. Professor Eduardo Mendes edumendes@gmail.com As 2 maneiras de acessar a página de Edição
  • 163. Professor Eduardo Mendes edumendes@gmail.com O que precisamos fazer? •  Precisamos criar uma variável para mostrar qual ação deve ser realizada –  $acao –  Inicialmente ela vai possuir o valor “inserir” –  Caso a ação seja alterar, mudamos para o valor “alterar”
  • 164. Professor Eduardo Mendes edumendes@gmail.com O novo editarCurso.php <h1>Editar Cursos</h1> <? $acao = "inserir"; $id = ""; $nome = ""; $duracao = ""; $MEC = ""; if (isset($_GET['id'])) { $acao = "alterar"; $id = $_GET['id']; $conn = mysql_connect("localhost", "root", ""); mysql_select_db("fa7", $conn); $sql = "SELECT * FROM curso where id=$id"; $result = mysql_query($sql, $conn); $row = mysql_fetch_assoc($result); $nome = $row['nome']; $duracao = $row['duracao']; $MEC = $row['MEC']; }
  • 165. Professor Eduardo Mendes edumendes@gmail.com O novo editarCurso.php <form action=“listarCurso.php“ method=“post”> <input type="hidden" name="acao" value="<?= $acao ?>" /> <p>Id: <input type="text" name="id“ readonly=“true” value="<?= $id ?>"/></p> <p>Nome: <input type="text" name="nome" value="<?= $nome ?>"/></p> <p>Duracao: <input type="text" name="duracao“ value="<?= $duracao ?>"/></p> <p>MEC: <input type="text" name="MEC“ value="<?= $MEC ?>"/></p> <input type="button" onclick="javascript:history.go(-1);" value="Voltar"/>
  • 166. Professor Eduardo Mendes edumendes@gmail.com A ação de alterar no listarCurso.php } else if ($acao == "inserir") { $nome = $_POST['nome']; $duracao = $_POST['duracao']; $MEC = $_POST['MEC']; $sql = "INSERT INTO curso VALUES(NULL, '$nome', '$duracao', '$MEC')"; $result = mysql_query($sql, $conn); if($result) { $mensagem = "Curso inserido com sucesso!"; } else { $mensagem = "O curso não pode ser incluso<strong></strong>!"; } } el....
  • 167. Professor Eduardo Mendes edumendes@gmail.com CRUD COMPLETO!!!
  • 168. Professor Eduardo Mendes edumendes@gmail.com O que foi visto? •  Introdução Banco de Dados –  Linhas –  Tabelas –  Colunas –  Registros –  Chave Primária –  Chave Estrangeira –  Relacionamento entre tabelas –  Índices •  MySQL –  O cliente mysql.exe •  Conexão via linha de comando –  PhpMyAdmin •  Linguagem SQL –  Linguagem de Modelagem de dados •  CREATE, USE, ALTER, LOAD DATA •  Conectando o MySQL com funções PHP –  mysql_connect(), mysql_pconnect(), mysql_select_db(), –  Consultas –  Linguagem de Consulta •  SELECT, UPDATE, DELETE, INSERT •  WHERE, AND, OR, ORDER BY, LIKE, DISTINCT, COUNT, GROUP BY •  mysql_query(), mysql_fetch_assoc(), mysql_fetch_array(), mysql_row(), mysql_fetch_field() •  Conjunto de Resultados •  Formatando o conteúdo –  Criação de CRUD
  • 169. Professor Eduardo Mendes edumendes@gmail.com Obrigado!