SlideShare uma empresa Scribd logo
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

Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraBanco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Natanael Simões
 
Aula 01 introdução a linguagem pascal
Aula 01   introdução a linguagem pascalAula 01   introdução a linguagem pascal
Aula 01 introdução a linguagem pascal
Tácito Graça
 
Introdução ao MySQL
Introdução ao MySQLIntrodução ao MySQL
Introdução ao MySQL
Anderson Sanches
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
Gabriel Vinicios Silva Maganha
 
Introdução à Lógica de Programação
Introdução à Lógica de ProgramaçãoIntrodução à Lógica de Programação
Introdução à Lógica de Programação
André Agostinho
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
Daniel Brandão
 
Linguagem PHP
Linguagem PHPLinguagem PHP
Linguagem PHP
guest9c455546
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
Emerson Macedo
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para Web
Daniel Brandão
 
Algoritmo Shell Sort
Algoritmo Shell SortAlgoritmo Shell Sort
Algoritmo Shell Sort
Gabriel Albuquerque
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
Carlos Eduardo Kadu
 
Barbeiro Sonolento
Barbeiro SonolentoBarbeiro Sonolento
Barbeiro Sonolento
Thiago Marinho
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
Fabrício Lopes Sanchez
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
Natanael Fonseca
 
Folha de estilo css
Folha de estilo   cssFolha de estilo   css
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
Elaine Cecília Gatto
 
Firewall
FirewallFirewall
Firewall
Fernando Chuva
 
Aula03 - JavaScript
Aula03 - JavaScriptAula03 - JavaScript
Aula03 - JavaScript
Jorge Ávila Miranda
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
Mario Jorge Pereira
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
Daniel Brandão
 

Mais procurados (20)

Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraBanco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
 
Aula 01 introdução a linguagem pascal
Aula 01   introdução a linguagem pascalAula 01   introdução a linguagem pascal
Aula 01 introdução a linguagem pascal
 
Introdução ao MySQL
Introdução ao MySQLIntrodução ao MySQL
Introdução ao MySQL
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
 
Introdução à Lógica de Programação
Introdução à Lógica de ProgramaçãoIntrodução à Lógica de Programação
Introdução à Lógica de Programação
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
Linguagem PHP
Linguagem PHPLinguagem PHP
Linguagem PHP
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para Web
 
Algoritmo Shell Sort
Algoritmo Shell SortAlgoritmo Shell Sort
Algoritmo Shell Sort
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
Barbeiro Sonolento
Barbeiro SonolentoBarbeiro Sonolento
Barbeiro Sonolento
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
 
Folha de estilo css
Folha de estilo   cssFolha de estilo   css
Folha de estilo css
 
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
 
Firewall
FirewallFirewall
Firewall
 
Aula03 - JavaScript
Aula03 - JavaScriptAula03 - JavaScript
Aula03 - JavaScript
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao 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 zero
Fred 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çado
Luiz Junior
 
PHP e banco de dados
PHP e banco de dadosPHP e banco de dados
PHP e banco de dados
Alexandre de Oliveira
 
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
 
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
Norivan 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 Jenkins
Gilmar Pupo
 
Aula3
Aula3Aula3
Aula3
softeam
 
Unid i b-apostila
Unid i b-apostilaUnid i b-apostila
Unid i b-apostila
pintoemmanuel
 
Desfrutando os Componentes do Zend Framework
Desfrutando os Componentes do Zend FrameworkDesfrutando os Componentes do Zend Framework
Desfrutando os Componentes do Zend Framework
Fernando Geraldo Mantoan
 
Php Para Iniciantes
Php Para IniciantesPhp Para Iniciantes
Php Para Iniciantes
Marcio Albuquerque
 
Advanced SQL
Advanced SQLAdvanced SQL
Advanced SQL
COTIC-PROEG (UFPA)
 
"Streamizando" com sucesso
"Streamizando" com sucesso"Streamizando" com sucesso
"Streamizando" com sucesso
Bruno 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ário
Arthur Emanuel
 
Aprender PHP e mySQL (UFCD0155)
Aprender PHP e mySQL (UFCD0155)Aprender PHP e mySQL (UFCD0155)
Aprender PHP e mySQL (UFCD0155)
Afonso Gomes
 
Turing seminar-2012
Turing seminar-2012Turing seminar-2012
Turing seminar-2012
Ruy De Queiroz
 
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
Rui 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 triggers
Daniel Maia
 
Desenvolvimento web com python e web2py
Desenvolvimento web com python e web2pyDesenvolvimento web com python e web2py
Desenvolvimento web com python e web2py
Relsi Maron
 
Desenvolvimento web com python e web2py
Desenvolvimento web com python e web2pyDesenvolvimento web com python e web2py
Desenvolvimento web com python e web2py
Relsi Maron
 
Treinamento de SQL Básico
Treinamento de SQL BásicoTreinamento de SQL Básico
Treinamento de SQL Básico
Igor Alves
 

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)
 
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
 
Treinamento de SQL Básico
Treinamento de SQL BásicoTreinamento de SQL Básico
Treinamento de SQL Básico
 

Semelhante a PHP e MySQL para iniciantes

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
Jorge Luís Gregório
 
Prog web 05-php-mysql
Prog web 05-php-mysqlProg web 05-php-mysql
Prog web 05-php-mysql
Regis Magalhães
 
Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4
Carlos Santos
 
Python 04
Python 04Python 04
Python 04
Bruno Catão
 
Palestra PHPSP+Locaweb 2014 - PDO
Palestra PHPSP+Locaweb 2014 - PDOPalestra PHPSP+Locaweb 2014 - PDO
Palestra PHPSP+Locaweb 2014 - PDO
Rodrigo Wanderley de Melo Cardoso
 
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
Dalton Martins
 
LabMM4 (T16 - 12/13) - PHP + MySQL
LabMM4 (T16 - 12/13) - PHP + MySQLLabMM4 (T16 - 12/13) - PHP + MySQL
LabMM4 (T16 - 12/13) - PHP + MySQL
Carlos Santos
 
Aula 12 Relatório - Tabelas
Aula 12   Relatório - TabelasAula 12   Relatório - Tabelas
Aula 12 Relatório - Tabelas
Dalton Martins
 
DELPHI & MySQL - September 2004
DELPHI & MySQL - September 2004DELPHI & MySQL - September 2004
DELPHI & MySQL - September 2004
Michel Alves
 
Otimização e Escalabilidade
Otimização e EscalabilidadeOtimização e Escalabilidade
Otimização e Escalabilidade
metzen
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day Workshop
Diego Sana
 
Java 16 Jdbc
Java 16 JdbcJava 16 Jdbc
Java 16 Jdbc
Regis Magalhães
 
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
Emiliano Barbosa
 
2006 - ADONET.ppt
2006 - ADONET.ppt2006 - ADONET.ppt
2006 - ADONET.ppt
Ricardo Guerra Freitas
 
Implementação de
Implementação de Implementação de
Implementação de
Rômulo Jales
 
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
Jeison 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 Relacionadas
CJR, UnB
 
Banco de dadados MySQL com PHP
Banco de dadados MySQL com PHPBanco de dadados MySQL com PHP
Banco de dadados MySQL com PHP
Leonardo Soares
 
Crud
CrudCrud
Desenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a DadosDesenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a Dados
Vitor Silva
 

Semelhante a PHP e MySQL para iniciantes (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
 
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
 
Desenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a DadosDesenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a Dados
 

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 Objetos
Eduardo Mendes
 
AngularJS - Rotas
AngularJS - RotasAngularJS - Rotas
AngularJS - Rotas
Eduardo Mendes
 
Angular JS - Fundamentos
Angular JS - FundamentosAngular JS - Fundamentos
Angular JS - Fundamentos
Eduardo Mendes
 
Singleton - Padrão de Projeto
Singleton - Padrão de ProjetoSingleton - Padrão de Projeto
Singleton - Padrão de Projeto
Eduardo Mendes
 
Layout Fluido
Layout FluidoLayout Fluido
Layout Fluido
Eduardo Mendes
 
Web Design Responsivo
Web Design ResponsivoWeb Design Responsivo
Web Design Responsivo
Eduardo Mendes
 
Html - Aula 4
Html - Aula 4Html - Aula 4
Html - Aula 4
Eduardo Mendes
 
Html - Aula 3
Html - Aula 3Html - Aula 3
Html - Aula 3
Eduardo Mendes
 
Introdução à Internet, Http e HTML
Introdução à Internet, Http e HTMLIntrodução à Internet, Http e HTML
Introdução à Internet, Http e HTML
Eduardo Mendes
 
ExtJS-4
ExtJS-4ExtJS-4
Jquery 2
Jquery 2Jquery 2
Jquery 2
Eduardo Mendes
 
Jquery
JqueryJquery
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
Eduardo 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 2
Eduardo 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
 
Padrão Iterator
Padrão IteratorPadrão Iterator
Padrão Iterator
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
 
Padrão Command
Padrão CommandPadrão Command
Padrão Command
Eduardo Mendes
 
Padrão Fachada
Padrão FachadaPadrão Fachada
Padrão Fachada
Eduardo Mendes
 
Padrão Adapter
Padrão AdapterPadrão Adapter
Padrão Adapter
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 e MySQL para iniciantes

  • 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!