Programação Web (Sql,Php) Prof. Luiz Claudio Ferreira de Souza www.luizclaudiofs.blogspot.com Para o Download do Xampp Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 2 S.O para instalação Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 3 Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 4 Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 5 Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 6 Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 7 Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 8 Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 9 Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 10 Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 11 Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 12 SGDB Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 13 Superação de problemas comuns aos sistemas de arquivos tradicionais pelos SGDB´s 1. Redundância e inconsistência de dados. Armazenamento de informações redundantes. Essa redundância conduz a altos custos de armazenamento e crescente dificuldade de atualização das informações. Inconsistência: alteração em alguns arquivos e em outros não, ou em todos os arquivos, porém, de maneira independente Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 14 Superação de problemas comuns aos sistemas de arquivos tradicionais pelos SGDB´s 2. Dificuldade no acesso aos dados Os dados espalhados em diferentes arquivos isolados não apresentam as facilidades de acesso e processamento das informações dos bancos de dados. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 15 Superação de problemas comuns aos sistemas de arquivos tradicionais pelos SGDB´s 3. Isolamento de dados: A existência de dados espalhados em diferentes arquivos, que podem apresentar diferentes formatos, dificulta a criação de novos programas aplicativos para a recuperação desses dados Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 16 Superação de problemas comuns aos sistemas de arquivos tradicionais pelos SGDB´s 4. Compartilhamento de Dados Utilizando um SGBD, a noção de compartilhamento de dados está na facilidade de definir visões de usuário, que é usada para especificar a porção da base de dados que é de interesse para um grupo particular de usuários Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 17 Superação de problemas comuns aos sistemas de arquivos tradicionais pelos SGDB´s 5. Problemas de segurança. O acesso a determinados dados deve ser restritos para alguns usuários do sistema de informações. Os dados financeiros são frequentemente considerados confidenciais e, desse modo, somente pessoas autorizadas devem ter acesso. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 18 Capacidades do SGDB’s Fornecimento de Múltiplas Interfaces: Devido aos vários tipos de usuários, com variados níveis de conhecimento técnico, um SGBD deve fornecer uma variedade de interfaces para atendê-los. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 19 Capacidades do SGDB’s Reforçar Restrições de Integridade: muitas aplicações de base de dados terão certas restrições de integridade de dados. A forma mais elementar de restrição de integridade é a especificação do tipo de dado de cada item. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 20 Capacidades do SGDB’s Fornecer Backup e Restauração: Um SGBD deve fornecer recursos para restauração caso ocorram falhas de hardware ou software. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 21 Vantagens adicionais dos Bancos de Dados Potencial para obrigar a Padronização: A abordagem de base de dados permite que o DBA defina e obrigue a padronização entre os usuários da base de dados em grandes organizações. Ex: nomes, elementos de dados, telas, relatórios, terminologias, etc. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 22 Vantagens adicionais dos Bancos de Dados Flexibilidade: Mudanças na estrutura de uma base de dados podem ser necessárias devido a mudanças nos requisitos. Por exemplo, um novo grupo de usuários pode surgir com necessidade de informações adicionais, ainda não disponíveis na base de dados. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 23 Vantagens adicionais dos Bancos de Dados Redução do Tempo de Desenvolvimento de Aplicações: Tempo reduzido para o desenvolvimento de novas aplicações, como a recuperação de certos dados da base de dados para a impressão de novos relatórios. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 24 Vantagens adicionais dos Bancos de Dados Disponibilidade de Informações Atualizadas: Tão logo um usuário modifique uma base de dados, todos os outros usuários “sentem” imediatamente esta modificação. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 25 Tipos de Usuários do SGDB Administrador da Base de Dados (DBA): É o usuário mais especializado de um banco de dados. A administração dos recursos do banco de dados é de responsabilidade do DBA (“Database Administrator ”). O DBA é responsável por autorizar acesso à base de dados e coordenar e monitorar seu uso. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 26 Tipos de Usuários do SGDB Projetistas da Base de Dados: Os projetistas de base de dados têm a responsabilidade de identificar os dados a serem armazenados na Base de Dados e escolher estruturas apropriadas para representar e armazenar tais dados. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 27 Tipos de Usuários do SGDB Analistas de Sistemas e Programadores de Aplicação: O analistas de sistemas determinam os requisitos de usuários finais, especialmente dos usuários comuns, e desenvolvem especificações das transações para atender a estes requisitos; os programadores de aplicações implementam estas especificações produzindo programas e, então, testam, depuram, documentam e mantêm estes programas. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 28 Tipos de Usuários do SGDB Usuários Finais: Existem profissionais que precisam ter acesso à base de dados para consultar, modificar e gerar relatórios. Existem algumas categorias de usuários finais: usuários ocasionais -> gerentes de médio ou alto-nível usuários comuns -> estes usuários realizam operações padrões de consultas e atualizações, que foram cuidadosamente programadas e testadas. Estes usuários constantemente realizam recuperações e modificações na base de dados Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 29 Modelos de Bancos de Dados 1- Modelo em Rede 2- Modelo Hierárquico 3- Modelo Relacional Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 30 Modelos de Bancos de Dados Modelo em Rede: Um banco de dados em rede consiste em uma coleção e registros concatenados uns aos outros por meio de ligações Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 31 Modelos de Bancos de Dados Modelo Hierárquico: Os registros são conectados numa estrutura de dados em árvore através de ligações de tal modo que cada tipo de registo tenha apenas um possuidor, conforme veremos adiante Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 32 Modelos de Bancos de Dados Se os clientes Maria e Pedro tivessem uma conta conjunta de número 22458, essa conta, de acordo com a regra do modelo hierárquico, não poderia estar ligado a dois clientes ao mesmo tempo, devendo dessa forma, ser duplicada, conforme pode ser visto na Figura Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 33 Modelos de Bancos de Dados Modelo Relacional: A maior vantagem do modelo relacional sobre seus antecessores é a representação simples dos dados e a facilidade com que consultas complexas podem ser expressas. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 34 Modelagem de Dados Corresponde a descrição dos tipos de informações que estão armazenadas em um banco de dados. Por exemplo, no caso de uma indústria, o modelo de dados poderia informar que o banco de dados armazena informações sobre produtos e que, para cada produto, são armazenados seu código, preço e descrição. Observe que o modelo de dados não informa quais os produtos que estão armazenados. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 35 Modelagem de Dados DER (Diagrama Entidade Relacionamento) Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 36 Structured Query Language (SQL) Oferece aos seus usuários e administradores meios de criar definições de dados, bem como manipular esses dados armazenados em suas bases. SQL é uma linguagem de pesquisa para uso em Banco de Dados Relacional, podendo ser utilizada como linguagem de construção, modificação e acesso a Banco de Dados. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 37 XAMPP Neste curso, para trabalharmos com o MySQL utilizaremos a ferramenta chamada XAMPP. Esta ferramenta instala e configura o MySQL (banco de dados), o Apache (servidor web) e o PhpMyAdmin (Software de gerenciamento do MySQL) automaticamente. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 38 Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 39 Start do Apache e MySQL Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 40 Neste curso, utilizaremos o PhpMyAdmin que é uma excelente ferramenta para manipulação do MySQL, muito útil principalmente para desenvolvedores web. Ele dispõe de uma série de recursos interessantes para administração do banco de dados. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 41 Na barra de endereço do seu navegador de Internet digite http://localhost/phpmyadmin Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 42 Criando Tabelas No MySQL Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 43 Criando Tabelas No MySQL CREATE TABLE clientes( codigo int(4) AUTO_INCREMENT, nome varchar(30) NOT NULL, email varchar(50), data_nascimento date, PRIMARY KEY (codigo) ) Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 44 Criando Tabelas No MySQL • CREATE TABLE é o comando para criação da tabela e deve ser seguida pelo nome que daremos à tabela. • AUTO_INCREMENT pode ser utilizado para automatizar um código que sirva de chave primária de uma tabela. • PRIMARY KEY define a chave primária da tabela, isto é, o campo que serve como chave da tabela e que não pode ser repetido. • NOT NULL define que um determinado campo seja de preenchimento obrigatório. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 45 COMANDO PARA INSERIR UM CLIENTE (Registro): INSERT into clientes VALUES ('','Fulano','[email protected]','1988-08-08') Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 46 Eliminando Tabelas DROP TABLE CLIENTE Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 47 Alterar o nome da tabela ALTER TABLE nome_da_table RENAME novo_nome Exemplo: ALTER TABLE clientes RENAME cliente Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 48 Adicionar atributos na tabela ALTER TABLE cliente ADD cidade VARCHAR(20) Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 49 Modificar o tamanho de um atributo ALTER TABLE cliente MODIFY codigo int(5) Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 50 Excluindo atributo de uma tabela ALTER TABLE cliente DROP cidade Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 51 Excluindo Chave Primária ALTER TABLE cliente DROP PRIMARY KEY Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 52 Definindo chave primária ALTER TABLE cliente ADD PRIMARY KEY(codigo) Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 53 Banco de Dados: Banco Cod_Cliente Nome Rua Cidade Num_CC Saldo -> inteiro, 5 , autoincremento -> Caractere, 25 , não ficar em branco -> Caractere, 25, -> Caractere, 15 -> inteiro, 5 -> decimal (10,2) Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 54 Criação da tabela Cliente CREATE TABLE Cliente( Cod_Cliente int(5) AUTO_INCREMENT, nome varchar(25) NOT NULL, rua varchar(25), cidade varchar(15), PRIMARY KEY (Cod_Cliente) ) Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 55 Criação da tabela Conta_Cliente CREATE TABLE Conta_Cliente( Cod_Cliente int(5), Num_CC int(5) NOT NULL ) Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 56 Criação da tabela Conta CREATE TABLE Conta( Num_CC int(5) NOT NULL, Saldo dec(10,2) ) Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 57 Registros da tabela Cliente INSERT into cliente VALUES ('','Pedro','A','São Paulo') INSERT into cliente VALUES ('','Maria','B','Jundiaí') Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 58 Registros da tabela Conta INSERT into conta VALUES ('20121','1200') INSERT into conta VALUES ('21582','1320') INSERT into conta VALUES ('21352','652') Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 59 Registros da tabela Conta_cliente INSERT into conta_cliente VALUES ('1','20121') INSERT into conta_cliente VALUES ('2','20582') INSERT into conta_cliente VALUES ('3','21352') Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 60 Alterando Registro Ex: Complementar o Nome do cliente Pedro para Pedro Silva UPDATE <NOME_TABELA> SET <NOME_COLUNA> = VALOR WHERE <CONDICAO>; UPDATE cliente SET Nome = 'Pedro Silva' WHERE Cod_Cliente =Prof. 1;Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 61 Inclua mais um Cliente Incluir o cliente João: INSERT into cliente VALUES ('', 'João','C', ‘Recife') Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 62 Exclusão de Registros DELETE FROM <NOME_TABELA> WHERE <(CONDIÇÃO)> DELETE FROM CLIENTE WHERE CIDADE = "Recife" Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 63 Extraindo Dados das Tabelas SELECT <COLUNAS> FROM <TABELA> SELECT Cod_Cliente, Nome, Cidade FROM CLIENTE Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 64 Inclua mais dois Clientes Incluir o cliente Peterson: INSERT into cliente VALUES ('', 'Peterson','D', 'Recife') Incluir a cliente Joana: INSERT into cliente VALUES ('', 'Joana', 'E', 'Recife') Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 65 Extraindo Dados das Tabelas SELECT <COLUNAS> FROM <TABELA> SELECT Cod_Cliente, Nome, Cidade FROM CLIENTE Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 66 Extraindo Dados das Tabelas Mostrar todas os clientes da Cidade de Recife SELECT Cod_Cliente, Nome, Cidade FROM CLIENTE Where cidade = "Recife" Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 67 Extraindo Dados das Tabelas Mostrar os clientes do banco com saldo de 1 a 700 Reais Select num_cc,saldo From conta Where saldo between 1.00 and 700.00 Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 68 Personal Home Page PHP Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 69 O que é PHP? PHP é uma linguagem que permite criar sites WEB dinâmicos, possibilitando uma interação com o usuário através de formulários, parâmetros da URL e links. Uma das características mais importantes do PHP é o suporte a um grande número debancos de dados, como dBase, Interbase, mSQL, mySQL, Oracle, Sybase, PostgreSQL e vários outros. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 70 O Apache deve ser Iniciado Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 71 Procure a Pasta htdocs na pasta Xampp do seu computador Crie uma pasta Aula dentro da pasta htdocs. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 72 Digitar no bloco de notas e salvar com o nome primeiro.php na pasta htdocs na pasta xampp do seu computador <html> <head><title>Aprendendo PHP</title></head> <body> <?php echo "Primeiro Script"; ?> </body> </html> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 73 Digite no navegador: http://localhost/aula/ Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 74 Clique no primeiro.php Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 75 O navegador exibirá o nosso primeiro Script Php! Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 76 O navegador irá mostrar Data e Hora Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 77 Php <html> <head><title>Aprendendo PHP</title></head> <body> <?php $dia = date("d/m/y"); $hora = date("h:m:s"); echo "Data de Hoje:",$dia; echo " Hora:",$hora; ?> </body> </html> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 78 O navegador irá mostrar Data e Hora, um em cada linha, ou seja, com quebra Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 79 Php <html> <head><title>Aprendendo PHP</title></head> <body> <?php $dia = date("d/m/y"); $hora = date("h:m:s"); // echo "Data de Hoje: ",$dia; echo "Data de Hoje: ",$dia; echo "<br /> Hora: ",$hora; ?> </body> </html> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 80 Área do retângulo Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 81 Área do retângulo <html> <head><title>Aprendendo PHP</title></head> <body> <?php $largura = 5.6; $altura = 8; $area = $largura * $altura; echo "A area do retângulo é ",$area,"cm quadrados"; echo "<br /> "; echo "<br /> Este Retângulo possui a altura igual a ",$altura,"cm"; echo "<br /> e largura igual a ",$largura,"cm"; ?> </body> </html> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 82 Atividade Avaliativa1 Desenvolva um programa em PHP para calcular a área de um triângulo. Ao terminar mostre ao professor! Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 83 Área do triângulo <html> <head><title>Aprendendo PHP</title></head> <body> <?php $base = 5.2; $altura = 8; $area = $base * $altura/2; echo "A area do triângulo é ",$area,"cm quadrados"; echo "<br /> "; echo "<br /> Este Triângulo possui a altura igual a ",$altura,"cm"; echo "<br /> e base igual a ",$base,"cm"; ?> </body> </html> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 84 Atividade Avaliativa! Desenvolva um programa em Php para calcular a idade média das pessoas que estão ao seu lado no laboratório de informática! Quando terminar mostre ao professor! Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 85 Média da idade de três pessoas! <html> <head><title>Aprendendo PHP</title></head> <body> <?php $idade1 = 22; $idade2 = 18; $idade3 = 30; $media = ($idade1+$idade2+$idade3)/3; echo "A Média das idades da sua bancada é ",$media," anos"; echo " <br /> "; echo " <br /> As pessoas possuem as seguintes idades: <br />",$idade1," anos "; echo " <br /> ",$idade2," anos"; echo " <br /> ",$idade3," anos"; ?> </body> </html> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 86 Entrada de dados através de Formulários Entrada de dados -> html Saída de dados -> php Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 87 Html -> Entrada de dados Salve o arquivo com o nome somaform.html <html> <head><title>Aprendendo PHP</title></head> <body> <form method="post" action="soma.php"> <input type="text" name="n1" /> <input type="text" name="n2" /> <input type="submit" value="Somar" /> </form> </body> </html> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 88 Php -> Saída de dados Salve o arquivo com o nome soma.php <?php extract($_POST); echo $n1+$n2; ?> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 89 Entrada e Saída dos Dados. Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 90 Tipo de triângulo (Html) <html> <head><title>Aprendendo PHP</title></head> <body> <form method="post" action="tipotriangulo.php"> lado 1 <input type="text" name="l1" /> lado 2 <input type="text" name="l2" /> lado 3 <input type="text" name="l3" /> <input type="submit" value="Verificar" /> </form> </body> </html> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 91 Tipo de triângulo (Php) <?php extract($_POST); if (($l1==$l2) and ($l2==$l3)) echo "O triângulo é Equilátero"; elseif (($l1==$l2) or ($l1==$l3) or ($l2==$l3)) echo "O triângulo é Isóceles"; else echo "O triângulo é Escaleno"; ?> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 92 Tabela de Multiplicação Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 93 Tabela de Multiplicação Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 94 Entrada de Dados -> Html <html> <head><title>Aprendendo PHP</title></head> <body> <form method="post" action="tabuadamultiplicacao.php"> De qual numero você deseja a tabuada de multiplicação? <input type="text" name="n" /> <input type="submit" value="Mostrar a Tabela" /> </form> </body> </html> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 95 Saída de Dados -> PhP <?php extract($_POST); $b=1; while ($b<=10){ echo "<br/>",$b,"X",$n,"=",$b*$n; $b=$b+1; } ?> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 96 Conversão entre Escalas Termométricas (Celcius para Farenheit) Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 97 Resultado da transformação Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 98 html <html> <head><title>Aprendendo PHP</title></head> <body> <form method="post" action="conversaotermometrica.php"> De qual temperatura na escala Celcius você deseja na escala Farenheit? <input type="text" name="t1" /> <input type="submit" value="Mostrar a conversão" /> </form> </body> </html> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 99 Php <?php extract($_POST); echo "============================================== "; echo "<br />Conversão Termométrica de ",$t1,"ºC Para a Escala Farenheit"; echo "<br /> ============================================== "; echo ""; $tf=(9*$t1/5)+32; Echo "<br/>", $t1,"ºC -------->",$tf,"ºF"; echo "<br /> ============================================== "; ?> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 100 Tabela de Conversão (Celcius para farenheit) Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 101 Tabela de Conversão (Celcius para farenheit) Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 102 html <html> <head><title>Aprendendo PHP</title></head> <body> <form method="post" action="tabeladeconversao.php"> De qual temperatura inicial você deseja a tabela? <input type="text" name="t1" /> Até qual temperatura você deseja a conversão? <input type="text" name="t2" /> <input type="submit" value="Mostrar a Tabela" /> </form> </body> </html> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 103 PhP <?php extract($_POST); echo "============================================== "; echo "<br />Tabela de Conversão Termométrica de ",$t1," ºC até",$t2," ºC Para Farenheit"; echo "<br /> ============================================== "; echo ""; while ($t1<=$t2){ $tf=(9*$t1/5)+32; Echo "<br/>", $t1,"ºC -------->",$tf,"ºF"; $t1=$t1+1; } echo "<br /> ============================================== "; ?> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 104 Metros para Centímetros, Milímetros e Kilômetros Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 105 Metros para Centímetros, Milímetros e Kilômetros Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 106 metrosform.html <html> <head><title>Aprendendo PHP</title></head> <body> <form method="post" action="metros.php"> Qual a medida inicial em metros você deseja converter para centímetros, milimetros e Kilômetros? <input type="text" name="M1" /> Qual a medida final em metros você deseja converter para centímetros, milimetros e Kilômetros? <input type="text" name="M2" /> <input type="submit" value="Mostrar a Tabela" /> </form> </body> </html> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 107 metros.php <?php extract($_POST); echo "============================================== "; echo "<br />Tabela de Conversão de Metros",$M1," m até ",$M2," m"; echo "<br /> ============================================== "; echo ""; while ($M1<=$M2){ $cm=$M1*100; $mm=$M1*1000; $km=$M1/1000; Echo "<br/>", $M1,"M -------->",$cm,"Cm","-------->",$mm," Mm","-------->",$km," Km"; $M1=$M1+1; } echo "<br /> ============================================== "; ?> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 108 Conexão ao SGDB Mysql para realização de Inclusão, Exibição, Alteração e Remoção de Registros Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 109 Crie a tabela clientes no Banco de Dados test Criando Uma Tabela CREATE TABLE clientes( codigo int(4) AUTO_INCREMENT, nome varchar(30) NOT NULL, email varchar(50), data_nascimento date, PRIMARY KEY (codigo) ) Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 110 Conexão com o Banco de Dados Teste e com a tabela clientes. Salve na pasta Aula com o nome conexao.php <?php $host="localhost"; //nome do servidor $username="root"; //Login Usuário Mysql $password=""; //Senha do usuario Mysql $db_name="test"; //Nome do Banco de Dados $tabela="cliente"; //Tabela Clientes //conexão com o servidor //$conect = mysql_connect("$host", "$username", "$password"); $conect = mysql_connect($host, $username, $password); // Caso a conexão seja reprovada, exibe na tela uma mensagem de erro if (!$conect) { Echo "Falha na conexa com o Banco de Dados!"; exit(); } // Caso a conexão seja aprovada, então conecta o Banco de Dados. $db = mysql_select_db("db_name"); if(!@mysql_select_db ($db_name)) { echo "Erro ao conectar ao Banco de dados"; exit(); } ?> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 111 Menu Principal Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 112 Menu Principal -> Salvar o arquivo na pasta aula com o nome index.html <html> <title>Projeto Integração com Banco de Dados</title> <body> <h1>Menu</h1> <a href="listarcliente.php">Listar Clientes</a> | <a href="cadcliente.php">Cadastro de Clientes</a> </body> </html> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 113 . . . <a href="listarcliente.php">Listar Clientes</a> | <a href="cadcliente.php">Cadastro de Clientes</a> . . . Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 114 cadcliente.php Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 115 Nome do arquivo: cadcliente.php Salvar na pasta: aula <html> <body> <form method="post" action="incluircliente.php"> <a href="listarcliente.php">Listar Clientes</a> <a href="index.php">Voltar</a><br/><br/> <form action="incluircliente.php" method="post"> Nome: <input type="text" name="Nome" maxlength="50"/><br/> Email: <input type="text" name="Email" maxlength="20"/><br/> Data do Nascimento: <input type="text" name="data_nascimento" maxlength="20"/><br/> <input type="submit" name="salvar" value="Salvar" /> </form> </body> </html> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 116 Nome do arquivo: incluircliente.php Salvar na pasta: aula <?php //Conectando ao banco include ("conexao.php"); //traz as variáveis do formulário //$codcliente = $_POST["codcliente"]; $Nome = $_POST["Nome"]; $Email = $_POST["Email"]; $data_nascimento = $_POST["data_nascimento"]; //if para ver se foi executado com sucesso a query if (mysql_query("insert into clientes (Nome, Email, data_nascimento) values ('$Nome','$Email','$data_nascimento')")) { //exibe a mensagem de Cadastrado e a de voltar a tela anterior echo "Cadastrado! <br> <a href='javascript:history.back(-1);'>voltar<a/>"; exit; //Se não, é exibido um erro }else{ echo mysql_error(); exit; } Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com ?> 117 Listar Clientes Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 118 Nome do arquivo: listarcliente.php Salvar na pasta: aula <?php //Conectando include("conexao.php"); //Fazendo uma busca no Banco de Dados $sql = mysql_query("SELECT codigo, nome, email, data_nascimento FROM clientes"); echo "Codigo | Nome | E-mail | Data do Nascimento <br>"; //Retorna uma matriz associativa dos dados while($exibe = mysql_fetch_assoc($sql)){ echo $exibe["codigo"]." | "; echo $exibe["nome"]." | "; echo $exibe["email"]." | "; echo $exibe["data_nascimento"]."<br>"; } Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 119 Acrescentar o Editar e o Remover no listar clientes Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 120 Acrescentar e alterar no arquivo listarcliente.php <?php //Conectando include("conexao.php"); //Fazendo uma busca no Banco de Dados $sql = mysql_query("SELECT codigo, nome, email, data_nascimento FROM clientes"); echo "--------->Codigo | Nome | E-mail | Data do Nascimento <br>"; //Retorna uma matriz associativa dos dados while($exibe = mysql_fetch_assoc($sql)){ echo"<a href='#'>Editar</a>"; echo $exibe["codigo"]." | "; echo $exibe["nome"]." | "; echo $exibe["email"]." | "; echo $exibe["data_nascimento"]." | "; //Passa por parâmetro a linha a ser removida echo "<a href='removercliente.php?&codigo=".$exibe['codigo']."'>Remover</a> <br>"; } ?> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 121 Remover Registro Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 122 Nome do arquivo: removercliente.php Salvar na pasta: aula <?php //Conectando ao banco include ("conexao.php"); //envia via Get o código a ser removido ao Banco de Dados $codigo = $_GET["codigo"]; //if para ver se foi removido com sucesso a query if (mysql_query("delete from clientes where codigo='$codigo'")) { //exibe a mensagem de Remoção e volta a tela anterior echo "Removido! <br> <a href='javascript:history.back(-1);'>voltar<a/>"; exit; //Se não, será exibido um erro }else{ echo mysql_error(); exit; } ?> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 123 Alterar um Registro Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 124 Alterar um Registro Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 125 Acrescentar e alterar no arquivo listarcliente.php <?php //Conectando include("conexao.php"); //Fazendo uma busca no Banco de Dados $sql = mysql_query("SELECT codigo, nome, email, data_nascimento FROM clientes"); echo "--------->Codigo | Nome | E-mail | Data do Nascimento <br>"; //Retorna uma matriz associativa dos dados while($exibe = mysql_fetch_assoc($sql)){ echo"<a href='editarclienteform.php?&codigo=".$exibe['codigo']."'>Editar</a>"; echo $exibe["codigo"]." | "; echo $exibe["nome"]." | "; echo $exibe["email"]." | "; echo $exibe["data_nascimento"]." | "; //Passa por parâmetro a linha a ser removida echo "<a href='removercliente.php?&codigo=".$exibe['codigo']."'>Remover</a> <br>"; } ?> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 126 Nome do arquivo: editarclienteform.php pasta: aula <html> <body> <?php include("conexao.php"); $codigo = $_GET["codigo"]; $sql = mysql_query("select * from clientes where codigo='$codigo'"); $exibe = mysql_fetch_assoc($sql); ?> <form method="post" action="editarcliente.php"> <a href="listarcliente.php">Listar Clientes</a> <input name="codigo" type="hidden" value="<?php echo $exibe["codigo"]; ?>"/> <a href="index.php">Voltar</a><br/><br/> <form action="incluircliente.php" method="post"> Nome: <input type="text" name="Nome" maxlength="50" value="<?php echo $exibe["nome"]; ?>"/> Email: <input type="text" name="Email" maxlength="20" value="<?php echo $exibe["email"]; ?>"/> Data do Nascimento: <input type="text" name="data_nascimento" maxlength="20" value="<?php echo $exibe["email"]; ?>"/> <input type="submit" name="Salvar" value="Salvar" /> </form> </body> Prof. Luiz Claudio F. de Souza 127 </html> www.luizclaudiofs.blogspot.com Nome do arquivo: editarcliente.php pasta: aula <?php //Conectando ao banco include ("conexao.php"); //traz as variáveis do formulário $codigo = $_POST["codigo"]; $Nome = $_POST["Nome"]; $Email = $_POST["Email"]; $data_nascimento = $_POST["data_nascimento"]; //if para ver se foi executado com sucesso a query if (mysql_query("update clientes set Nome='$Nome',Email='$Email',data_nascimento='$data_nascimento' where codigo='$codigo'")){ //exibe a mensagem de Cadastrado e a de voltar a tela anterior echo "Alterado! <br> <a href='javascript:history.back(-1);'>voltar<a/>"; exit; //Se não é exibido um erro }else{ echo mysql_error(); exit; } ?> Prof. Luiz Claudio F. de Souza www.luizclaudiofs.blogspot.com 128