Upload
eduardo-mendes-de-oliveira
View
8.965
Download
4
Embed Size (px)
DESCRIPTION
Exemplos básicos de utilização do MySQL e do PHP para iniciantes. Acesso a banco, consultas no banco, exemplos de funções básicas do php para mysql.
Citation preview
Professor Eduardo Mendes [email protected]
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 [email protected]
Testando Configuração
• Iniciar o EasyPHP – Iniciar Programas EasyPHP
Professor Eduardo Mendes [email protected]
Testando Configuração
• Executar algum browser (navegador) – http://localhost
Professor Eduardo Mendes [email protected]
Testando Configuração
• Os arquivos serão salvos na pasta www do EasyPHP – C:\Arquivos de programas\EasyPHP1-8\www
Professor Eduardo Mendes [email protected]
O programa mysql
• Iniciar EasyPHP • C: • cd Arquivos* • cd Easy* • cd mysql • cd bin • mysql –u root -p
Professor Eduardo Mendes [email protected]
Professor Eduardo Mendes [email protected]
Professor Eduardo Mendes [email protected]
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 [email protected]
Inserindo Valores
INSERT INTO agendaTelefonica VALUES( 0, ‘Eduardo', ‘Mendes', ‘[email protected]', '123567‘
);
Professor Eduardo Mendes [email protected]
Recuperando os dados
• Eu quero visualizar todos os registro de uma tabela
SELECT * FROM nomeDaTabela;
Professor Eduardo Mendes [email protected]
O programa mysql
• Iniciar EasyPHP • C: • cd Arquivos* • cd Easy* • cd mysql • cd bin • mysql –u root -p
Professor Eduardo Mendes [email protected]
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 [email protected]
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 [email protected]
Juntando tudo
mysql_connect("localhost", "root", "");
O servidor A 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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
O programa mysql
• Iniciar EasyPHP • C: • cd Arquivos* • cd Easy* • cd mysql • cd bin • mysql –u root -p
Professor Eduardo Mendes [email protected]
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 programas\EasyPHP1-8\mysql\bin
– Executar o comando no mysql – LOAD DATA LOCAL INFILE “dados.txt” INTO
TABLE agendaTelefonica • SELECT * FROM agendaTelefonica
Professor Eduardo Mendes [email protected]
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 [email protected]
Adicionando uma condição WHERE
SELECT nome, sobrenome FROM agendaTelefonica WHERE nome=‘Eduardo’;
Professor Eduardo Mendes [email protected]
WHERE e operadores de comparação • WHERE nomeDoCampo = ‘xxxxx’;
• WHERE nomeDoCampo > XXXX;
• WHERE nomeDoCampo < ‘XXXX’;
• WHERE nomeDoCampo >= XXXX;
• WHERE nomeDoCampo <= ‘XXXX’;
Professor Eduardo Mendes [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
Professor Eduardo Mendes [email protected]
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 [email protected]
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 [email protected]
Mais consultas
• Todos os registros da tabela que ‘a’, ‘b’, ‘c’, ‘d’
Professor Eduardo Mendes [email protected]
Coringa % • Selecione todos os registros que começam
com a letra ‘A’;
SELECT * FROM agendaTelefonica WHERE primeironome LIKE ‘A%’;
Professor Eduardo Mendes [email protected]
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 [email protected]
Múltiplas condições
SELECT * FROM agendaTelefonica WHERE nome LIKE ‘J%’ AND sobrenome LIKE ‘%o%’;
Professor Eduardo Mendes [email protected]
Inserindo Valores no MySQL
INSERT INTO agendaTelefonica VALUES( 0, ‘Eduardo', ‘Mendes', ‘[email protected]', '123567‘
);
Professor Eduardo Mendes [email protected]
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', '[email protected]', '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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
Procura por nome específico
• Como encontrar um único nome caso seja preciso?
Professor Eduardo Mendes [email protected]
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 [email protected]
O campo de texto antes da tabela
<form method="post"> <p>Pesquisa: <input type="text" name="nome" /></p>
</form>
Professor Eduardo Mendes [email protected]
Alterando Dados - UPDATE • Altere o sobrenome para ‘Oliveira’ onde o
nome é igual ‘Eduardo’
UPDATE agendaTelefonica SET sobrenome=‘Oliveira’ WHERE nome = ‘Eduardo’;
Professor Eduardo Mendes [email protected]
Excluindo linhas DELETE • Delete da tabela agendaTelefonica o
registro de todos os ‘Eduardo’
DELETE FROM agendaTelefonica WHERE nome = ‘Eduardo’;
Professor Eduardo Mendes [email protected]
Banco de Dados da FA7
CREATE DATABASE fa7; USE DATABASE fa7;
Professor Eduardo Mendes [email protected]
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 [email protected]
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 [email protected]
E se eu quiser mais sobre Disciplina????
• Carga Horaria • Curso
Professor Eduardo Mendes [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
Executando os scripts para o banco de dados fa7
• Baixe os arquivos
Professor Eduardo Mendes [email protected]
Verifique o banco fa7 agora
• SELECT * FROM curso;
• SELECT * FROM disciplina;
• SELECT * FROM professor;
Professor Eduardo Mendes [email protected]
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 [email protected]
Impondo uma condição
SELECT * FROM professor, disciplina WHERE professor.disciplina= disciplina.id;
Professor Eduardo Mendes [email protected]
Dando um ‘apelido’ para Tabela
SELECT * FROM professor p, disciplina d;
Professor Eduardo Mendes [email protected]
Apelido == ALIAS
SELECT p.nome, d.nome FROM professor p, disciplina d WHERE p.disciplina = d.id;
Professor Eduardo Mendes [email protected]
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 [email protected]
Relacionando tabelas
SELECT * FROM curso c, disciplina d WHERE d.curso = c.id;
Professor Eduardo Mendes [email protected]
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 [email protected]
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 [email protected]
Selecionando todos os professores
SELECT nome FROM professor;
Professor Eduardo Mendes [email protected]
Selecionando todos os professores sem repetir nomes
SELECT DISTINCT nome FROM professor;
Professor Eduardo Mendes [email protected]
Quantos professores existem na tabela?
SELECT COUNT(*) FROM professor;
Professor Eduardo Mendes [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
telefone 123-4567
Professor Eduardo Mendes [email protected]
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 [email protected]
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
4 123-4567
Professor Eduardo Mendes [email protected]
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
4 123-4567
Professor Eduardo Mendes [email protected]
Funções no PHP para recuperar resultados
• Cria tanto o array associativo, quanto o array numérico
Id 0
primeiroNome Eduardo
sobreNome Mendes
email [email protected]
Telefone 123-4567
0 0
1 Eduardo
2 Mendes
4 123-4567
Professor Eduardo Mendes [email protected]
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
4 123-4567
Id 0
primeiroNome Eduardo
sobreNome Mendes
email [email protected]
telefone 123-4567
Professor Eduardo Mendes [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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
<? $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 [email protected]
?> <h1>Professores</h1> <table border=“1”> <tr> <td>Nome</td>
<td>Titulação</td> <td>Idade</td> <td>Disciplina</td> </tr>
Professor Eduardo Mendes [email protected]
<? 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> <? } ?> </table>
Professor Eduardo Mendes [email protected]
<? $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 [email protected]
<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/> <input type=“submit” value=“Editar Professor”/> </form>
Professor Eduardo Mendes [email protected]
<? $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()); header(“location: professor.php”); ?>
Professor Eduardo Mendes [email protected]
Professor Eduardo Mendes [email protected]
Tornando os campos maiúsculos
<table> <? while ($campo = mysql_fetch_field($resultado)){
print " <th>" . strtoupper($campo->name) ."</th>\n"; } ?>
Professor Eduardo Mendes [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
Uma tabela de usuários
• Id • Nome • Login • Senha
– Quais as características de um login?
Professor Eduardo Mendes [email protected]
Í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 [email protected]
Professor Eduardo Mendes [email protected]
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 [email protected]
Professor Eduardo Mendes [email protected]
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 [email protected]
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 [email protected]
Professor Eduardo Mendes [email protected]
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 [email protected]
Criar um link para editarCurso
• Como poderíamos criar um link para editar o curso?
• Que link seria esse?
Professor Eduardo Mendes [email protected]
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 [email protected]
Adicionando o link
<tr> <td><?= $row['id'] ?></td> <td> <a href='editarCurso.php?id=<?= $row['id'] ?>'> <?= $row['nome'] ?> </a> </td> </tr>
Professor Eduardo Mendes [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
<? $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 [email protected]
O condicional ternário
$acao = ([condição]) ? “agir” : “parar” ;
true
false
Professor Eduardo Mendes [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
O que precisaremos fazer?
Este botão direciona o navegador para a página de editar/inserir
Professor Eduardo Mendes [email protected]
<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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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