Você está na página 1de 55

Apostila

desenvolvida exclusivamente para este Site. .

PHP

NDICE NDICE .......................................................................................................................................... 2 INSTALANDO O WAMPSERVER. ............................................................................................... 3 PHP ............................................................................................................................................... 4 Sintaxe Bsica ................................................................................................ 6 Variveis ......................................................................................................... 7 Tipos de dados ............................................................................................... 8 Constantes ...................................................................................................... 9 Operadores ................................................................................................... 10 Operadores lgicos ................................................................................... 14 Estruturas de Controle .................................................................................. 15 switch / case .............................................................................................. 16 For ............................................................................................................. 17 While ......................................................................................................... 17 do-while ..................................................................................................... 18

Matrizes ........................................................................................................ 18 INCLUSO DE ARQUIVOS ....................................................................................................... 19 Parmetros ................................................................................................... 21 FORMULRIOS .......................................................................................................................... 22 ENVIO DE E-MAILS ................................................................................................................... 23 BANCOS DE DADOS ................................................................................................................. 25 Introduo ao MySQL ................................................................................... 26 Exibio ..................................................................................................... 32 ENTENDENDO UM POUCO SOBRE SQL ................................................................................ 33 CONECTANDO AO BANCO DE DADOS PELO DREAMWEAVER ......................................... 41 SISTEMA DE CADASTRO SIMPLES ........................................................................................ 49 Criando o banco de dados no phpMyAdmin ................................................. 54 Criando a conexo do Banco de Dados com o Dreamweaver .................. 57 Criando o formulrio de cadastro no Banco de Dados .............................. 59 Edio dos dados cadastrados ..................................................................... 65 Excluso de Registro .................................................................................... 69

INSTALANDO O WAMPSERVER. Para podermos testar nossos cdigos em PHP necessria a utilizao de um servidor com suporte a PHP. Caso ainda no possua um servio de hospedagem, ou caso seu servio de hospedagem no de suporte linguagem, voc pode testar suas pginas em PHP em um servidor local. Vamos para dar andamento ao contedo da apostila usar o WAM Server, que um pacote que j instala para voc o servidor internet local com suporte a PHP e MySQL.

Basta ir clicando e avanando. Aps a instalao ser mostrado prximo ao relgio o cone de seu servidor WEB.

Ao clicar sobre este cone voc ter acesso ao menu de opes de seu servidor local.

No seu navegador digite http://localhost/. 4

Vamos a um exemplo simples de teste. Abra o Dreamweaver ou mesmo o bloco de notas e digite o cdigo <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <?php echo "teste de texto" ?> <body> </body> </html>

Salve como teste.php e salve na pasta: C:\wamp\www, depois digite em seu navegador: http://localhost/teste.php. PHP

PHP uma sigla recursiva que significa PHP HyperText Preprocessor. O PHP uma linguagem de cdigo-fonte aberto, muito utilizada na Internet e 5 especialmente criada para o desenvolvimento de aplicativos Web. Crie uma pasta chamada PHP dentro do diretrio WWW do wamp, ser nesta pasta que colocaremos nossos scripts., podendo assim test-los.

O PHP focado para ser uma linguagem de script do lado do servidor, portanto, voc pode fazer qualquer coisa que outro programa CGI pode fazer, como: coletar dados de formulrios, gerar pginas com contedo dinmico ou enviar e receber cookies. Esses so os maiores campos onde os scripts PHP podem se utilizados: Script no lado do servidor (server-side). Este o mais tradicional e principal campo de atuao do PHP. Voc precisa de trs coisas para seu trabalho. O interpretador do PHP (como CGI ou mdulo), um servidor web e um browser. Basta rodar o servidor web conectado a um PHP instalado. Voc pode acessar os resultados de seu programa PHP com um browser, visualizando a pgina PHP atravs do servidor web. Script de linha de comando. Voc pode fazer um script PHP funcionar sem um servidor web ou browser. A nica coisa necessria o interpretador. Esse tipo de uso ideal para script executados usando o cron ou o Agendador de Tarefas (no Windows). Esses scripts podem ser usados tambm para rotinas de processamento de texto. Escrevendo aplicaes GUI no lado do cliente (client-side). O

6 PHP no (provavelmente) a melhor linguagem para produo de aplicaes com interfaces em janelas, mas o PHP faz isso muito bem, e se voc deseja usar alguns recursos avanados do PHP em aplicaes no lado do cliente poder utilizar o PHP-GTK para escrever esses programas. E programas escritos desta forma ainda sero independentes de plataforma. O PHP-GTK uma extenso do PHP, no disponvel na distribuio oficial. Se voc est interessado no PHP-GTK, visite o site http://gtk.php.net. Sintaxe Bsica Tags especiais indicam ao PHP onde esto os blocos de cdigo. A tag de abertura formada por um sinal de menor que (<), um sinal de interrogao (?) e a sigla php. A tag de fechamento formada por um ponto interrogao (?) e sinal de maior que (>). Ex: <?php ... ?> Monte o exemplo abaixo: <body> <?php $a = 10; $b = 15; $c = $a + $b; echo "$a mais $b igual a $c"; ?> </body>

Explicando, criamos as variveis a e b e atribumos a ela um valor, depois criamos a varivel c e definimos a ela a soma de a e b, depois escrevemos isso em tela com o comando echo. Podemos adicionar isso ao prprio cdigo como comentrios de boco /* e */. de apenas uma linha so obtidos atravs de //. 7

Variveis Variveis armazenam valores. Pode-se referir a variveis para obter seu valor ou para alterar seu contedo. No PHP elas so representadas por um cifro ($) mais o nome da varivel. Os nomes de variveis vlidos so iniciados por letras ou por um subscrito ( _ ). Existe diferenciao entre nomes de variveis maisculas e minsculas. Quando a varivel declarada dentro de uma funo, ela s estar disponvel para o cdigo desta funo. O cdigo a seguir gera um erro devido a essa caracterstica. <?php function soma($a){ $b = $a + 5; } soma(10); echo "o valor de 'b' $b"; ?> Para evitar este tipo de problema, deve-se definir a varivel como global. O cdigo a seguir resolve o problema do cdigo anterior. Compare os resultados dos dois scripts. <?php

function soma($a) { global $b; $b = $a + 5; 8 } soma(10); echo "o valor de 'b' $b"; ?>

Tipos de dados O PHP suporta vrios tipos de dados: Inteiro Nmeros inteiros (isto , nmeros sem ponto decimal) Nmeros de dupla preciso Nmeros reais (isto , nmeros que contm um ponto decimal) String Texto entre aspas simples ( ) ou duplas ( ) Booleanos armazenam valores verdadeiros ou falsos, usados em testes de condies Array Grupo de elementos do mesmo tipo Objeto Grupo de atributos e mtodos Recurso Uma origem de dados externa Nulo Nenhum valor

<?php //dados boleanos $a = True; if ($a)

{ echo "Verdadeiro"; } else { echo "Falso"; } echo '<p>'; // dados com hexadecimais 9 $a = 0x1A; //Corresponde ao decimal 26 $b = -16; $c = $a + $b; echo "a + b = $c"; echo '<p>'; //ponto flutuante so representados por (.) $preco = 11.90; $soma = $preco * 4; echo "Quatro revistas W custam R$ $soma<br>"; echo '<p>'; //strings so representadas por aspas simples e duplas $texto1 = 'Esse o primeiro texto.<br>'; $texto2 = "Esse o segundo texto."; echo $texto1; echo $texto2; echo '<p>'; /*As variveis do tipo matriz ou array permitem o armazenamento de

diversos elementos referenciados por uma mesma referncia*/ $frutas = array( 1 => "Laranja", 2 => "Ma", 3 => "Uva"); echo "<li> $frutas[1]<br>"; echo "<li> $frutas[2]<br>"; echo "<li> $frutas[3]<br>"; ?> Constantes Constantes so identificadores para valores simples. O seu contedo no muda durante a execuo do cdigo. Elas so criadas com a funo define e, por conveno, so escritas com letras maisculas e no usam o cifro no incio. 10 <?php define("CONSTANTE", "Al mundo."); echo CONSTANTE; ?> Operadores So usados para efetuarem operaes sobre as variveis e constantes. Os operadores do PHP so: + soma - subtrao multiplicao / diviso

xponenciao % mdulo, resto da diviso ++ acrescenta um a uma varivel -- subtrai um de uma varivel += soma um valor a uma varivel e lhe atribui o resultado <?php $x = 2; echo($x + 2); echo "<br>"; $x = 2; echo(5 - $x); echo "<br>"; $x = 4; echo($x * 5); echo "<br>"; $x = 15; echo($x / 5); echo "<br>"; $x = 10; echo($x % 8); 11 echo "<br>"; $x = 5; $x++; echo($x); echo "<br>"; $x = 5;

$x--; echo($x); echo "<br>"; $x = 8; echo($x); echo "<br>"; $x = 8; $x = $x + 10; echo($x); echo "<br>"; $x = 8; $x += 10; echo($x); ?> H tambm os operadores de comparao. Uma comparao sempre gera um dos dois valores possveis: vazio, que corresponde a falso, e 1, que corresponde a verdadeiro. = = igual a ! = no igual a maior que < menor que >= maior ou igual a <= menor ou igual a <?php $x = 5; $resultado = ($x == 8); 12

if($resultado == 1) { echo "verdadeiro"; } else { echo "falso"; } echo "<br>"; $x = 5; $resultado = ($x != 8); if($resultado == 1) { echo "verdadeiro"; } else { echo "falso"; } echo "<br>"; $x = 5; $resultado = ($x > 8); if($resultado == 1) { echo "verdadeiro"; } else

{ echo "falso"; } echo "<br>"; $x = 5; 13 $resultado = ($x > 8); if($resultado == 1) { echo "verdadeiro"; } else { echo "falso"; } echo "<br>"; $x = 5; $resultado = ($x >= 8); if($resultado == 1) { echo "verdadeiro"; } else { echo "falso"; } echo "<br>";

$x = 5; $resultado = ($x <= 8); if($resultado == 1) { echo "verdadeiro"; } else { echo "falso"; } ?> 14 Operadores lgicos and ou && - operador lgico e, apenas retornando verdadeiro quando as duas condies envolvidas no teste forem verdadeiras or ou | | operador lgico ou, retornando verdadeiro quando uma ou as duas condies envolvidas no teste forem verdadeiras ! operador lgico no, invertendo o resultado de um teste xor operador lgico ou exclusivo que determina se uma de duas condies verdadeira mas no ambas. Se ambas forem verdadeiras, o teste final ser falso. <?php $x = 6; $y = 3; $resultado = ($x < 10 && $y > 1); if($resultado == 1) { echo "verdadeiro";

} else { echo "falso"; } echo "<br>"; $x = 6; $y = 3; $resultado = ($x == 5 || $y == 5); if($resultado == 1) { echo "verdadeiro"; } else { echo "falso"; } 15 echo "<br>"; $x = 6; $y = 3; $resultado = (!($x == $y)); if($resultado == 1) { echo "verdadeiro"; } else

{ echo "falso"; } ?> Estruturas de Controle No PHP, as estruturas de controle so formadas por declaraes condicionais e de looping: if executa uma ao se uma condio for atendida. O bloco de comandos a ser executado deve ser escrito entre chaves; else pode-se colocar um conjunto de comandos alternativos caso o teste do if seja negativo. A declarao else deve vir logo aps o bloco de cdigo relacionado ao. O comando if tambm pode ser usado aps a declarao else <body> <?php $x = 20; if ($x > 10) { echo("O valor da varivel maior que 10."); } ?> </body> Outro exemplo usando If e else <body> 16 <?php $cor = "branco"; if ($cor == "vermelho")

{ echo("A varivel contm o valor 'vermelho'."); } else if ($cor == "azul") { echo("A varivel contm o valor 'azul'."); } else if ($cor == "amarelo") { echo("A varivel contm o valor 'amarelo'."); } else { echo("O valor da varivel no foi identificado."); } ?> </body> switch / case Forma de testar uma dentre vrias possibilidades. A declarao default executa caso nenhuma das opes for verdadeira. A declarao break faz com que o restante do cdigo no seja executado caso o teste seja verdadeiro. <body> <?php $d = getdate(); switch ($d['wday']) { case 5:

echo("Sexta-feira"); break; 17 case 6: echo("Sbado"); break; case 0: echo("Domingo"); break; default: echo("Outro dia da semana"); } ?> </body>

For Estrutura de looping que executa um bloco de cdigo quantas vezes for indicado em uma varivel. Deve-se definir a varivel que ser testada no looping, uma condio de teste e o incremento (ou decremento) da varivel de controle. <body> <?php for ($i = 1; $i < 10; $i++) { echo("Linha $i <br>"); } ?>

</body> While Estrutura de looping que no necessita de um nmero determinado de iteraes. Ele executado enquanto uma condio for verdadeira. <body> <?php $i = 1; 18 while ($i < 10000) { echo($i); $i *= 2; echo(" vezes 2 igual a $i <br>"); } ?> </body> do-while Outra forma de looping que executa um bloco de cdigo, testa uma condio e repete novamente o bloco de cdigo (ou no). <?php $i = 1; do { echo ("Linha $i <br>"); $i++; } while ($i < 10)

?> Matrizes Matrizes so variveis que armazenam mais de um valor simultaneamente. Uma matriz no PHP atualmente um mapa ordenado. Um mapa um tipo que relaciona valores para chaves. Este tipo otimizado de vrias maneiras, ento voc pode us-lo como um array real, ou uma lista (vetor), hashtable (que uma implementao de mapa), dicionrio, coleo, pilha, fila, etc. As referncias aos elementos da matriz podem ser declaradas como valores numricos ou strings <body> <?php $colaboradores = array(0 => "Marcos", 19 1 => "Eduardo", 2 => "Maria", 3 => "Srgio", 4 => "Rosangela"); echo "<b>Colaboradores</b>"; echo "<ul>"; echo "<li>" . $colaboradores[0]; echo "<li>" . $colaboradores[1]; echo "<li>" . $colaboradores[3]; echo "<li>" . $colaboradores[2]; echo "<li>" . $colaboradores[4]; echo "</ul>"; ?> </body>

INCLUSO DE ARQUIVOS O comando include permite a incluso de outros arquivos php dentro do script que est sendo executado. Pode-se criar uma funo que imprime a data atual e pode-se reus-lo sem precisar reescrever o cdigo cada vez que for necessrio. No exemplo a seguir, pode-se chamar o primeiro script de topo.php e o prximo script o inclui atravs do comando include. Cdigo do arquivo topo.php. <body> <?php $meses = array(1 => "Janeiro", 2 => "Fevereiro", 3 => "Maro", 4 => "Abril", 5 => "Maio", 6 => "Junho", 7 => "Julho", 8 => "Agosto", 9 => "Setembro", 20 10 => "Outubro", 11 => "Novembro", 12 => "Dezembro"); $hoje = getdate(); $dia = $hoje["mday"]; $mes = $hoje["mon"]; $nomeMes = $meses[$mes]; $ano = $hoje["year"];

echo "Hoje dia $dia de $nomeMes de $ano." ?> </body> Para chamar o arquivo topo.php, usamos o seguinte cdigo em um novo arquivo php. <body> <?php include("topo.php"); ?> </body> Este recurso pode ser bem interessante, para facilitar a atualizao de setores do seu site, pois podemos importar arquivos no formato texto como, por exemplo, arquivos em TXT , apenas necessrio salv-lo no formato UTF-8, para que o navegador consiga interpretar corretamente a acentuao. 21

Na chamada do Include coloque: <?php include("noticia.txt"); ?> Parmetros O uso de parmetros facilita a programao porque permite a passagem de dados entre o browser e o script ou entre scripts. A passagem de parmetros entre o browser e o script feita dentro da URL, por exemplo, e manipulada pela funo $_GET. Nesse exemplo a seguir, cada um dos links envia um valor diferente para a pgina que aberta parametros.php. Para enviar um parmetro, a sintaxe

inclui um sinal de interrogao, o nome da varivel, um sinal de igual e o valor da varivel. <body> <?php if (isset($_GET["valor"])) 22 { $valor = $_GET["valor"]; echo "Voc clicou no valor $valor <p>"; } else { echo "Clique em um dos valores:<p>"; } ?> <a href="parametros.php?valor=1">Valor01</a><br> <a href="parametros.php?valor=2">Valor02</a><br> <a href="parametros.php?valor=3">Valor03</a><br> <a href="parametros.php?valor=4">Valor04</a><br> <a href="parametros.php?valor=5">Valor05</a><br> </body>

FORMULRIOS Os valores enviados atravs de um formulrio podem ser recuperados pela varivel predefinida $_POST. Atravs dela possvel obter os dados que foram enviados atravs do mtodo POST do HTML, bastando indicar o nome do campo do formulrio. No comando action do formulrio, deve-se indicar a

pgina PHP que ir receber os valores. O mesmo documento pode conter o 23 cdigo e o formulrio <body> <?php if (isset($_POST["pnome"]) && isset($_POST["snome"])) { $pnome = $_POST["pnome"]; $snome = $_POST["snome"]; echo "Ol $pnome $snome.<p>"; } else { echo "Digite o seu nome.<p>"; } ?> <form method="post" action="formulario.php"> Nome: <input type="text" name="pnome"> <br> Sobrenome: <input type="text" name="snome"> <br><br> <input type="submit" value="Enviar"> </form> </body> ENVIO DE E-MAILS O PHP permite que se enviem e-mails de forma automatizada. Para isso, devese ajustar o arquivo de configurao (php.ini) para se indicar o servidor SMTP:

[mail function] SMTP = localhost ;for win32 only sendmail_from = me@localhost.com ;for win32 only ;sendmail_path = ;for unix only, may supply arguments as well (default is 'sendmail -t -i') A opo SMTP indica o endereo ou nmero IP do servidor SMTP. A opo sendmail_from indica o endereo do remetente da mensagem. necessrio 24 reiniciar o servidor a cada modificao em algum arquivo de configurao. importante se atentar como o seu servidor de hospedagem trata o envio de mensagens por e-mail, atualmente comum os servidores atriburem uma regra para estes envios, focando assim na segurana de seus servidores e procurando tambm evitar a pratica de SPAM. Abaixo um exemplo bsico de envio de e-mail via formulrio: O formulrio de contato: <tr> <td ><p>Nome</p></td> <td><input name="nome" type="text"size="30" /></td> </tr> <tr> <td><p>E-mail</p></td> <td><input name="email" type="text" /></td> </tr> <tr> <td><p>Assunto</p></td> <td><input name="assunto" type="text" /></td> </tr>

<tr> <td><p>Coment&aacute;rios</p></td> <td><textarea name="mensagem" cols="29" rows="5"></textarea></td> </tr> <tr> <td><input name="enviar" type="submit" value="Enviar" /> <input name="limpar" type="reset" value="Limpar" /></td> </tr>

O arquivo PHP que processa a informao e faz o envio: <? php //Recebendo os dados do formulrio. 25 $nome = $_POST["nome"]; $email = $_POST["email"]; $assunto = $_POST["assunto"]; $mensagem=$_POST["mensagem"]; //Setando o restante das variveis para o disparo do email $destinatario = "seuemail@provedor.com"; $formato = "\nContent-type: text/html\n"; //Incluindo os campos nome e email no corpo da mensagem. $msg = "- Nome: ".$nome."<br>- Assunto: ".$assunto."<br>- Mensagem: ".$mensagem; //Enviando o email mail("$destinatario","$assunto","$msg","from: ".$email.$formato); //Criando a mensagem de confirmao de envio de email. echo "<div align=center>Mensagem enviada com sucesso! Aguarde um

retorno. Clique <a href='index.php'> <b>aqui</b> </a> para retornar.</div>"; ?> BANCOS DE DADOS O ponto de partida para a criao de um banco de dados o registro. Um registro uma coleo de dados relacionados tratada como uma entidade nica. Por exemplo: a ficha de funcionrio pode ser chamada de um registro: ela contm o nome, fotografia, funo, salrio, etc. Empregando a terminologia de banco de dados, cada um desses itens relacionados seria chamado de campo: cada "registro" de ficha do funcionrio contm um campo de nome, um campo de fotografia, um campo de funo etc. Uma coleo de registros que compartilham os mesmos campos chamada de tabela, porque esses tipos de informaes podem ser facilmente apresentados no formato de tabela: cada coluna representa um campo e cada linha representa um registro. Na verdade, a palavra coluna sinnima de campo e linha sinnima de registro. Um banco de dados pode conter mais de uma tabela, cada uma delas com um nome exclusivo. Essas tabelas podem ser relacionadas ou independentes. 26 Um conjunto de registros um subconjunto de registros extrados de uma ou mais tabelas de um banco de dados. Um conjunto de registros tambm uma

tabela, por ser uma coleo de registros que compartilham as mesmas colunas. Para criar um conjunto de registros, necessrio fazer uma consulta ao banco de dados. Um consulta consiste em um critrio de pesquisa. Introduo ao MySQL O MySQL o gerenciador de banco de dados mais usado com o PHP. Existem muitas funes pr-definidas para manipulao de conexes com bancos de dados. A funo mysql_connect tenta uma conexo com um servidor MySQL. Devese passar como parmetros: o nome do servidor (ou nmero IP) onde o MySQL est sendo executado, o nome de usurio e a senha deste usurio. O comando alternativo die trata um possvel fracasso na conexo. A funo mysql_selectdb seleciona qual base ser selecionada dentro do banco de dados que foi conectado. O comando alternativo die trata um possvel fracasso na seleo da base, podendo ser includa uma mensagem customizada. A funo mysql_query faz consultas base previamente selecionada. Devese passar, como parmetros, os comandos SQL apropriados. Novamente, o comando alternativo die pode tratar um no sucesso na consulta. <body> <?php $link = mysql_connect("localhost", "root", "") or die("No foi possvel conectar"); mysql_select_db("curso") or die("No foi possvel selecionar o banco de dados"); $consulta = "SELECT * FROM Modulos"; $resultado = mysql_query($consulta)

or die("Falha na execuo da consulta"); echo "Consulta executada com sucesso"; ?> 27 </body> No exemplo como estamos usando o WAMP, o usurio root e a senha vazia, ao enviar para um servidor, necessrio preencher com os dados corretos.

Embora seja possvel criar os Bancos de Dados, tabelas, etc. diretamente pelo cdigo, este processo se torna mais fcil de forma visual, utilizando, por exemplo, o PHPMyAdmin. Pelo gerenciador do WAMP, selecione phpMyAdmin.

Caso ele no abra a pgina correta mude para: http://localhost/phpmyadmin/,caso voc tenha precisado mudar a porta de acesso. 28

Vamos criar o banco de dados e a tabela que tentamos conectar no exemplo acima.

Clique em Criar Ser criado o Banco porm sem nenhuma tabela. Na janela que voc havia feito para se logar ao banco de dados, pressione F5 e veja que agora ele mostra a mensagem de falha na consulta, pois temos o Banco de dados. 29

A barra de navegao do phpMyAdmin oferece diversos recursos para voc administrar seu banco de dados e/ou tabela. Explicando-a: Estrutura: Exibe a relao das tabelas contidas no banco de dados, uma breve estatsticas de cada uma e diversas opes para administr-las. SQL: Exibe um painel para voc executar instrues SQL no seu banco de dados e/ou tabela. Procurar: Um painel para voc realizar uma busca e encontrar determinado registro em sua tabela. Exportar: Exportar os dados do seu banco de dados e/ou tabela em diversos formato como: SQL, Latex, Microsoft Excel 2000, Microsoft Word 2000, CSV for MS Excel, CSV e XML. Voc pode exportar a estrutura somente e/ou os dados. Importar: Inserir dados na tabela. Operaes: Permite-lhe administrar sua tabela com diversas opes como: renomear, mover ou copiar para outro banco de dados, inserir comentrios, modificar o tipo da tabela, reparar, otimizar e diversos

outros recursos. Eliminar: Deleta o banco de dados e/ou tabela. Como apenas um exemplo, vamos determinar que nosso banco de dados curso tenha a tabela Modulos e dentro desta tabela os campos ID, NOME, DESCRICAO E CATEGORIA. No phpMyAdmin, defina o nome da tabela e quantidade de campos. 30

Preencha os campos de cabealho de sua tabela.

Para o campo ID, vamos deix-lo como Auto Incremento e com atributo de chave primria.

31

D um refresh em sua pgina de conexo e veja que agora ele apresenta sucesso.

Na pgina do PHP MyAdmin, adicione algumas informaes, para isso clique no boto Inserir.

32 No final da pgina clique em Executar. Clique na barra no boto visualizar para ver os registros dentro do Banco.

Exibio Para que os registros da consulta sejam exibidos, deve-se usar a funo

mysql_fetch_assoc, que retorna uma matriz com a linha atual e move para a prxima. Para se imprimir todos os resultados de uma query, necessria a construo de uma estrutura de repetio (while) at que a funo mysql_fetch_assoc no retorne nenhum valor (vazio). Para melhorar a apresentao dos resultados, possvel usar tags HTML que incluam os dados dentro de tabelas, por exemplo. <body> <?php $link = mysql_connect("localhost", "root", "") or die("No foi possvel conectar"); mysql_select_db("curso") or die("No foi possvel selecionar o banco de dados"); $consulta = "SELECT * FROM modulos"; $resultado = mysql_query($consulta) or die("Falha na execuo da consulta");

$linha = mysql_fetch_assoc($resultado); $Nome = $linha["NOME"]; $Categoria = $linha["CATEGORIA"]; echo "<b>Nome do Mdulo:</b> $Nome<br>"; 33 echo "<b>Categoria:</b> $Categoria"; ?> </body>

ENTENDENDO UM POUCO SOBRE SQL Para um melhor aproveitamento do curso, vamos entender um pouco sobre o

SQL A instruo SQL mais comumente utilizada para criar um conjunto de registros SELECT, que extrai determinadas colunas de uma ou mais tabelas de bancos de dados para criar um conjunto de registros. A sintaxe bsica da instruo SELECT apresentada abaixo: SELECT NomeDaColuna FROM NomeDaTabela possvel adicionar quebras de linha, guias e outros tipos de espao em branco s instrues para tornar clara a lgica: O SQL ignora todos os tipos de espao em branco. Por exemplo: a seguinte instruo vlida: SELECT nome FROM modulos Abaixo tabela com as palavras-chave mais utilizados pelos comandos SQL SELECT Recupera os registros especificados no banco de dados. INSERT Inclui um novo registro em uma tabela de banco de dados. UPDATE Altera os valores nos registros de banco de dados especificados. DELETE Remove os registros de banco de dados especificados.

As seguintes palavras-chave so utilizadas para refinar as instrues SQL: FROM Denomina a fonte de dados de uma operao. 34 WHERE Define uma ou mais condies para a operao.

ORDER BY Classifica as linhas de conjuntos de registros em uma determinada ordem. GROUP BY Agrupa o conjunto de registros pelos itens especificados, selecionados em uma lista.

Os seguintes operadores especificam condies e executam funes numricas e lgicas: Operador Significado = Igual a LIKE Como (caracteres curingas so aceitos) <> Diferente de NOT LIKE No igual a (curingas so aceitos) < Menor que > Maior que <= Menor ou igual a >= Maior ou igual a AND Ambas as condies devem ser atendidas, como Minas Gerais AND Bahia OR Pelo menos uma das condies deve ser atendida, como Matos OR Mattos

NOT Exclui a condio seguinte, como Paris NOT Frana

Se o item que estiver sendo comparado for texto, coloque-o entre aspas simples, como no exemplo a seguir: WHERE pais = 'Brasil'

O SQL pode ser utilizado para definir os conjuntos de registros de uma pgina. Um conjunto de registros um subconjunto extrado de um banco de dados. Esta a sintaxe SQL bsica para definir as colunas de um conjunto de registros: SELECT NomeDaColuna, NomeDaColuna2, NomeDaColuna3 FROM modulos 35

Para incluir todas as colunas de uma tabela no conjunto de registros, utilize o caractere curinga (*) da seguinte forma: SELECT * FROM NomeDaTabela

Por exemplo: suponha que voc esteja trabalhando com uma tabela denominada funcionrios. Para extrair todas as colunas, digite a seguinte instruo SELECT: SELECT * FROM funcionarios

Suponha que voc necessite apenas dos dados contidos em duas colunas da tabela funcionarios: nas colunas nome e cargo. Para criar um conjunto de registros que contenha apenas os dados destas duas colunas, digite a seguinte instruo SELECT: SELECT nome, cargo

FROM funcionrios

Utilize uma clusula WHERE para limitar o nmero de registros no conjunto de registros. Por exemplo: apenas os funcionarios que ganham mais de R$ 2mil mensais sero includos. Suponha que uma coluna da tabela denominada salrio informa os rendimentos de cada funcionrio. A instruo SELECT teria a seguinte aparncia: SELECT nome, salario FROM funcionarios WHERE salario > 2000

possvel filtrar registros em um banco de dados com base na igualdade do valor de um parmetro em relao ao valor de uma coluna de registros. Suponha que voc decidiu permitir que os usurios pesquisassem o banco de dados por quantidade de cursos de atualizao de cada funcionrio. Siga a lgica a seguir para criar o conjunto de registros resultante da busca:

1. Verifique um registro na tabela do banco de dados. 2. Se o valor na coluna "quantidade_cursos" do registro for igual a 36 quantidade enviada pelo usurio, inclua esse registro no conjunto de registros resultante da busca. 3. Verifique o prximo registro da tabela.

A lgica pode ser expressa com a seguinte clusula WHERE: WHERE NomeDaColuna = ValorDoParamentro ValorDoParametro uma varivel SQL que contm um parmetro de busca. Em um aplicativo para a Web, o usurio normalmente fornece esse parmetro utilizando um formulrio HTML.

Esta consulta ao banco de dados poderia ser expressa inteiramente na linguagem SQL, da seguinte forma: SELECT nome FROM funcionarios WHERE quantidade_cursos = 'NomeDaVariavel'

A instruo SQL localiza todos os registros na tabela de funcionarios que contenham a quantidade de cursos igual quela encontrada na varivel especificada. Por exemplo: se o usurio especificar a quantidade de certificados como 4, a instruo SQL dever gerar o seguinte conjunto de registros:

Marcos 4 Maria 4 Ronaldo 4 Beth 4

possvel filtrar registros em um banco de dados com base na semelhana do valor de um parmetro em relao ao valor de uma coluna de registros. A utilizao da semelhana em vez da igualdade permite aos usurios uma maior flexibilidade ao especificar o valor desses parmetros. Por exemplo: as palavras da busca no necessitam distinguir maisculas de minsculas. Se o usurio digitar "curitiba" e a coluna da tabela contiver o valor "Curitiba", a 37 correspondncia ser estabelecida. Alm disso, a semelhana possibilita o uso de caracteres curinga para que os usurios possam fazer buscas de partes de palavras e tambm em ordem alfabtica. Por exemplo: se o usurio digitar "m" e a coluna da tabela contiver os valores "Cuiab", "Curitiba" e "Curitibanos", ser possvel utilizar um caractere curinga na instruo SQL para que as trs correspondncias sejam estabelecidas.

O caractere curinga padro o sinal de percentagem (%): WHERE sobrenome LIKE 'Mc%'

Suponha que voc decidiu permitir que os usurios pesquisem o banco de dados por sobrenome. Siga a lgica a seguir para criar o conjunto de registros resultante da busca:

1. Verifique um registro na tabela do banco de dados. 2. Se o valor na coluna "sobrenome" do registro contiver um valor semelhante ao que o usurio enviou, inclua esse registro no conjunto de registros resultante da busca. 3. Verifique o prximo registro da tabela.

A lgica pode ser expressa com a seguinte clusula WHERE: WHERE NomeDaColuna LIKE ValorDoParametro

ValorDoParametro uma varivel SQL que contm um parmetro de busca. Em um aplicativo para a Web, o usurio normalmente fornece esse parmetro utilizando um formulrio HTML.

Esta consulta ao banco de dados poderia ser expressa inteiramente na linguagem SQL, da seguinte forma: SELECT nome, sobrenome, idade, cursos FROM funcionarios WHERE sobrenome LIKE 'NomeDaVariavel' 38

Para que os usurios possam executar buscas utilizando partes de palavras, combine a varivel com um caractere curinga. O caractere curinga da SQL utilizado nesse caso o sinal de percentagem (%). Por exemplo: WHERE sobrenome LIKE 'NomeDaVariavel%'

Por exemplo: se o usurio digitar o parmetro de busca "s", todos os registros contendo sobrenomes iniciados com a letra "f" sero includos no conjunto de registros, conforme mostrado abaixo:

Marcos Furlan 04 Maria

Furlan 04 Ronaldo Franca 02 Os registros de um banco de dados podem ser filtrados estabelecendo-se que um valor da coluna de registros pertena a uma faixa limitada por dois valores de parmetros. Suponha que voc decidiu permitir que os usurios pesquisassem o banco de dados por uma faixa de datas. Siga a lgica a seguir para criar o conjunto de registros resultante da busca:

1. Verifique um registro na tabela do banco de dados. 2. Se o valor na coluna "data" do registro se encontrar entre dois valores de data enviados pelo usurio, inclua esse registro no conjunto de registros resultante da busca. 3. Verifique o prximo registro da tabela.

A lgica pode ser expressa com a seguinte clusula WHERE: WHERE NomeDaColuna BETWEEN ValorDoParamentro AND ValorDoParamentro2

ValorDoParametro e ValorDoParamentro2 so variveis SQL que contm um

parmetro de busca. Em um aplicativo para a Web, o usurio normalmente 39 fornece esse parmetro utilizando um formulrio HTML.

Esta a maneira de expressar em SQL esse tipo de consulta ao banco de dados: SELECT nome, sobrenome, data_nascimento FROM funcionarios WHERE data_nascimento BETWEEN 'NomeDaVariavel' AND 'NomeDaVariavel2'

Por exemplo: se o usurio digitar os parmetros "01/05/66" e "30/06/1995", todos os funcionrios que nasceram a partir "01/05/66" at 30/06/1995" sero includos no conjunto de registros, como mostrado abaixo: Marcos Furlan 30/04/73 Beth Oliveira 12/05/1992

Esta seo descreve como incluir registros no conjunto de registros resultante da busca com base em uma combinao de condies de busca. Combine as

condies na linguagem SQL utilizando os operadores lgicos AND, OR e NOT.

Se desejar que todas as condies sejam verdadeiras (true) para um registro includo no conjunto de registros, utilize o operador AND da seguinte forma: WHERE gols LIKE 'NomeDaVariavel' AND time LIKE 'NomeDaVariavel2'

Se desejar que qualquer uma das condies seja verdadeira (true) para um registro no conjunto de registros, utilize o operador OR da seguinte forma: WHERE gols LIKE 'NomeDaVariavel' OR time LIKE 'NomeDaVariavel2'

Se desejar que uma condio seja verdadeira (true), mas no outra, utilize o operador NOT da seguinte forma: WHERE gols LIKE 'NomeDaVariavel' AND NOT time LIKE 'NomeDaVariavel2'

40 Utilize os parnteses para agrupar as condies de busca: WHERE (nome LIKE 'NomeDaVariavel' AND time = 'NomeDaVariavel2') OR data_nascimento BETWEEN 'NomeDaVariavel3' AND 'NomeDaVariavel4'

Utilize a clusula ORDER BY para ordenar os registros do conjunto de registros. Por exemplo: suponha que deseja ordenar os registros do conjunto de registros de acordo com a renda do funcionrio, da mais baixa para a mais alta. No SQL, ordene os registros da seguinte forma: SELECT nome, sobrenome, salario FROM funcionarios ORDER BY salario

Como padro, a clusula ORDER BY ordena os registros na ordem ascendente (1, 2, 3... ou A, B, C...). Se desejar classific-los na ordem descendente, da renda mais alta para a mais baixa, utilize a palavra-chave DESC da seguinte forma: ORDER BY salario DESC Unindo Tabelas possvel utilizar uma nica instruo SELECT para recuperar dados de uma ou mais tabelas de um banco de dados. Esta instruo une as tabelas e retorna um nico conjunto de registros que contm dados selecionados em cada tabela.

Por exemplo: um determinado banco de dados contm uma tabela com os dados pessoais dos funcionarios e outra tabela contm os convnios que a empresa possui. Para criar um catlogo de jogadores com os respectivos nomes, sobrenomes e quando estes foram artilheiro, necessrio recuperar informaes das duas tabelas simultaneamente.

Para isso, crie uma unio especificando todas as tabelas a serem includas e como se relacionam. Por exemplo: SELECT nome, sobrenome, convenios, data_nascimento_convenio FROM funcionarios, convenios 41 WHERE funcionarios.funcionarios_id = convenios.convenios_id

A primeira linha especifica as colunas a serem recuperadas. As duas primeiras colunas, nome, sobrenome, constam na tabela funcionarios, enquanto que a quarta, data_nascimento_convenio est contida apenas na tabela convenio.

A segunda linha especifica as duas tabelas das quais os dados sero recuperados, funcionarios e convenios.

A ltima linha especifica os registros a serem unidos e recuperados nas duas tabelas. Cada tabela contm uma coluna com dados nicos e exclusivos de cada jogador como: funcionario_id (na tabela funcionario, esta coluna a chave primria). A clusula WHERE compara o valor de funcionario_id de uma tabela com esse mesmo valor em outra tabela. Quando uma correspondncia for encontrada, todos os campos do registro na tabela funcionarios sero unidos a todos os campos do registro na tabela convenios. A utilizao de uma sintaxe de unio um pouco diferente poder ser mais conveniente em alguns sistemas de banco de dados. Por exemplo: a seguinte instruo SQL utiliza as palavras-chave SQL INNER JOIN...ON para obter os mesmos resultados que o exemplo anterior: SELECT nome, sobrenome, convenios, data_nascimento_convenio FROM funcionarios INNER JOIN convenios ON funcionarios.funcionarios_id = convenios.convenios_id

CONECTANDO AO BANCO DE DADOS PELO DREAMWEAVER Para que isto seja possvel preciso inicialmente que o Dreamweaver, trabalhe com tecnologia servidor. Crie uma pasta em seu servidor para que possamos ligar o Dreamweaver a ela. 42

Clique em Dreamweaver site

Preencha os dados com o nome de seu site e pasta de origem. 43

44

45

46

47

Clique no menu Window e chame o painel Server Behaviors.

Clique na Guia DataBases, depois clique na opo MySQL Connection 48 Configure a conexo da seguinte forma:

Clique no boto select para selecionar o banco de dados

Clique em Test

Observe agora o painel DataBases 49

Voc pode observar tambm que o Dreamweaver cria uma pasta chamada Connections e dentro desta pasta ele vai criar um arquivo de configurao com a nossa conexo. SISTEMA DE CADASTRO SIMPLES Vamos criar um sistema de cadastro simples com auxilio do Dreamweaver. Crie uma pasta chamada cadastro dentro da pasta PHP.

Vamos criar um novo site direcionando para esta pasta.

Na primeira tela coloque 50

Clique em Next 51

52

53

54

Clique no boto Test URL

Criando o banco de dados no phpMyAdmin Abra o phpMyAdmin para configurarmos o nosso Banco de Dados de cadastro. 55

Vamos criar um novo banco de dados chamado cadastro.

56

Precisamos agora criar a tabela de cadastro em nosso Banco de Dados, vou cham-la tambm de cadastro com 3 campos.

Clique em Executar. Vamos inserir os seguintes campos: 1. cad_id responsvel pela identificao individual de cada cadastro 2. cad_nome responsvel pelo armazenamento do nome do cadastrado 3. cad_email responsvel pelo armazenamento do e-mail do cadastrado Colocamos o tipo (Type) de dados para o campo cad_id, smallint com 5 caracteres. Isto significa que nosso sistema pode comportar mais de 65.000 cadastros. Quando selecionamos o atributo (Atributtes) UNSIGNED, estamos garantindo que a numerao gerada ser a partir do zero e no incluir 57 nmeros negativos. Em Extra, ao marcarmos a opo auto_increment (auto_incremento), estamos definindo que o banco de dados gerar automaticamente, uma sequncia de nmeros para cada cadastro. E por fim, selecionamos a opo Primary Key (Chave primria). Esta ao garante a identificao nica e exclusiva em cada linha da tabela. E quanto ao VARCHAR selecionado para os outros dois campos da tabela, significa que podemos inserir at 255 caracteres. Porm, delimitamos para 100 ao nome e 75, ao e-mail.

Clique em salvar.

Criando a conexo do Banco de Dados com o Dreamweaver Para trabalharmos com dados no Dreamweaver usaremos praticamente trs painis: DataBases, Bindings e Server Behaviors. Clique em DataBases e clique no sinal de mais (+) e escolha MySQL Connection. 58

necessrio preencher os dados na prxima tela

Como estamos testando localmente o User name root e a senha em branco, ao testar em seu servidor preciso usar as configuraes que o mesmo te forneceu. Clique em Select para selecionarmos a base de dados a qual vamos nos conectar.

Clique em Test para verificar se a conexo foi efetuada com sucesso. 59

Clique em Ok e depois novamente em OK, observe que foi criada uma pasta chamada Connections em seu projeto, abra esta pasta e abra este arquivo, observe que ele criou toda a estrutura php para conectar-se ao seu Banco de Dados.

Observe tambm no painel Databases a estrutura com a tabela criada.

Criando o formulrio de cadastro no Banco de Dados Crie uma pgina nova PHP e salve-a como index.php. Vamos agora criar o formulrio de cadastro. 60 Existe um recurso no Dreamweaver chamado Record Insertion Form Wizard e, atravs dele, de uma s vez, criaremos o formulrio e os cdigos PHP. Acessemos ento no painel Insert, aba Data, a opo Insert record > Record Insertion Form Wizard.

Na tela que vai aparecer, vamos remover do formulrio o campo ID, pois ele criado automaticamente.

No campo After inserting, go to coloque cad_realizado.php. Mude tambm os Labels dos campos para Nome e E-mail. 61

Clique em OK. Seu formulrio ser criado.

Se quiser pode configurar seu formulrio, como, por exemplo, mudar cores, mudar texto do boto, etc. Precisamos agora criar a pgina de confirmao a pgina cad_realizado.php, Crie um novo arquivo PHP e salve-o com este nome. Adicione um link chamado cadastros e direcione para uma pgina chamada cadastros.php, crie tambm esta pgina. Clique no painel Bindings e escolha RecordSet (Query). 62

D um nome ao seu Recordset.

Clique em OK. 63

Crie neste arquivo uma tabela com 2 linhas e 3 colunas, com largura de 700 px:

Formate-a como for necessrio.

necessrio agora adicionarmos os Recordsets para cada campo na tabela. 64

Para podermos visualizar todos os campos de nosso banco de dados, selecione a linha inteira onde esto os recordsets, depois na ABA Data clique em Repeat Region.

Defina a quantidade de dados a serem mostrados por tela.

Aqui se deve ter um cuidado, mesmo selecionando a linha, o Dreamweaver pode se perder e ao testar sua repetio, ele, adicionar os dados ao lado e no abaixo. 65

Caso isso ocorra abra o cdigo de seu formulrio e mude as linhas do looping para pegar toda a linha.

Edio dos dados cadastrados Vamos criar um novo arquivo PHP com o nome de cad_edicao.php. Atravs do painel Bindings vamos criar um novo Recordset. Defina o campo Filter como cad_id. 66

Clique em Test.

Clique em OK, para verificar o resultado do teste. 67

Clique em OK E vamos criar o formulrio de edio. Clique em Data, Update Record, Record Update Form Wizard.

Configure o seu Record Update. 68

Crie o arquivo res_edicao.php e adicione nele.

Na pagina cadastros.php, insira uma nova coluna, nesta nova coluna adicione uma imagem. 69

Como link nesta imagem adicione: cad_edicao.php?cad_id=<?php echo $row_rel_cadastros['cad_id']; ?>">

Excluso de Registro Crie mais uma coluna ao lado de editar na tabela que existe em cadastro.php e adicione uma imagem para excluso. 70

Em seguida, com a imagem selecionada, coloquemos o link da pgina responsvel pela excluso: excluir.php e em seguida, cliquemos na pastinha ao lado do campo link para fazermos a incluso das instrues do registro.

Na primeira coluna (name), coloquemos a palavra cad_id e na segunda (coluna value), cliquemos no raio para abrir uma nova janela, Dynamic Data e selecionemos o campo cad_id.

71

Clique em Ok, e OK novamente. Aqui tambm ocorre do Dreamweaver se perder na hora de criar o cdigo, verifique se a linha esta da seguinte forma: <td align="center"><a

href="excluir.php?cad_id=<?php echo $row_rel_cadastros['cad_id']; ?>"><img src="excluir.jpg" alt="Excluir" width="34" height="31" border="0" onclick="return confirm('Deseja excluir este cadastro?');" /></a></td>

72

Como se trata de uma ao destrutiva, ou seja, que no h como voltar, conveniente pedir ao usurio que confirme sua atitude de excluir ou no. E esta confirmao faremos utilizando Javascript. Com a imagem selecionada, acesse o menu Modify > Edit TAG, categoria Events > onClick e digitemos a mensagem conforme imagem: 73

Mensagem: return confirm('Deseja excluir este cadastro?');

Esta pendente ainda a pgina excluir.php, para ela vamos proceder da seguinte forma. Crie uma nova pgina PHP. Clique no painel Server Behaviors. Clique no sinal de mais (+) e escolha Delete Record. 74

Configure da seguinte forma

Salve a pgina como excluir.php. Visualize o cdigo da pgina. Localize a linha: $deleteGoTo = "cadastros.php";

Adicione aps o nome do arquivo: $deleteGoTo = "cadastros.php?excluido=sucesso"; 75

Agora na pgina cadastros.php e adicione um pargrafo abaixo de sua tabela e mude para a visualizao de cdigo, adicione o seguinte cdigo: <?php if ((isset($_GET['excluido'])) && ($_GET['excluido']=="sucesso")) { echo "<p><i>Cadastro excludo com sucesso!</i>"; } ?>

Salve todos seus arquivos e teste o sistema de cadastro.

76

Com isso finalizamos um primeiro exemplo, apenas como observao a ideia aqui foi mostrar a parte lgica de com funciona, por isso abrimos mo da parte de design. Com este exemplo finalizamos nosso estudo em PHP, existem inmeros tipos

de aplicao que podemos fazer com o PHP.

FIM

Você também pode gostar