PROFESSORA VERONICE DE FREITAS
Graduação: Tecnologia em Processamento de Dados (UNOPAR)
Especialização: Análise e Desenvolvimento de Sistemas (UNIFIL)
Mestrado: Ciência da Computação(UFRGS)
DESENVOLVIMENTO DEAPLICAÇÃO WEB
Aula 3
PHP / MySQL
DESENVOLVIMENTO DE APLICAÇÃO WEB
OBJETIVOS: Estudo da conceituação para o desenvolvimento de programas destinados àInternet e ao Comércio Eletrônico.
ESTRUTURA
Php / MySQL– Insert– Update– Delete
AdaptWeb– Ambiente (Aluno)– Ambiente (professor)
Estrutura Exemplo - SITEMaterial de Apoio
INCLUDES
Include cabecalho.php
<head><meta http‐equiv="Content‐Type" content="text/html;
charset=utf‐8" />
<title>Exemplos SQL</title>
<link rel="stylesheet" type="text/css� href = "css/geral.css�media="print" />
<head>
Include configuracoes.php
<?php// ==== banco de dados ==== $tipo = 'mysql';$hostname = 'localhost'; $usuario = 'root';$senha = �unopar1234'; $db = 'comercioweb';
?>
Arquivo – conexao.php
<?php// Conectamos ao nosso servidor MySQLif(!($rCon = mysql_connect($hostname, $usuario,$senha ))) {echo "Erro ao conectar ao MySQL.";exit;
}// Selecionamos nossa base de dados MySQLif(!($rSel = mysql_select_db($db))) {echo "Erro ao selecionar ao MySQL.";exit;
}
mysql_query ('SET NAMES utf8');?>
SQL – INSERT
SQL - Insert
Com a instrução INSERT se consegue inserir registros em uma tabela em um Banco de dados MySQL. A sintaxe base é:INSERT INTO nome_da_tabela (nome_do_campo) VALUES ('valor')
– Onde: ! nome_da_tabela: Você deverá indicar o nome
da tabela onde será feita a inserção dos dados;! nome_do_campo: Você deverá indicar o nome
do campo onde os dados serão incluídos;! valor: Você deverá indicar os dados que
serão inseridos.
INSERT – PHP (Exemplo01)
<html>
<?PHPinclude "include/cabecalho.php"; ?>
<body><h1> Exemplo 01 ‐ Insert </h1><?PHP
include "config/configuracoes.php"; include "conexao/conecta.php";
mysqlExemplo10.php
$consulta = "insert into produtos (descricao, observacao, preco, peso, qtdeestoque, nomeimagem, promocao, categoria) values ('Toalha de banho', 'toalha de banho 1,5 x 3,0 metros', 15, 2, 5, 'toalhabanho2.gif', '0', 4)";
$resultado = mysql_query($consulta) or die (mysql_error());
echo mysql_affected_rows($rCon); mysql_close($rCon);?></body></html>
verificação de erro
mysqlExemplo10.php
SQL – Insert (Exemplo 02)
<html>
<?PHPinclude "include/cabecalho.php"; ?>
<body>
<form action="mysqlExemplo11Insert.php" name="form" method="post">Nome:<br><input type="text" name="nome" maxlenght=�40" size="25" /><br>
Observações:<br><textarea name="observacoes" rows="4" cols="20"></textarea><br>
<input type="submit" value="Inserir" />
</form></body></html>
mysqlExemplo11formulario.php<?include "config/configuracoes.php"; include "conexao/conecta.php";
$nome = $_POST["nome"];$observacoes = $_POST["observacoes"];
$sql = "INSERT INTO categorias (categoria, observacoes) VALUES ('$nome', '$observacoes')";
$resultado = mysql_query($sql)or die (mysql_error());
echo "Dados inseridos com sucesso!";?>
mysqlExemplo11Insert.php
verificação de erro
ATIVIDADE EM SALA
Analise os campos abaixo e defina como seria o SQL de inclusão de produtos levando em consideração que o campo codigo éincrementado automaticamente e dos demais campos somente o campo observacao é opcional.codigo, descricao, observacao, peso, qtdestoque, promocao, categoria.
POSSÍVEL RESPOSTA
Cógido para inserção do produto:insert into produtos (descricao, observacao, preco, peso, qtdeestoque, promocao, categoria) Values ('Toalha de banho', 'toalha de banho 1,0 x 2,0 metros', 25, 0, 1, '0', 4)
Os dados de cada campo poderiam ser obtidas e através de formulários (o campo categoria poderia
ser selecionado com a opção SELECT do HTML (para a seleção da categoria).
ALTERAÇÃO
(COMMIT – ROLLBACK)http://www.devarticles.com/c/a/MySQL/Using-
Transactions-with-MySQL-4.0-and-PHP/
UPDATE - SINTAXE
A sintaxe básica do comando UPDATE é :UPDATE nome_tabelaSET nome_coluna1=expr1
[, nome_coluna2=expr2 ...] [WHERE definição_where]
UPDATE é aplicado a uma tabela e a cláusula SETatribui a um campo o valor de uma expressão que pode ou não conter o valor de um campo da própria tabela. A cláusula WHERE restringe as atualizações apenas aos registro que satisfação suas condições.
Atualizando dados do banco(ALTERAÇÃO)
<?php
//abre conexão com o mysqlinclude "config/configuracoes.php"; include "conexao/conecta.php";
$up = mysql_query("UPDATE pessoas setsite= 'www.clubepc.org' where nome = 'thales'");
?>Incluir verificação
de erro
SQL – Update (Exemplo 2)
Seleção da categoria
Formulário de alteração
SQL – Update (Exemplo 2)
<?include "include/cabecalho.php";include "config/configuracoes.php"; include "conexao/conecta.php";
$resultado=mysql_query("SELECT * FROM categorias ORDER BY categoria ASC");
Alteração de dados da tabela de categorias.
Seleção das categorias mysqlExemplo13Select.php
echo "<form action=\"mysqlExemplo13Alterar.php\" name=\"form\" method=\"post\">\n";
echo "<select name=\"codigo\">\n";
while ($dados = mysql_fetch_array($resultado)) { echo "<option value='" . $dados['codigo'] . "'>" .
$dados['categoria'] . "</option>\n"; }echo "</select>\n";echo "<br><br>\n";echo "<input class=\"button\" type=\"submit\" value=\"Alterar\" />\n";
echo "</form>\n�;echo "</body></html>";?>
Seleção das categorias mysqlExemplo13Select.php
<?include "include/cabecalho.php";include "config/configuracoes.php"; include "conexao/conecta.php";
$codigo = $_POST['codigo'];
// ‐‐‐‐‐‐‐‐‐‐ atualiza os dados após submeter alteraçãoif (isset($_POST['alterar'])) {$nome = $_POST["nome"];$observacoes = $_POST["observacoes"];
$sql = "UPDATE categorias SET categoria='$nome', observacoes='$observacoes' WHERE codigo=$codigo";//echo $sql;
mysqlExemplo13Alterar.php
$resultado = mysql_query($sql)or die (mysql_error());
echo mysql_affected_rows($rCon); } // fecha o if (isset)
// ‐‐‐‐‐ obtém dados para alteração$sql = "SELECT * FROM categorias WHERE codigo=$codigo";
$resultado = mysql_query($sql)or die (mysql_error());
$linha = mysql_fetch_array($resultado) ;
mysqlExemplo13Alterar.php
// ‐‐ dados /formulário de alteração ‐‐$nome = $linha["categoria"];$observacoes = $linha["observacoes"];
echo "<form action=\"mysqlExemplo13Alterar.php\" name=\"form\" method=\"post\">\n";
echo "<input type=\"hidden\" name=\"codigo\" value=\"$codigo\"/>\n";
echo "Nome:<br>\n";echo "<input type=\"text\" name=\"nome\" value=\"$nome\" maxlenght=\"100\" size=\"25\" /><br>\n�;
echo "Observações:<br>\n";echo "<textarea name=\"observacoes\" rows=\"4\" value=\"$observacoes\" cols=\"20\">$observacoes</textarea><br>\n";
echo "<input class=\"button\" type=\"submit\" name=\"alterar\" value=\"Alterar\" />\n";
echo "<a class=\"button\" href=\"mysqlExemplo13Select.php\">Selecionar outra</a>\n";
echo "</form>\n";
mysql_free_result($resultado);mysql_close($rCon);echo "</body></html>\n";?>
ATIVIDADE EM SALA
Questão 01: O que teria que ser alterado no exemplo de alteração para que ao invés de alterar a categoria essa categoria fosse excluída?Questão 02: Essa a exclusão tem alguma relação com a tabela de produtos? Questão 03: Qual a instrução SQL para excluir a categoria.
ATIVIDADE EM SALA (possível resolução)
Questão 01: o usuário teria que selecionar a categoria a ser excluída (a seleção é a mesma apresentada na alteração) ! ao invés de apresentar os campos em forma de formulário para alteração poderia somente apresentar as informações dos campos).Questão 02: cada produto possui o código de sua categoria (sendo assim uma categoria X não pode ser excluída se possuir produtos cadastrados com essa categoria)
ATIVIDADE EM SALA (possível resolução)
// verificar se foi especificada para algum produtoSELECT COUNT(*) FROM produtosWHERE caregoria = 3
// excluir somente se a consulta anterior não tiver registroDELETE FROM categoriasWHERE codigo = 3
EXCLUSÃO
DELETE - SINTAXE
Descrição: Utilizado para apagar um ou um grupo de registro de uma tabela específica.Sintaxe:delete from <tabela>Where campo = <critério de deleção>
Exemplo:delete from clienteWhere codigocliente = 1
EXCLUINDO DADOSDO BANCO
<? include"conexao.php";
//comando que exclui o registro
$query = mysql_query("DELETE FROM pessoaswhere nome = 'thales'");
echo"Registro excluido!"; ?>
Incluir verificação de erro
EXCLUIR CATEGORIA<?include "include/cabecalho.php";include "config/configuracoes.php"; include "conexao/conecta.php";
echo "<br><br>";
echo "<H3> EXCLUSÃO DE CATEGORIA </H3>";
$resultado=mysql_query("SELECT * FROM categorias ORDER BY categoria ASC");
echo "<form action=\"mysqlExemplo14Excluir.php\" name=\"form\" method=\"post\">\n";
echo "Categoria: �;
Seleciona CategoriamysqlExemplo14Select.php
echo "<select name=\"codigo\">\n";while ($dados = mysql_fetch_array($resultado)) {
echo "<option value='" . $dados['codigo'] . "'>" . $dados['categoria'] . "</option>\n";
}
echo "</select>\n";echo "<BR><BR>\n";echo "<input class=\"button\" type=\"submit\" value=\"Excluir\" />\n";
echo "</form>\n";cho "</body>\n</html>\n";?>
Seleciona CategoriamysqlExemplo14Select.php
include "include/cabecalho.php";include "config/configuracoes.php"; include "conexao/conecta.php";
$codigo = $_POST['codigo'];
// verifica se a categoria foi especificada // para algum produto ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐$totalRows = mysql_num_rows(mysql_query("SELECT Produtos.categoria FROM produtos WHERE Produtos.categoria = $codigo"));
Exclui a categoria selecionada se não se não foi especificada para nenhum produtomysqlExemplo14Excluir.php
<?if ($totalRows == 0) {
$sql = "DELETE FROM categorias WHERE codigo = $codigo";
$resultado = mysql_query($sql)or die (mysql_error());
echo "registro excluído: ". mysql_affected_rows($rCon);}else {
echo "Categoria não pode ser excluída";}
mysql_close($rCon);echo "</body></html>\n";
?>
Exclui a categoria selecionada se não se não foi especificada para nenhum produtomysqlExemplo14Excluir.php
PERGUNTAS
AdaptWeb
O projeto Adaptweb foi executado em parceria entre pesquisadores do Instituto de Informática da UFRGS e do Departamento de Computação da Universidade de Estadual de Londrina (UEL).Algumas referências do AdaptWeb:– http://www.inf.ufrgs.br/~palazzo/OAI/04%20Softw
are%20Livre%20-%20AdaptWeb.pdf– http://www.inf.ufrgs.br/~palazzo/OAI/04%20EAW%
20AH%20(Mariusa).pdf– Obs: outras publicações – pesquise no google
usando o texto: ADAPTWEB
Ambiente do ALUNO
ESTRUTURA – USUÁRIOSDO SISTEMA
O acesso ao sistema foi definido:– Usuário ROOT responsável por liberar o professor
para AUTORIA (esse usuário é automaticamente cadastrado pelo sistema que identifica o usuário ROOT)
– Usuário: professor– Usuário: aluno
Tipo de usuário
USUÁRIO:ROOT
USUÁRIO:PROFESSOR / AUTORIA
EstruturaExemplo para SITE
Estrutura Exemplo
<td>MENU
<br>
<a href='index.php?opcao=ListaProdutos'>Lista de produtos</a>
<br><br>
<a href='index.php?opcao=ProdutosCategoria'>Consulta / Categoria</a></td>
Bloco de código referente as opções
do MENU
<?PHPif (is_null($opcao)) {$opcao="Principal";}else
if (isset($_GET["opcao"])) {$opcao = $_GET["opcao"];
} elseif (isset($_POST["opcao"])){$opcao = $_POST["opcao"];
}
switch ($opcao) {case "ListaProdutos":
$inc = "mysqlExemplo8ListarProdutos.php";break;
case "ProdutosCategoria":
$inc = "mysqlExemplo9Select.php";
break;
case "ListaProdCategoria":
$inc = "mysqlExemplo9Listar.php";
break;
default:$inc = "entrada_principal.php";break;
} // switch?>
Área de conteúdo
Uma página index com uma estrutura CASE para selecionar qual página deve ser incluída na área de conteúdo
MATERIAL DE APOIO
MANUAL – PHP:http://www.php.net/manual/pt_BR/index.phpHTML: http://www.w3schools.com/TAGS/tag_th.aspGrupo : http://groups.google.com.br/group/desenvolvimento_php (Veronice de Freitas)Manual MySQL: http://www.php.net/manual/pt_BR/book.mysql.php
REFERÊNCIA - CONSULTA
Bibliografia Básica:– DEITEL, Paul J.; DEITEL, Harvey M.. Ajax, Rich
Internet Applications e desenvolvimento web para programadores. São Paulo: Pearson Prentice Hall, 2009. 747p. (Série do programador).
– LEMAY, Laura. Aprenda a criar páginas web com HTML e XHTML em 21 dias. São Paulo: MakronBooks, 2002. 1165p.
– CONVERSE, Tim; PARK, Joyce. PHP a bíblia. Rio de Janeiro: Campus, 2003. 868p.
REFERÊNCIA - CONSULTA
Bibliografia Complementar:– NISHIMURA, Roberto Yukio. Banco de dados II:
análise e desenvolvimento de sistemas. São Paulo Pearson Education do Brasil, 2009.
– WELLING, Luke; THOMSON, Laura. PHP e MySQL desenvolvimento web. Rio de Janeiro: Campus, 2003. 676p.
– NIELSEN, Jakob; LORANGER, Hoa. Usabilidade na Web. Rio de Janeiro: Elsevier, 2007. 406p
© 2010 – Todos os direitos reservados. Uso exclusivo no Sistema de Ensino Presencial Conectado.
Recommended