000052517300083407

10
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) [email protected] DESENVOLVIMENTO DE APLICAÇÃ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 - SITE Material de Apoio INCLUDES

Transcript of 000052517300083407

Page 1: 000052517300083407

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)

[email protected]

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

Page 2: 000052517300083407

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

Page 3: 000052517300083407

$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).

Page 4: 000052517300083407

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

Page 5: 000052517300083407

<?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)

Page 6: 000052517300083407

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

Page 7: 000052517300083407

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

Page 8: 000052517300083407

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?>

Page 9: 000052517300083407

Á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

Page 10: 000052517300083407

© 2010 – Todos os direitos reservados. Uso exclusivo no Sistema de Ensino Presencial Conectado.