Vous êtes sur la page 1sur 80

PHP + SQL

Abril/ 2012

1
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Sumrio
1. Funcionamento das linguagens Web.......................................................................................4 2. HTML....................................................................................................................................... 7 2.1 Tags bsicas em HTML................................................................................................9 2.2 Estilos......................................................................................................................... 13 2.3 Protocolo HTTP..........................................................................................................14 2.3.1 Client-Side Scripts..........................................................................................14 2.3.2 Server-Side Scripts.........................................................................................14 3. A linguagem PHP.................................................................................................................. 15 3.1 Histria....................................................................................................................... 15 3.2 Funcionamento do PHP na Web.................................................................................16 3.3 Scripts PHP................................................................................................................ 17 3.3.1 Nome das variveis........................................................................................17 3.3.2 Comentrios ...........................................................................................18 3.3.4 Script de exemplo...........................................................................................19 3.3.5 Quebra de linha em PHP................................................................................20 3.3.6 Erros em PHP................................................................................................21 3.3.7 Variveis, constantes e tipos de dados...........................................................22 3.3.8 Operadores Aritmticos..................................................................................26 3.3.9 Constantes.....................................................................................................30 4. Trabalhando com datas e hora em PHP................................................................................35 4.1 Funo Date ( )...........................................................................................................36 4.2 Calculando intervalos entre datas...............................................................................37 4.3 Validando datas.......................................................................................................... 38 4.4 Funo mktime ( ).......................................................................................................39 5. Implementao de estruturas de controle..............................................................................39 5.1 Instrues If................................................................................................................40 5.2 Instruo Else............................................................................................................. 41 5.3 O comando Switch......................................................................................................42 6. Estrutura de controle de repetio.........................................................................................43 6.1 O loop while................................................................................................................44 6.2 O loop do while........................................................................................................... 44 6.3 O loop for.................................................................................................................... 45 6.4 O loop foreach............................................................................................................46 6.5 Interrompendo uma estrutura de controle...................................................................47 6.6 Utilizando laos para criar tabelas em HTML..............................................................48 7. Funes................................................................................................................................. 49 7.1 Parmetros.................................................................................................................50

2
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

7.2 Passagem de parmetros por valor e por referncia..................................................51 7.3 Chamando funes.....................................................................................................52 7.4 Escopo de variveis....................................................................................................53 7.5 Reutilizando arquivos de scripts PHP.........................................................................54 8. Utilizando banco de dados com PHP.....................................................................................55 8.1 Os bancos de dados relacionais.................................................................................56 8.1.1 Tabelas........................................................................................................... 56 8.1.2 Colunas.......................................................................................................... 57 8.1.3 Linhas............................................................................................................. 57 8.1.4 Valores........................................................................................................... 57 8.1.5 Chaves........................................................................................................... 58 8.2 Relacionamentos........................................................................................................59 8.3 Conceitos bsicos para projeo de um banco de dados Web...................................60 9. Linguagem SQL..................................................................................................................... 60 9.1 Criando um banco de dados.......................................................................................61 9.2 Selecionando um banco de dados..............................................................................61 9.3 Criando tabelas...........................................................................................................61 9.4 Inserindo dados nas tabelas do banco de dados........................................................62 9.5 Recuperando dados do banco de dados....................................................................64 9.6 Utilizando operadores AND e OR em instrues SQL................................................66 9.7 Recuperando dados de diversas tabelas....................................................................66 9.8 Recuperando dados e exibindo ordenadamente.........................................................68 9.9 Atualizando registros no banco de dados...................................................................69 9.10 Excluindo registros do banco de dados....................................................................70 10. Acessando o banco de dados MySQL a partir da Web com o PHP.....................................71 10.1 Implementando o script de criao do banco de dados............................................72 10.2 Criando o cdigo HTML para cadastro.....................................................................74 10.3 Direcionando de acordo com o nvel de permisso..................................................76 11. Consideraes Finais.......................................................................................................... 80

3
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

1. Funcionamento das linguagens Web


A Internet nada mais do que uma grande rede de computadores, compartilhando informaes. Para que essas informaes estejam acessveis entre os mesmos, preciso que sejam disponibilizadas de forma que todo e qualquer computador possa interpretar. As linguagens de desenvolvimento para Web possuem uma maneira comum de funcionamento. A figura abaixo ilustra da maneira mais simples possvel, esse funcionamento:

Fig.1 Funcionamento bsico de acesso uma pgina na Internet

4
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Esse sistema consiste em dois objetos: um navegador Web e um servidor Web. Quando uma pgina requisitada na Internet por um computador qualquer, a operao bsica que ocorre a seguinte: O navegador Web envia a solicitao de uma pgina ao servidor. O servidor procura a pgina HTML solicitada e envia de volta para o computador do cliente. O navegador ento utiliza esse cdigo HTML para exibir a pgina. Essa a arquitetura bsica que atende bem a um servidor que fornece pginas estticas ou seja, o navegador requisita uma pgina e ela exibida em seu navegador, sem qualquer entrada de dados por parte usurio. Deve-se usar um programa capaz de interpretar o cdigo HTML da pgina, aplicar sua formatao ao documento e exibir o resultado. Este programa chamado de browser ou navegador. Os navegadores mais conhecidos so o Mozilla Firefox, Internet Explorer, Opera e Netscape. Para que seja possvel uma interao entre o usurio e o sistema necessria uma arquitetura diferente e mais complexa, como mostrado na figura abaixo:

5
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Fig.2 - Computador envia uma requisio ao servidor que acessa o banco de dados

O navegador Web envia a solicitao de uma pgina para o servidor, possivelmente com dados de entrada do usurio. O servidor Web recebe essa solicitao e passa para o mecanismo de PHP para o processamento. O mecanismo de PHP analisa o cdigo de entrada conhecida como script. Dentro desse cdigo, pode ser que haja uma necessidade de salvar ou recuperar dados atravs de consultas. Com isso, aberta uma conexo com o banco de dados, e est consulta enviada.

6
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

O servidor de banco de dados analisa essa consulta e retorna uma resposta ao mecanismo PHP. O mecanismo PHP termina a execuo do script e retorna para o servidor uma pgina HTML. O servidor Web retorna a pgina para o navegador Web, que exibe a pgina para o usurio. Esse tipo de arquitetura conhecido como dinmica, visto que, os resultados mostrados no navegador podem depender dos dados de entrada do usurio. o funcionamento bsico de qualquer pgina na internet, e este ser bem detalhado no decorrer desta apostila. Normalmente o servidor Web, o mecanismo de PHP e o sistema gerenciador de banco de dados, executam na mesma mquina.

2. HTML
A linguagem HTML (HyperText Markup Language) uma linguagem de marcao de hipertextos, e no de programao, portantos as pginas criadas para a internet que utilizam somente HTML so estticas. Sua principal funo diz ao browser tudo sobre o contedo e a estrutura de uma pgina na internet. Assim como em outras linguagens, os comandos tem sintaxe prpria, e seguem algumas regras:

Possuem tags quem aparecem entre sinais de menor que (<) e maior que (>); Geralmente estas tags so utilizadas as pares sendo que a tag de finalizao de um comando qualquer possui uma barra (/). Todo documento HTML fica contido entre as tags <html> e </html> Possui 4 tags bsicas: <html> <head> <title> <body>

7
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Para uma melhor compreenso, observe o exemplo abaixo:


<html> <head> <title>Exemplo de cdigo HTML</title> <head> <body> <p>Esse o corpo da pgina na Internet</p> </body> </html>

Esse um cdigo HTML bsico. As tags esto em negrito e cada uma tem uma funo diferente na estrutura do documento. Qualquer cdigo HTML pode ser feito no editor de texto mais simples e funcionar desde que as estruturas sejam bem definidas e o documento seja salvo com extenso .html . Alguns pontos importantes no cdigo acima: - Todo cdigo HTML deve iniciar com a tag <html>. Essa tag diz ao browser que o documento realmente um HTML - A tag <head> informa o cabealho da pgina. Juntamente com ela, aparece a tag <title> que d o ttulo que aparece no browser em cada pgina na internet. - A tag <body> d incio ao corpo da pgina, que pode ser entendido como sendo toda a rea da pgina abaixo das barras de ferramentas e busca do browser. - A tag <p> inicia um pargrafo simples de texto e sempre importante utiliz-la dentro do corpo do documento Opcionalmente, as tags podem possuir atributos, que podem ser entendidos como caractersticas. Por exemplo, pode-se adicionar uma cor de fundo numa pgina utilizando um atributo no elemento <body>.

8
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

<body background-color=green> So vrios os atributos possveis para cada tag HTML, e cada um possui uma funo especfica. As tags HTML devem ser abertas e depois de editar o contedo devem ser fechadas, utilizando-se au barra /. Dessa forma, o browser saber interpretar onde comeou determinado elemento e onde ele terminou. Por exemplo, a tag <html> indica o browser que iniciar um cdigo HTML e a tag </html> indica que esse cdigo terminou. Dessa forma, todo o contedo entre a abertura o fechamento da tag, possui suas propriedades. Existem casos especiais de tags que no possuem contedo, e por isso existe apenas uma tag para abertura e fechamento.

2.1 Tags bsicas em HTML


Alm das tags descritas acima, a linguagem HTML possui muitas outras, cada uma com propriedades especficas. Abaixo so listadas algumas delas: <h1> : Define um ttulo para o documento com um fonte grande. Existem tambm as tags <h2>, <h3>, <h4>, <h5>, <h6>. Esses valores definem o tamanho da fonte, sendo que <h1> o tamanho mximo e <h6> o tamanho mnimo. Exemplo (Execute em seu navegador):
<h1> Sejam bem-vindos ao curso de PHP e MySql </h1> <h2> Sejam bem-vindos ao curso de PHP e MySql </h2>

9
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

<h3> Sejam bem-vindos ao curso de PHP e MySql </h3> ... <h6> Sejam bem-vindos ao curso de PHP e MySql </h6>

<a> : uma das tags mais importantes em HTML. Com ela, pode-se especificar um link para outra pgina. Ela possui um atributo chamado href que especifica para qual pgina o usurio ser levado ao clicar no link. Exemplo (Execute em seu navegador) :
<a href = pagina2.html> Clique aqui </a>

Ao executar este exemplo, o usurio ao clicar no link ser direcionado uma pgina com erro, pois a pgina2 no existe. Este um recurso muito importante e muito utilizado no HTML, pois um site constitudo de vrias pginas e o usurio precisa navegar entre essas pginas. <img /> : Esta uma tag utilizada para carregar imagens na pgina HTML. Ela possui atributos importantes. Um deles "src" que o caminho (diretrio ou pasta) no qual a imagem se encontra. Outro atributo importante "alt" que uma descrio textual, que aparece no lugar da imagem caso o navegador no possa carreg-la completamente. Um detalhe importante nessa tag que ela no possui contedo, ou seja, a tag aberta e fechada entre os sinais < >. Exemplo (Teste em seu navegador com uma imagem qualquer):
<img src="imagem.jpg" alt = "Imagem de teste" />

10
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Lembre de certificar-se de que a imagem esteja na pasta do arquivo html principal. Caso no esteja, especifique o caminho entre as pastas. <br />: uma tag responsvel por uma quebra de linha no texto. Se torna muito importante no fato da estruturao da pgina. uma tag sem contedo. <ul> <ol> <li>: So responsveis pela criao de listas. A tag <ul> cria uma lista no ordenada, enquanto <ol> cria uma lista ordenada. Para definir os itens da lista so utilizadas tags <li>. Exemplo (Execute em seu navegador. Teste listas ordenadas e no ordenadas):
<ul> <li> Item 1 </li> <li> Item 2 </li> <li> Item 3 </li> </ul>

<table>: Cria uma tabela na pgina. Seus principais atributos so: width : especifica a largura da tabela (em pixels ou porcentagem). height: especifica a altura da tabela da mesma forma que a largura. border: espessura da borda da tabela Para especificar melhor esta tabela, usa-se tags <tr> para adicionar uma linha e <td> para adicionar uma coluna. Os principais atributos destas tags so: cellspacing: espao entre as clulas da tabela

11
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

cellpadding: enchimento entre as clulas Exemplo (Execute em seu navegador criando vrias linhas e adicionando dados diferentes):
<table> <tr> <td> Linha 1 coluna 1 </td> <td> Linha 1 coluna 2 </td> </tr> <tr> <td> Linha 2 coluna 1 </td> <td> Linha 2 coluna 2 </td> </tr> </table>

<form>: Cria um formulrio que pode possuir vrias caractersticas diferentes como caixas de textos, caixas de seleo, reas de texto, botes de envio de informaes. Os principais atributos de um formulrio so: action: indica qual o script ir processar as informaes enviadas pelo formulrio method: indica o mtodo de envio das informaes (Post ou Get). O mtodo GET usado para enviar pequenas quantidades de informao, visto que sua capacidade de envio limitada. Utiliza a barra de endereos do navegador para enviar informaes para o servidor. . o mtodo de envio mais rpido e tambm o menos seguro, pois as informaes enviadas atravs deste mtodo ficam explicitamente visveis na barra de endereos.

12
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Neste mtodo a URL do site assume o seguinte aspecto: http://www.sitequalquer.com?informao1=valor1&informao2=valor2 O sinal ? indica que o fim do endereo do site e o incio das informaes que sero enviadas atravs do mtodo GET. Informao1 e Informao2 so as variveis, que contm os valores que sero enviados para o servidor Valor1 e valor2 so os valores. O mtodo POST envia informaes de forma mais segura possibilitando o uso de recursos de ssegurana, porm ele mais lento. Exemplo (Execute procurando conhecer as vrias funcionalidades de um formulrio):
<form action=processa.php method=post> <input type=text> Nome </input> <input type=text> Email </input> <input type=textarea> Comentarios </input> <input type=submit value=Enviar /input> </form>

2.2 Estilos
A linguagem HTML define apenas a estrutura de uma pgina Web. Entretanto, as pginas ficam sem vida, sem estilos. Para contornar isso, existem propriedades que so definidas em uma outra linguagem, denominada CSS. Esse assunto foge do escopo desta apostila, mas algo essencial no desenvolvimento de um web site.

13
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

As propriedades das CSS definem estilos como cor de fundo, largura do corpo da pgina, margens, enchimentos, cor do texto e muitas outras coisas. Tendo em vista as vrias aplicaes de CSS, recomendvel que a conhea para que a pgina possua uma apresentao bem mais agradvel.

2.3 Protocolo HTTP


O protocolo HTTP (Hypertext Transfer Protocol) basicamente um conjunto de regras que definem a comunicao na Web, Quando um endereo digitado no navegador, este faz uma requisio ao servidor HTTP e em seguida recebe uma resposta, que geralmente uma pgina no formato HTML. Assim que o arquivo enviado a conexo encerrada. Isso faz com que cada pgina gere uma nova requisio independente. Existem duas maneiras, pelas quais os scripts so executados. So eles:

2.3.1 Client-Side Scripts As aes so executadas no browser, sem utilizar o servidor. So muito teis em processamento de formulrios, no qual se evita um possvel trfego na rede. A linguagem Java script utiliza esse tipo de execuo e hoje uma das mais utilizadas em sites dinmicos.

2.3.2 Server-Side Scripts

14
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

So scripts executados diretamente no servidor e responsveis pela criao de pginas em tempo real. Esse tipo de script muito utilizado em sistemas de busca. Neste caso existe um modelo de pgina de respostas, que alterada e exibida dependendo dos dados inseridos pelo usurio. O PHP uma linguagem Server-Side, ou seja, os scripts so executados no servidor. Depois do script finalizado, uma pgina HTML enviada para o navegador que fez a solicitao e exibida.

3. A linguagem PHP
A linguagem HTML no o suficiente para atender s vrias funcionalidades da maioria dos sites. Afinal, ela s cria pginas estticas, sem que o usurio possa inserir e armazenar informaes no servidor. Dessa forma, existem outras linguagens que abordam esses aspectos, como o caso do PHP.

3.1 Histria
A linguagem de programao PHP, foi criada em 1995 por Ramus Lerdorf. Essa primeira verso chamava-se PHP/FI (Personal Home Page Tools-Form Interpreter) e aos poucos as pessoas passaram a contribuir com o projeto. Estima-se que em 1996 PHP/FI estava sendo usado por cerca de 15.000 sites pelo mundo e em 1997, Ramus lanou a verso 2 do PHP/FI, que contava com scripts melhorados. Nessa fase, cerca de 50.000 sites utilizavam PHP.

15
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Com o aumento das contribuies, o PHP sofreu mudanas no desenvolvimento. O interpretador foi reescrito por Zeev Suraski e Andi Gutmans, e esse novo interpretador foi a base para a verso 3, chamada de PHP: Hypertext Preproocessor Em 2000 foi lanado o PHP 4, que trouxe muitas novidades para os programadores de PHP. Uma das mais importantes foi o suporte a sesses, til para identificar o cliente que solicitou determinada informao. Em 2002, foi lanada a verso 4.3.0 que trouxe algumas novidades como suporta a streams ( camada de entrada e sada de arquivos e de rede), CLI (Interface de Linha de Comando) e a biblioteca GD (tratamento de imagens). Depois disso, surgiu a demanda por funcionalidades orientada a objetos fazendo com o que o PHP tivesse uma nova verso. A verso PHP 5 foi lanada em 2004 trazendo como principal novidade a orientao a objetos. Alm disso, ela trouxe funcionalidades muito importantes como SOAP, MySQLi e vrias outras extenses importantes. Atualmente o PHP est na verso 5.4.0 e continua crescendo e evoluindo muito a cada verso afim de atender as novas necessidades dos desenvolvedores PHP.

3.2 Funcionamento do PHP na Web


Programar para Web consiste em receber dados do usurio, envi-los para o servidor onde eles sero processados e em seguida receber uma resposta dinmica. Ou seja, o processamento pelo qual ser passado o script PHP vai depender, na maioria das vezes, dos dados fornecidos pelo usurio. Essa a grande utilidade do PHP, dinamicidade.

16
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

3.3 Scripts PHP


O termo script utilizado para designar uma sequencia de comandos e tarefas a serem executadas. Grande parte dos efeitos criados em pginas web so realizados a partir destes scripts. Um script PHP nada mais do que uma sequencia de comandos, que rodam no servidor de uma aplicao Web. Esse script implementado no cdigo da pgina e executado no servidor atravs de mecanismos prprios. Para determinar como o interpretador identifica esse script, so utilizadas as seguintes tags: <?php Comandos; ?> <? Comandos; ?> <script language=php> Comandos; </script> Todas as tags listadas acima so validas para se criar um script PHP, porm as mais utilizadas so a duas primeiras. Quando o interpretador encontra uma dessas tags, ele prepara o mecanismo que executar o cdigo, retornando alguma sada se necessrio.

3.3.1 Nome das variveis

17
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Em PHP, todas as variveis devem ser iniciadas pelo caractere $ e por uma string iniciada por letra ou pelo caractere _. uma linguagem CASE SENSITIVE, ou seja, ela diferencia letras minsculas de maisculas. Assim sendo, as variveis $nome e $NOME so diferentes. O PHP define o tipo da varivel no momento em que ela declarada. Isso diferencia um pouco de outras linguagens de programao, nas quais o programador deve informar o tipo da varivel previamente.

3.3.2 Comentrios Assim como em muitas outras linguagens, o PHP possui dois tipos de comentrios. Quando o mecanismo que executa o php, encontra um comentrio, ele passa a ignorar tudo dentro dele. Comentrios de uma linha : So adicionados com os caracters // e marcam o comentrio at o final da linha de cdigo. Exemplo:
<?php $a = string1; $b = 12; ?> // $a recebe a primeira string // $b recebe o valor 12

Comentrios de vrias linhas : So delimitados no incio pelos caracteres /* e finalizados com */ . So muito teis quando se deseja comentar grandes trechos de cdigos. Exemplo:

18
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

<?php echo teste; ?> A funo echo utilizada acima serve para imprimir na tela uma mensagem ou uma varivel. Ela muito utilizada, pois quase sempre se deseja enviar mensagens na tela do usurio. 3.3.4 Script de exemplo Abaixo temos um script PHP, que serve para ilustrar algumas das coisas j faladas at agora. importante observar que o script misturado com o cdigo HTML. Na maioria dos casos isso que acontece, mas sempre importante deixar o cdigo legvel. <html> <head> <title> <?php echo Pagina principal ?></title> </head> <body> <?php $a = Sejam bem-vindos ao Curso de PHP e MySql; echo $a; $b=40; $c=3; $d= $c * $b; echo O resultado da multiplicao foi + $d; /*Este um comentrio com mais de uma linha */

19
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

?> </body> </html> Considerando a ltima impresso do cdigo acima, o operador + serve para juntar a string anterior com um valor numrico, passado como uma varivel. Ao executar esse cdigo no navegador, pode-se visualizar seu cdigo fonte. No entanto, s aparecer o HTML da pgina, pois o script PHP executado no servidor e somente o resultado enviado para o browser.

3.3.5 Quebra de linha em PHP Em HTML, foi visto que para quebrar uma linha em uma pgina basta usarmos a tag <br />. Porm, se tivermos muitas linhas de cdigo PHP que necessitem de quebras de linha, fica invivel mesclar o HTML com o PHP. Por isso, em PHP existe uma funo especial para realizar esse procedimento chamada nl2br (o que pode ser entendido como new line to br). Exemplo: <?php $texto = $_POST[texto]; pelo mtodo post echo nl2br($texto); tela j com as quebras de linha ?> //Com o uso dessa funo, os dados so exibidos na //Recebe um texto enviado por um formulrio

20
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

3.3.6 Erros em PHP Os scripts PHP geram erros, principalmente para iniciantes, e importante que se tenha uma noo de onde se encontra esse erro e mais ainda, uma noo de como consert-lo. Muitos sites so construdos, e nem sempre so entregues funcionando perfeitamente. Alis, ocorrem muitos erros quando o sistema j est sendo utilizado. So os chamados erros em tempo de execuo e so mais difceis de ser encontrados, pois no simplesmente uma sintaxe incorreta. Existem algumas funes no PHP que tentam amenizar os efeitos causados por esses erros. O sinal de arroba(@) utilizado precedendo uma expresso em PHP. Se esta expresso gerar um erro, este sinal no permitir que sejam enviadas mensagens de erro do PHP, que so muito confusas para o usurio. O que se pode fazer ento testar se houve o erro e em seguida enviar uma mensagem mais amigvel. O tratamento de erro serve para preparar o script para rodar em qualquer situao, ou se no for possvel, avisar o motivo do erro. Existem validaes simples que podem ser adicionadas ao script para que diversos erros sejam evitados. Abaixo so listadas algumas delas:

file_exists - serve para verificar se um arquivo existe defined - serve para verificar se uma constante foi definida. isset - verifica se uma varivel existe. is_array - verifica se a varivel um array (Arrays sero melhor explicados adiante) is_numeric - verifica se a varivel um nmero ou uma string numrica. is_writable - verifica se pode escrever para o arquivo (writable). version_compare - Compara a verso do php.

21
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Essas funes so extremamente teis. Por exemplo, antes de tentar abrir um arquivo, pode-se verificar se ele existe. Caso no exista, uma mensagem amigvel pode ser exibida ao usurio, ao invs de uma mensagem gerada pelo prprio mecanismo de PHP. Alm disso, pode-se verificar se uma varivel foi definida antes de tentar us-la. So diversas as vantagens do tratamento de erros e fundamental, para um bom script PHP, que essas funes sejam utilizadas sempre.

3.3.7 Variveis, constantes e tipos de dados PHP suporta os seguintes tipos de dados:

Inteiros Ponto flutuante Strings Array Objeto Booleano

Ao declarar uma varivel, o programador no tem a necessidade de especificar esse tipo, pois, diferentemente de algumas linguagens de programao, PHP utiliza checagem de tipos dinmica. Dessa forma, declarando : $a = Uma string qualquer A varivel $a se torna do tipo string. Ao mesmo tempo, fazendo:

22
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

$a = 256 A varivel $a se torna um inteiro. O PHP decide o tipo da varivel em tempo de execuo. possvel converter um tipo de varivel em outro utilizando typecasting (converso de tipos). Existe tambm duas outras funes muito importantes: - settype ( ): Esta funo define o tipo de uma varivel, passando esse tipo em um parmetro em sua chamada. Seu prottipo : settype ($var , $tipo) Dessa forma, o programador pode definir um tipo para uma varivel qualquer. - gettype ( ): Funo que retorna o tipo de uma varivel. Seu prottipo : gettype ($var)

Inteiros Uma varivel inteira possui valores pertencentes ao conjunto dos nmeros

inteiros. Alguns exemplos: $valor = 256 //Inteiro positivo na base decimal $valor = -256 //Inteiro positivo na base decimal $valor = 0x34 //Inteiro na base hexadecimal

Float Uma varivel do tipo float possui valores pertencentes ao conjunto dos nmeros

reais, ou seja, nmeros inteiros e decimais. Alguns exemplos:

23
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

$valor = 12.35 $valor = -134.04

Strings Entende-se por string qualquer cadeia ou sequencia ordenada de caracteres.

Em PHP essas strings possuem duas formas diferentes de representao. So elas: Utilizando aspas simples ( ): dessa maneira, qualquer cadeia de caracteres ou varivel dentro das aspas sero exibidos exatamente do modo que se encontram. Utilizando aspas duplas ( ): dessa maneira, caso exista alguma varivel dentro das aspas, ela ser substituda pelo valor que ela armazena. Para que fique mais claro, acompanhe os exemplos: <?php $valor = 240; echo O valor : $valor; ?> A sada neste exemplo : O valor $valor. Ou seja, a varivel no substituda pelo seu valor, ela escrita da forma que se encontra entre as aspas simples. <?php $valor = 240; echo O valor : $valor; ?> A sada neste exemplo : O valor 240.

24
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Ou seja, neste caso a varivel no impressa da maneira que est realmente escrita entre as aspas. As duas formas de representao de strings so vlidas. O uso de aspas simples ou duplas depende da aplicao. Existem diversas funes que lidam com strings que so muito importantes em PHP e sero mais detalhadas adiante.

Arrays Os arrays (ou vetores) so um tipo de dados muito utilizado para representar listas de valores. Os elementos individuais so acessados por sua posio no array que dada por um ndice. Existem os arrays unidimensionais (vetores) e os arrays multidimensionais (matrizes). Para se ter uma ideia melhor sobre os arryas, o desenho abaixo ilustra a estrutura e os ndices de cada posio.

Array (vetores) 0 1 2 3 4 5 6

As posies do vetor so indexadas a partir do 0. O vetor acima possui 7 posies e cada uma pode armazenar um dado qualquer. Para acessar um dado em determinada posio do vetor, basta utilizar o nome da varivel seguida por [ ], e entre os colchetes informar o ndice que deseja buscar. Exemplo:

25
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

<?php $vetor = array(1,30,32,"teste",12.34); for($i=0;$i<sizeof($vetor);$i++) { echo $vetor[$i]."\n"; } ?> O script acima cria um vetor utilizando a varivel $vetor. Em PHP basta digitar array( ) e inserir os elementos entre parnteses. Observe que inserimos inteiros, strings e floats. Isso possvel pois como j foi comentado, PHP s define o tipo da varivel no momento da declarao e isso vale tambm para posies dos vetores. Em seguida, feito um lao for, que vai de 0 at o tamanho do vetor e imprime cada elemento presente em cada ndice.

Booleano Servem para verificar o valor de expresses, se so falsas (0) ou verdadeiras

(1). So extremamente importantes para verificao de strings vazias, estruturas condicionais, comparaes de valores e tomadas de deciso.

3.3.8 Operadores Aritmticos So operadores responsveis por operaes matemticas, por isso, os operandos devem ser nmeros. Caso contrrio, tero seus valores convertidos em nmeros antes da realizao da operao. Por exemplo, duas strings com valores 3 e 5, se fossem somadas, seus valores passariam de string para integer. Porm, nem

26
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

sempre essa transformao ocorre de forma correta e podem ocorrer erros durante a execuo do script. + * / % Adio Subtrao Multiplicao Diviso Resto da diviso

Operador de string Existe apenas um operador para strings, que o operador de concatenao, ou

seja, de juno entre duas strings, ou entre variveis. . Concatenao

Operador bit a bit

Todas as informaes armazenadas no computador so constitudas de bits (0 ou 1). Esse operador realiza operaes lgicas sobre cada bit individual de um nmero. & | ^ ~ << >> e lgico ou lgico ou exclusivo no (inverso) Deslocamento para esquerda Deslocamento para direita Operadores lgicos Possuem como resultado inteiros representando valores booleanos, ou seja, valores verdadeiros ou falsos.

27
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

! && ||

No (inverso) e lgico ou lgico

Comparao So comparaes feitas entre variveis e retornam valores true (1) ou false (0).

== === != < > <= >=

Igual Exatamente igual a Diferente Menor que Maior que Menor ou igual a Maior ou igual a A diferena entre os operadores == e === pode ser vista pelo exemplo:

$valor = 10; $valor = 10;


if ($letra == $numero) ... if ($letra === $numero) // Avaliado como false // Avaliado como true

28
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Ordem de precedncia Como em operaes matemticas, os operadores de linguagem de programao

como PHP, possuem uma ordem de precedncia. Por exemplo, a expresso 5*4+10 avaliada como 30 realizando primeiramente a multiplicao que deve ser executada primeiro. A tabela abaixo mostra a ordem de precedncia entre os operadores de PHP. Ordem 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 Operador , Or Xor And Print = += -= *= /= .= %= &= |= ^= ~= <<= >>= ?: || && | ^ & == != === !== < <= > >= << >> +-. */% ! ~ ++ -- (int) (double) (string) (array) (object)@

Existem diversos operadores diferentes em PHP, por isso importante conhecer a precedncia de cada um deles para que no ocorram erros difceis de serem encontrados. importante ressaltar que essa precedncia influencia pelo uso de parnteses ( ), colchetes [ ] chaves {}.

29
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

3.3.9 Constantes

Definindo constantes

Constantes so valores que no se alteram durante a execuo de um cdigo. Em PHP, essas constantes so definidas utilizando a funo define. Ela tem o seguinte prottipo. int define (string nome_da_constante, mixed valor); Se a funo for bem sucedida ela retorna o valor true (1). A palavra mixed indica que podem ser definidas variveis de qualquer tipo. Porm, constantes s podem possuir valores escalares, ou seja, arrays por exemplo no podem ser constantes. Exemplo: define (taxa, 6.12); $valor_total = 100.00 + taxa;

Variveis alfanumricas

Existem vrias funes relacionadas a strings e caracteres. Estas funes so muito importantes para facilitar o processo de escrita do cdigo e recuperao de informao enviada pelo usurio. Sero vistas as principais funes, visto que existe uma diversidade muito grande desse tipo de funo.

30
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Formatando strings Frequentemente necessrio manipular strings fornecidas pelo usurio, principalmente em formulrios, antes de utiliz-las. A primeira operao bsica realizada com strings a concatenao, que basicamente une duas strings com o operador ( . ) . Exemplo: $nome = Walter; $sobrenome = Silva; $nome_completo = $nome . . $sobrenome; Neste exemplo, a varivel nome e sobrenome compe o nome completo, utilizando a concatenao do nome, com um espao em branco e em seguida o sobrenome. O primeiro passo na organizao eliminar todo o excesso de espaos em branco da string. O PHP fornece trs funes para esse propsito.

Utilizando trim ( ) A funo trim ( ) elimina todos os espaos em branco do incio e do final da

string e retorna a string resultante. Exemplo: $name = trim($name); $email = trim($email);

31
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Dependendo da aplicao, pode-se utilizar as funes ltrim ( ) e rtrim ( ), que so pequenas variaes da funo trim ( ). A primeira delas elimina somente os espaos inseridos no incio da string (left trim) e a segunda elimina somente os espaos inseridos no final da string (right trim). muito importante utilizar essas funes quando for necessria a comparao entre strings ou armazenamento em banco de dados.

Utilizando strtoupper ( ), strtolower ( ), ucfirst ( ), ucwords ( ) So funes que alteram a caixa de uma string, ou seja, trocam letras

maisculas por minsculas e vice versa. A tabela abaixo exemplifica a utilizao destas funes. Suponha que a string de teste seja Curso de PHP + MySql Funo strtoupper ( ) strtolower ( ) ucfirst ( ) ucwords ( ) Descrio Coloca a string toda em letras Exemplo CURSO DE PHP + MYSQL

maisculas Coloca a string toda em letras curso de php + mysql minsculas Coloca o primeiro caractere da string Curso de php + mysql em letra maiscula Coloca o primeiro caractere de cada Curso De Php + Mysql palavra em letra maiscula

Unindo e dividindo strings Entre as diversas operaes que precisamos fazer com strings, uma das mais

importantes a capacidade de examinar individualmente as partes destas strings. Por

32
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

exemplo, podemos separar todas as palavras de uma frase, ou texto. So inmeras as possibilidades e facilidades que estas funes podem trazer para o programador PHP.

Utilizando explode ( ) e implode ( ) Essa funo aceita uma entrada de string e a divide em partes de acordo com

um separador que passado por parmetro. Seu prottipo : array explode (string separador, string entrada); A funo retorna um array, contendo as vrias partes da string. Exemplo: $email_array = explode (@, email); Essa chamada divide o e-mail do cliente em duas partes: o nome do usurio, armazenado em $email_array[0] e o nome de domnio que armazenado em $email_array [1]. A funo implode ( ), faz o efeito contrrio. Ela recebe um array como parmetro e um unificador. Exemplo: $novo_email = implode (@,$email_array); Os elementos de $email_array so unificados na nova varivel adicionado o caractere @.

Utilizando substr ( )

33
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Essa funo permite o acesso a uma determinada parte de uma string. Ela possui o seguinte prottipo: string substr (string string_de_entrada, int inicio [, int comprimento] ); Os parmetros da funo so a string de entrada, o incio da parte da string que se deseja acessar e por ltimo, um parmetro opcional que determina um comprimento mximo para a substring. Os caracteres [ ] no prottipo de uma funo indicam que esse parmetro opcional. O exemplo abaixo ilustra o uso desta funo: $string = Funes de manipulao de strings $string1 = substr ($string, 3); $string2 = substr ($string, 3, 7); echo $string1; echo $string2; Como resultado, este script retornar es de manipulao de strings como resultado da $string1 e es de como resultado da $string2.

Comparando strings com strcmp ( ) O prottipo para strcmp ( ) : int strcmp (string1, string2); A funo recebe duas strings e as compara. Caso elas sejam iguais, a funo

retorna 0. Se string1 vier depois que string2 na ordem lexicogrfica a funo retorna um nmero maior que 0 e caso contrrio, a funo retorna um nmero menor que 0.

34
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Utilizando strlen ( ) Essa funo retorna o comprimento de uma string. muito til quando se deseja

fazer laos testando cada caractere da string, mas no previamente conhecido o seu tamanho. Seu prottipo : int strlen (string string_de_entrada);

Outras funes de strings Existem diversas outras funes de strings, cada uma com uma funcionalidade.

Abaixo so descritas algumas que no foram mencionadas.

strpos ( ) : Retorna a posio da primeira ocorrncia de uma string dentro de outra string mais longa. strrpos ( ): Quase idntica a strpos ( ) exceto pelo fato que retorna a posio da ltima ocorrncia da string. str_replace ( ): Substitui todas as ocorrncias de uma string, por uma nova, em uma string mais longa. strstr ( ): Pode ser utilizada para encontrar uma correspondncia de uma string dentro de outra string mais longa. stristr ( ): Quase idntica strstr ( ) porm no faz distino entre maisculas e minsculas.

4. Trabalhando com datas e hora em PHP

35
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Frequentemente, no desenvolvimento Web, surge a necessidade de se trabalhar com datas e horas. Quando um formulrio preenchido, geralmente, enviado para o banco de dados ou sistema de arquivos, a data e a hora que o usurio enviou os dados. Isso muito til para que se tenha um controle maior do sistema desenvolvido. Um caso tpico um sistema de inscries com vagas limitadas. As vagas vo sendo preenchidas pelos usurios que se cadastram primeiro, e quem no se consegue realizar o cadastro, pelo fato das vagas terem sido preenchidas, o usurio fica numa lista de espera. O sistema ento deve ter o controle de quando (em qual data e hora) os usurios se inscreveram a fim de comparar cada valor e reservar as vagas da maneira correta. Nesta parte da apostila aprenderemos como lidar com datas e horas realizando comparaes e manipulando esses dados essenciais em sistemas Web.

4.1 Funo Date ( )


A funo date funciona de uma forma muito simples. Simplesmente especificado o formato que se deseja obter uma data. Seu prottiopo : string date (string formato [,int timestamp]); Ela serve para formatar uma data. O segundo argumento opcional da funo deve estar no formato timestamp, que representa o nmero de segundos desde 01/01/1970. O formato deve ser fornecido pelos caracteres que sero substitudos pela data. Esses caracteres podem ser: a - "am" ou "pm"

36
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

d - dia do ms, sempre com 2 dgitos: "01" a "31" h - hora, formato de 12 horas "01" a "12" H - hora, formato de 24 horas "00" a "23" i - minutos, sempre com 2 dgitos: "00" a "59" L - boolean indicando se o ano bissexto: "0" ou "1" m - ms, sempre com 2 dgitos: "01" a "12" s - segundos, sempre com 2 dgitos: "00" a "59" t - nmero de dias do ms: "28" a "31" w - dia da semana: "0" (Domingo) a "6" (Sbado) Y - ano com 4 dgitos: "1999" y - ano com 2 dgitos: "99" z - dia do ano: "0" a "365" Como exemplos, temos: echo date(d/m/Y H:i:s); echo date(m/y h:i:s); As sadas destas funes dependem da hora em que o script foi executado. O formato da sada da primeira instruo echo idntico : 20/03/2012 15:30:12 . A segunda instruo echo tem a sada: 03/2012 03:30:12.

4.2 Calculando intervalos entre datas


Calcular intervalos entre datas pode ser muito til em vrias aplicaes. O processo que ser apresentado agora faz usos de uma funo criada pelo usurio, ou seja,no basta somente chamar uma funo como foi feito at agora, ser necessrio criar o seu cdigo e retornar um valor.

37
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Vamos definir a seguinte funo: <?php function intervalo ($inicio, $fim) { $dataInicio = strtotime($inicio); $dataFim = strtotime($fim); $intervalo = $dataFim - $dataInicio return date('d', $intervalo); } echo intervalo ('2012-12-10','2012-12-30'). " dias"; ?> A funo calcula o nmero de dias entre uma data e outra que so passadas por parmetro para a funo intervalo. importante que as datas sejam passadas neste formato YYYY-mm-dd. A funo retorna atravs da funo date ( ), o nmero de dias entre as duas datas.

4.3 Validando datas


A funo checkdate ( ) utilizada para verificar se uma data vlida. Isso especialmente til para verificar datas de entradas de usurio. Seu prottipo : int checkdate (int month, int day, int year); A funo verifica se o ano est entre 0 e 32.767, se o ms esta entre 1 e 12 e se o dia existe nesse ms particular. A funo leva em considerao os horrios de vero. Exemplo:

38
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

checkdate(9,18,1972) retorna true, enquanto checkdate(9,31,2000) retorna false.

4.4 Funo mktime ( )


Esta funo retorna o timestamp Unix correspondente para os dados passados por parmetro que um longo nmero inteiro contendo o nmero de segundos entre 1 de Janeiro de 1970 e o tempo especificado. Seu prottipo : int mktime ([ int $hora [, int $minuto [, int $second [, int $mes [, int $dia [, int $ano [, int $is_dst ]]]]]]] ) Os parmetros da funo so horas, minutes, segundos, ms, dia e is_dst. Este ltimo diz respeito ao horrio de vero.

5. Implementao de estruturas de controle


As estruturas de controle so responsveis por controlar o fluxo de execuo de um programa. Normalmente, os programas possuem acesso sequencial, ou seja, da esquerda para a direita e de cima para baixo. No entanto, em muitos momentos o programador se v na necessidade de realizar certas partes do cdigo, somente se

39
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

uma condio for satisfeita. Para isso existem as estruturas IF, else que so estruturas condicionais. Outro ponto importante diz respeito repetio de trechos de cdigo. As estruturas de repetio como for, while, do while, controlam essas repeties. Estruturas condicionais Os scripts sempre devem ser capazes de tomar decises em relao a algum dado ou condio. Vamos ver como funcionam as estruturas de desvios condicionais.

5.1 Instrues If
Essa instruo utiliza uma condio. Se a condio, que fica entre parnteses, a ser testada for true, o bloco de cdigo seguinte ser executado. Por exemplo, em um formulrio de e-mail, o usurio pode se esquecer de digitar seu nome no remetente e isso algo que no deve ser feito. Por isso, em PHP pode-se verificar se esse dado foi digitado e em seguida alertar o usurio, caso ocorra algum problema. O cdigo abaixo de uma pgina que recebe os dados pelo mtodo post e faz a validao dos dados com instrues if simples. <?php $email = $_POST[email]; $nome = $_POST[nome]; $assunto = $_POST[assunto]; if($email == ) { echo Erro: Seu e-mail deve ser informado; exit(0); } if($nome == ) {

40
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

echo Erro: Seu nome deve ser informado; exit (0); } ?> O cdigo faz a validao dos dados, da maneira mais simples possvel, apenas verificando se o usurio deixou de digitar um dos dois campos obrigatrios. As chaves depois da condio if indicam o incio e o fim de um bloco de cdigo que ser executado caso essa condio seja satisfeita.

5.2 Instruo Else


As instrues if resolvem situaes do tipo: Se ( condio) ento //Cdigo a ser executado Porm, em muitas situaes temos vrias opes diferentes. A instruo else trabalha junto com a instruo if da seguinte maneira: Se (condio) ento //Cdigo a ser executado Seno //Outro trecho a ser executado Uma instruo else pode ser utilizada por exemplo, em um sistema de cadastro que direciona cada tipo de usurio para determinada parte do site, como feito no cdigo abaixo: <?php $user = $_POST[usuario]; If($user == admin) {

41
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

//Redireciona para a rea de administradores } else { //Redireciona para a rea de usurios } ?> As instrues if e else podem ser utilizadas quantas vezes for necessrio.

5.3 O comando Switch


Vimos que as instrues if e else servem para validar dados e verificar se certas condies so satisfeitas. Quase todo script em PHP utilizar um destes comandos, pois um site dinmico dificilmente no deve tomar decises. Porm, em um script onde diversos valores de uma varivel devem ser testados, essas estruturas tornam o cdigo muito grande e confuso. Imagine uma fbrica que produz 5 produtos diferentes e cada um destes possui um cdigo nico, que vai de 1 a 5. O sistema de controle exige que, de acordo com o cdigo de cada produto, estes devem ser redirecionados para uma rea diferente. Se essa estrutura for feita utilizando estruturas if e else teramos um cdigo muito grande. Se esse nmero aumentasse, a situao ficaria ainda pior. O cdigo abaixo faz isso utilizando uma estrutura de comando switch: <?php switch ($codigo){ case 1 : $area_produto = $area1; break; case 2 :

42
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

$area_produto = $area2; break; case 3 : $area_produto = $area3; break; case 4 : $area_produto = $area4; break; case 5 : $area_produto = $area5; break; default : $area_produto = $area0; break; ?> Quando um caso da instruo switch for ativado, o PHP executar o cdigo at encontrar uma instruo break. O ltimo valor default selecionado sempre que nenhum dos valores definidos for selecionado.

6. Estrutura de controle de repetio


Um tipo de estrutura de controle que o computador utiliza quase o tempo todo a repetio. Diversas partes de um programa devem ser executadas da mesma maneira, repetidas vezes. Nesse caso, as repeties (loops) auxiliam muito, facilitando a implementao destas partes. Veremos os loops mais comuns: while, do while, for e foreach.

43
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

6.1 O loop while


o tipo de loop mais simples. Ele testa uma condio, que vem entre parnteses, e enquanto essa condio for satisfeita, o bloco de cdigo delimitado pelas chaves ser executado. O loop while geralmente utilizado quando no se sabe o nmero de repeties que devem ser feitas no bloco de cdigo. Exemplo: $valor = 10; while ($valor >= 0) { echo $valor. ; $valor--; } Neste exemplo temos o loop while executando enquanto o valor for maior ou igual a 0. importante notar que a varivel $valor decrementada a cada iterao do lao. Com isso, garante-se que o lao terminar, caso contrrio, teramos um loop infinito.

6.2 O loop do while Essa estrutura funciona basicamente da mesma forma que a instruo while. A nica diferena que o bloco de cdigo dentro das chaves ser executado pelo menos uma vez. A estrutura geral de uma instruo do..while :

44
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

do expresso while(condio); A condio s testada no final, fazendo que a expresso seja executada ao menos uma vez. Exemplo: $num = 100; do { echo $num; } while ($num<=0); O exemplo acima ilustra bem a diferena entre o while e o loop do..while. A instruo echo $num ser executada pelo menos uma vez. Somente no final a comparao feita e o lao encerrado.

6.3 O loop for


Esta uma estrutura que permite que o lao seja escrito de uma forma mais compacta. Basicamente, um loop for tem as seguintes caractersticas. for(expresso1;condio;expresso2) { //Bloco de cdigo }

45
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

expresso1: Normalmente aqui configurado o valor inicial de um contador.

condio: Esta condio testada antes de cada iterao. Caso ela retorna true, o bloco de

cdigo executado novamente, caso contrrio o lao encerrado. expresso2: executada no final de cada iterao e normalmente ela ajusta o valor de um contador.

O exemplo abaixo ilustra o uso do loop for. Ele imprime todos os nmeros pares entre 0 e 100 em ordem decrescente. Exemplo: $inicio = 100; for($inicio ; $inicio>=0 ; $inicio--){ if($inicio%2 == 0 ) echo $inicio; }

6.4 O loop foreach


um tipo de loop especialmente projetado para o uso com arrays. Veja um exemplo do seu uso. Exemplo $valores = array(10,23,30,12,32,37); foreach ($valores as $item) {

46
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

echo $item; } A ideia deste lao muito simples. A cada iterao, a varivel $item recebe um valor do array $valores e o imprime. O foreach permite o caminhamento no vetor, sem que isso necessite ser explicitamente declarado pelo programado.

6.5 Interrompendo uma estrutura de controle


Em vrios momentos e sob determinadas condies, pode ser necessrio interromper a execuo de um loop. Isso pode ser feito utilizando-se a instruo break, do mesmo modo como foi utilizada no comando switch. Se quiser pular para a prxima iterao do loop pode-se utilizar a instruo continue. At mesmo um script PHP pode ter sua execuo finalizada. A instruo responsvel por isso exit. Veja o exemplo: <?php if ($_POST[nome] == ) { echo O nome no pode estar vazio; exit; } ?> Dessa forma, ao perceber que os dados no foram preenchidos corretamente, o script pode ser finalizado.

47
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

6.6 Utilizando laos para criar tabelas em HTML


Em linguagens Web, uma utilizao muito interessante para os loops a criao de tabelas. Em vrios momentos, precisamos criar tabelas com dezenas ou centenas de linhas. Escrever todo esse cdigo em HTML simplesmente invivel. O exemplo abaixo cria uma tabela com 10 linhas e 3 colunas: Exemplo: <html> <body> <table cellpadding="2" cellspacing="2" border="2"> <?php for ($i=0;$i<10;$i++) { ?> <tr> <td>Linha: <?php echo $i; ?> Coluna: 1</td> <td>Linha: <?php echo $i; ?> Coluna: 2</td> <td>Linha: <?php echo $i; ?> Coluna: 3</td> </tr> <?php } ?> </table> </body> </html> Neste cdigo podemos perceber vrias coisas importantes. A primeira delas a mistura de cdigo PHP com cdigo HTML. Inicialmente, usa-se os delimitadores

48
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

indicando o cdigo PHP somente para iniciar o loop for e abrir as chaves. No final do script necessrio abrir novamente os delimitadores de PHP para que a chave seja fechada. Tudo que estiver entre as chaves ser executado 10 vezes. Neste caso, existe a criao de uma linha com 3 colunas. Isso feito repetidamente e no final criada uma tabela com as 10 linhas e 3 colunas. Esta no a nica maneira de se construir tabelas grandes com loops em PHP e HTML, porm uma maneira bem simples e que funciona muito bem.

7. Funes
comum em sistemas Web, e em qualquer outro sistema, o uso e funes, visando reutilizao de cdigo. Existem trechos de cdigo dos programas que so utilizados vrias vezes. Esses trechos podem ser inseridos em pequenos mdulos, que so as funes, e reutilizados onde for preciso. As funes trazem grandes vantagens. Alm da reutilizao, o cdigo que utiliza funes se torna mais consistente, fcil de manuteno e mais confivel. A sintaxe bsica para um funo : function nome_da_funcao (arg1,arg2,arg3,...){ //Comandos return valor_a_ser_retornado; } recomendado que toda funo esteja bem documentada para facilitar a leitura e compreenso do cdigo. funo do programador cuidar do tipo de retorno de uma

49
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

funo. Pode-se, por exemplo, atribuir a uma varivel este valor de retorno. Como a definio de tipos em PHP dinmica, isso pode gerar erros se no for bem monitorado. Toda funo pode retornar um valor qualquer, porm isso no regra geral. No possvel que uma funo retorne mais de um valor, mas permitido que sejam retornados arrays ou listas.

7.1 Parmetros
Um parmetro ou argumento, so valores que podem ser passados para as funes, para que estas realizem alguma operao com esses valores. Eles devem ser declarados logo aps o nome da funo e entre os parnteses. Assim, na sintaxe bsica mostrada acima, os parmetros so arg1, arg2, arg3. Podem ser passados quantos parmetros forem necessrios. Exemplo:

function verificaDados($nome,$email) { $mensagem = ; if($nome == ) $mensagem = O nome no foi preenchido; if($email == ) $mensagem = O email no foi preenchido; return $mensagem; } Poderamos utilizar a funo acima em vrios formulrios diferentes. Quando o usurio clicar em enviar os dados, pode ser feita essa verificao muito simples, se os dados foram preenchidos e retornar a mensagem correta.

50
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

7.2 Passagem de parmetros por valor e por referncia


Quando passamos um parmetro para uma funo, temos a opo de alterar ou no, a varivel que foi passada no momento da chamada da funo. Quando se passa por valor, cria-se uma cpia da varivel que foi passada, fazendo com que seu valor no se altere originalmente. Para entendermos melhor, vejamos o exemplo: function alteraValor ($valor) { $valor = 250; echo O valor dentro da funo . $valor; } $valor = 100; alteraValor($valor); echo O valor .$valor; chamada da funo no se altera */ No exemplo vemos que, apesar da funo alterar o valor dentro do seu bloco de cdigo, o valor original no alterado fora da funo Por outro lado, em algumas situaes pode-se tornar necessrio que este valor seja alterado dentro de uma funo. Para isso utiliza-se a passagem de parmetro por referncia, na qual toda a alterao que a funo realizar no valor passado como parmetro afetar a varivel que o contm. A passagem por referncia pode ser feita de duas maneiras. Na prpria funo ou apenas na chamada da funo. Nos dois casos utiliza-se o smbolo &. Veremos um exemplo pra ilustrar a diferena entre essas duas maneiras. /* O valor depois da //O valor original 100

51
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Exemplo: function alteraValor (&$num1,$num2) { $num1 +=5; $num2 +=5; } $a = 1; $b = !; alteraValor ($a,$b); echo Valor de a: .$a. Valor de b: . $b; alteraValor ($a,&$b); echo Valor de a: .$a. Valor de b: . $b; Na primeira impresso na tela, teremos somente o valor de $a alterado para 5, pois foi passado por referncia. J na segunda impresso, temos os dois valores alterados. O valor de $a na funo j espera uma varivel sendo passada por referncia, e o valor de $b, foi passado utilizando o modificado &;

7.3 Chamando funes


As funes podem ser chamadas em qualquer parte da pgina de um site. Para realizar essa chamada basta escrever: nome_da_funao ( );

52
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Todo o cdigo que estiver dentro das chaves dessa funo sero executados. Se a funo necessitar de algum parmetro, estes devem ser informados tambm no momento da chamada da funo. Por exemplo, para chamar a funo do exemplo anterior, considerando que os dados foram passados pelo mtodo POST , temos a chamada: verificaDados($_POST[nome],$_POST[email]); Existem vrias funes j definidas no PHP, bastando assim cham-las da maneira correta. J fizemos isso em exemplos anteriores com as funes gettype( ), settype ( ) , vrias funes de string e arrays. Portanto, possvel utilizar estas funes j prontas, ou criar novas funes de acordo com as necessidades do programador.

7.4 Escopo de variveis


O escopo de uma varivel controla onde essa varivel pode ser vista e utilizada em um script. As regas de PHP para o escopo so as seguintes:

Variveis declaradas dentro de uma funo so chamadas de variveis locais. Estas variveis s so visveis e utilizveis dentro desta funo. Variveis declaradas fora de funes, so chamadas de variveis globais. Estas variveis so utilizadas e visveis por todo o script, mesmo dentro de funes. A utilizao das instrues include ( ) e require ( ) no afetam o escopo, valendo assim as mesmas regras descritas acima. Uma varivel local a uma funo, pode ter seu escopo global, utilizando-se a palavra chave global.

53
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

7.5 Reutilizando arquivos de scripts PHP


Em PHP existem duas funes muito importantes: require ( ) e include ( ). Elas permitem que arquivos de script PHP sejam recarregados em qualquer pgina, tornando esses scripts reutilizveis e melhorando a estrutura do cdigo. require ( ) Vamos entender o uso dessa funo por meio de um exemplo: O script abaixo foi salvo em um arquivo chamado reutilizavel.php

<?php echo Este cdigo se encontra em um arquivo de script reutilizvel; ?> O prximo cdigo um arquivo chamado index.php <?php echo Este o arquivo principal; require (reutilizavel.php); echo Este o fim do arquivo principal; ?> Ao executar o arquivo ndex.php teremos a seguinte sada: Este o arquivo principal Este cdigo se encontra em um arquivo de script reutilizvel Este o fim do arquivo principal

54
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Dessa forma, quando a instruo require ( ) executada, ela substituda pelo contedo do arquivo solicitado. Essa instruo muito importante em casos de sistemas grandes ou sites que possuem vrias pginas parecidas. Se estas pginas possuem o mesmo cabealho, o mesmo rodap ou uma mesma barra lateral, o cdigo para estes elementos podem ser escritos em um arquivo .inc (arquivo require ou include). Ao construir cada pgina, basta utilizar a instruo require( ) e obter o contedo de cada arquivo.

include( ) Esta instruo quase idntica a require ( ) . A nica diferena entre elas que

require ( ) retorna um erro fatal quando falha, enquanto include( ) retorna apenas um aviso.

require_once ( ) e include_once ( ) So duas variaes de require( ) e include( ) cujo objetivo garantir que um

arquivo possa ser includo apenas uma vez (once). Para os exemplos com cabealhos, rodaps, essas funes no so muito teis. Elas se tornam teis quando se comea a utilizar bibliotecas de funes. Utilizando estas construes, existe uma proteo para que o programador no inclua acidentalmente a mesma biblioteca duas vezes.

8. Utilizando banco de dados com PHP


Comearemos agora a ver a integrao entre PHP e o banco de dados MySQL. Primeiramente veremos conceitos bsicos de banco de dados, tais como vantagens de sua utilizao, linguagem e configurao.

55
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Armazenar e acessar informaes em um banco de dados no uma tarefa difcil. Existem os sistemas de gerenciamento de banco de dados (SGBD) que permitem ao programador uma grande facilidade na manipulao dos dados. Algumas das principais vantagens na utilizao desse sistema esto descritas abaixo:

Os SGBDs fornecem acesso rpido aos dados armazenados Os SGBDs podem ser facilmente consultados para extrair conjuntos de dados e apresent-los da maneira que for necessria. Os SGBDs tem sistemas predefinidos de privilgios aumentando assim a segurana dos dados armazenados.

8.1 Os bancos de dados relacionais


o tipo de banco de dados mais utilizado. Eles so construdos atravs de uma grande base terica em lgebra relacional. Mas no necessrio entender essa teoria para criar e utilizar um banco de dados relacional. O mais importante so alguns conceitos que sero descritos abaixo:

8.1.1 Tabelas Os bancos de dados relacionais so compostos de relaes chamadas de tabelas. Como o nome sugere, so tabelas de dados, semelhantes a uma planilha eletrnica, compostas por linhas e colunas. Exemplo:

56
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Alunos id_aluno 1 2 3 nome Fred Paulo Andr matrcula 3452341-3 3452245-6 3452232-5 curso Matemtica Engenharia Eltrica Histria

Os elementos da tabela so: - Nome (Alunos) - Colunas, cada uma representando um diferente tipo de informao - Linhas que correspondem a alunos individuais. 8.1.2 Colunas Cada coluna na tabela possui um nome nico e possui dados diferentes. Esses dados podem tambm ser de tipos diferentes, como na tabela anterior, onde a coluna id_aluno possui dado8.1.2 Colunass do tipo inteiro enquanto a coluna nome formada por strings. As colunas podem tambm ser chamadas de campos ou atributos.

8.1.3 Linhas So chamadas de registros e cada uma representa um aluno diferente, no caso da tabela anterior. 8.1.4 Valores Cada linha consiste em um conjunto de valores individuais que correspondem s colunas. Cada valor tem o tipo correspondente ao tipo de dados especificado na coluna.

57
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

8.1.5 Chaves O campo id_aluno chamado de chave primria. Essa chave funciona como um identificador nico para cada aluno. O nome do aluno no servir como identificador nico visto que vrios alunos podem ter o mesmo nome. Uma chave tambm pode consistir de vrias colunas. Por exemplo, poderamos utilizar como chave primria os campos id_aluno e matricula. Os bancos de dados em sua maioria consistem de vrias tabelas e utilizam a chave como referncia de uma tabela para outra. Adicionamos uma outra tabela ao banco de dados, que consiste nas disciplinas cursadas por cada aluno. Exemplo:

Alunos id_aluno 1 2 3 nome Fred Paulo Andr matrcula 3452341-3 3452245-6 3452232-5 curso Matemtica Engenharia Eltrica Histria

Disciplinas id_disciplina 1 2 3 4 5 id_aluno 1 3 2 2 1 disciplina Clculo Diferencial e Integral I Histria Moderna Fsica Experimental Programao de Computadores Geometria Analtica

58
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Cada linha na tabela de disciplinas representa uma nica disciplina cursada por um nico aluno. Para saber qual aluno est cursando determinada disciplina, basta olhar o campo id_aluno. Quando o campo id_aluno aparece na tabela Alunos, ele referenciado como chave primria. Porm, quando ele aparece em outra tabela, com a qual ele tem alguma relao, referenciado como chave estrangeira.

8.2 Relacionamentos
As chaves estrangeiras representam um relacionamento entre duas tabelas. No exemplo anterior, o campo id_aluno representa a chave estrangeira na tabela de disciplinas. Em bancos de dados relacionais existem trs tipos bsicos de relacionamento.

Relacionamento de um para um: Esse tipo de relacionamento indica que h um de cada item do relacionamento. Expressam relaes nas quais um item em uma tabela tem apenas um item correspondente em outra tabela. Por exemplo, se tivssemos duas tabelas, chamadas Alunos e Matriculas. Cada aluno possui somente uma matrcula e cada matrcula, por sua vez, pertence a somente esse aluno.

Relacionamento de um para muitos: Neste relacionamento, uma linha de uma tabela vinculada a muitas linhas de outra tabela. Temos como exemplo duas tabelas Alunos e Livros. Elas representam uma relao de alunos com livros alugados por estes na biblioteca. Um aluno pode estar relacionado a vrios livros simultaneamente.

59
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Relacionamento de muitos para muitos: Neste relacionamento, muitas linhas de uma tabela esto relacionadas com muitas linhas de outra tabela. Como exemplo temos duas tabelas Alunos e Disciplinas. Um aluno pode cursar vrias disciplinas e cada disciplina pode ser cursada por diversos alunos diferentes.

8.3 Conceitos bsicos para projeo de um banco de dados Web


Quando um banco de dados projetado, normalmente ele modela itens do mundo real armazenando informaes sobre esses objetos e relacionamentos. Geralmente, cada classe de objetos do mundo real que modelado precisar de uma nova tabela. Outra tcnica muito importante na projeo de um banco de dados evitar a redundncia de dados. Se isso no for evitado, consequentemente haver um desperdcio grande de espao e tambm aumentar o tempo de busca no banco de dados. Em cada atributo de cada linha, devem ser armazenadas somente uma informao. Esse conceito denominado valores atmicos de coluna. Por exemplo, em um endereo, deve-se desmembrar se possvel, o campo endereo em campos como rua, nmero, cidade, CEP.

9. Linguagem SQL
SQL significa Structured Query Language e a linguagem padro para acessar sistemas de gerenciamento de bancos de dados relacionais. utilizada em vrios sistemas de bancos de dados como, por exemplo, o MySQL.

60
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Atravs de comandos SQL, so construdos os bancos de dados, alm da insero, remoo e atualizao de informaes. Para que seja possvel criar um banco de dados necessrio um servidor, que pode ser um servidor local. Utilizaremos nesta apostila o PhpMyAdmin que uma ferramenta que lida com o banco de dados, de uma forma visual muito simples.

9.1 Criando um banco de dados


Para criar um banco de dados, utilizamos um comando SQL muito simples: create database nome_do_banco;

9.2 Selecionando um banco de dados


Quando se tem um sistema grande, so criados vrios bancos de dados, por alguma razo. Por isso, se torna necessrio selecionar o banco de dados com o qual se deseja trabalhar. Para fazer isso, utiliza-se o seguinte comando: use database nome_do_banco; Sempre que for trabalhar com o banco de dados, deve antes selecion-lo desta forma.

9.3 Criando tabelas


O prximo passo na configurao do banco de dados crias as tabelas. Para isso existe o comando SQL exemplificado abaixo:

61
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

create table nome_da_tabela (colunas); Voc deve substituir nome_da_tabela por um nome da tabela que deseja criar e colunas por uma lista de nomes de colunas separados por vrgula. Alm do nome das colunas, necessrio especificar o tipo de dados que essa coluna armazenar. Como exemplo, temos abaixo a criao de uma tabela Cliente: create table cliente (id_cliente int not null auto_increment primary key, nome char(40) not null, cpf char (15) not null, cidade char (50) not null ); Vrios pontos so importantes nesse comando. Primeiramente, criamos uma tabela com nome cliente. A primeira coluna o identificador nico do cliente, que um inteiro no nulo. Alm disso, ele possui o atributo auto_increment que faz com que o sistema se encarregue de incrementar seus valores. preciso especificar tambm que este campo ser a chave primria. Nas outras colunas temos dados do tipo char( ) que so cadeias de caracteres. O tamanho mximo de armazenamento dessas cadeias especificado entre os parnteses. Com estes comandos bsicos, podemos criar nosso banco de dados e acrescentar vrias tabelas. Utilizando o PhpMyAdmin pode-se criar esses comandos de forma grfica, sem a necessidade da criao de comandos SQL explicitamente.

9.4 Inserindo dados nas tabelas do banco de dados

62
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Para que qualquer banco de dados se torne til, necessrio que dados sejam inseridos nele. Para isto utiliza-se a instruo INSERT de SQL. A forma normal dessa instruo : insert into nome_da_tabela (coluna1,coluna2,...,colunaN) values (valor1,valor2,...,valorN); Primeiro so listadas as colunas da tabela e em seguida os valores que preenchero essas colunas. muito importante que a ordem em que as colunas esto listadas, sejam as mesmas dos valores que deseja adicionar. Entretanto, a ordem em que as colunas so listadas no importa, desde que o valor correspondente seja o valor correto. Existe uma variao para essa instruo que a seguinte: insert into nome_da_tabela values (valor1,valor2,...,valorN); Ou seja, a listagem das colunas no obrigatria. Quando a instruo utilizada dessa forma, essencial que os valores sejam listados na ordem em que aparecem na estrutura do banco de dados. possvel tambm inserir vrias linhas em uma tabela de uma s vez. Cada linha deve estar no prprio conjunto de parnteses e cada conjunto destes deve estar separado por vrgula. Como exemplo, criaremos um banco de dados chamado Livros. Em seguida adicionaremos uma tabela esse banco e vamos inserir valores, para aplicar os conceitos j vistos anteriormente: As instrues SQL so: create database Livros;

63
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

use Livros; create table lista_livros (id_livro int not null auto_increment primary key, titulo varchar (50) not null, cdigo int not null. autor varchar(50), preo float(4,2) ); insert into lista_livros values (null,Java 2 Professional,672, Michal Morgan, 34.99), (null,Instalando Debian GNU/Linux, 763,Thomas Down,24.99), (null,Aprendendo GIMP em 24 horas,450,Thomas Schenk,31.20); O banco de dados Livros foi criado e adicionamos uma tabela chamada lista_livros. Nesta tabela criamos uma chave primria denominada id_livro, e outras colunas como titulo, cdigo, autor e preo. No tipo float, especificado o nmero de dgitos do valor (4) e o nmero de dgitos depois da vrgula(2). Nesse exemplo poderamos representar nmeros de 00,00 ate 99,99. A insero foi feita de uma maneira mais prtica, sem listar as colunas, e criando vrias linhas de uma vez.

9.5 Recuperando dados do banco de dados


Uma das instrues mais importantes de SQL SELECT. Ela responsvel por buscar dados no banco de uma forma muito eficiente e simples para o programador. A sintaxe bsica dessa instruo :

64
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

select itens from nome_da_tabela [condies]; A instruo SELECT permite filtrar de vrias maneiras as buscas por dados, por isso, descrevemos as principais formas de se fazer isso. Utilizando o banco de dados que criamos anteriormente, vamos buscar por todos os ttulos de livros cadastrados no banco com a seguinte instruo: select titulo from lista_livros; Estamos selecionando os ttulos de todos os livros que se encontra nesta tabela. Se quisermos recuperar todas as informaes sobre todos os livros poderamos utilizar o caractere * , para especificar que queremos todos os itens. Dessa forma, a instruo ficaria desta forma: select * from lista_livros;

Filtrando os dados da instruo SELECT

Na maioria das aplicaes, no necessitamos de recuperar todos os itens de todos os elementos cadastrados no banco de dados. Para isso, existem opes de filtragem, e entre todas, a mais importante a clusula WHERE. Vejamos um exemplo: select titulo from lista_livros where preo = 34.99; Essa instruo diz ao sistema de gerenciamento de banco de dados para selecionar o ttulo dos livros da tabela lista_livros ONDE o preo igual a 34.99. O sistema ento faz a busca baseando-se nestas informaes e retorna o ttulo do livro:

65
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Java 2 Professional A clusula WHERE muito importante pois ela especifica o critrio utilizado para selecionar linhas particulares. O sinal de igual utilizado, pode ser substitudo por qualquer operador de comparao, visto anteriormente, como por exemplo, maior que, menor que e todos os outros.

9.6 Utilizando operadores AND e OR em instrues SQL


Para combinarmos diferentes critrios de busca, podemos utilizar os operadores AND e OR, juntamente com uma clusula WHERE, com um propsito especfico. Por exemplo, se quisermos listar os livros do autor Thomas Down com preo menor que 30.00. A instruo SQL seria: select titulo from lista_livros where autor = Thomas Down AND preo < 30.00; O operador OU funciona da mesma forma. Se estivermos procurando livros cadastrados dos autores Michael Morgan e Thomas Schenk, utilizaramos a seguinte instruo: select titulo from lista_livros where autor = Thomas Schenk OR autor = Michal Morgan;

9.7 Recuperando dados de diversas tabelas

66
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Frequentemente, para responder a uma pergunta a partir do banco de dados, se torna necessrio utilizar dados de mais de uma tabela. As tabelas abaixo esto em um banco de dados que armazena informaes de clientes de uma loja de informtica e seus pedidos. So criadas duas tabelas clientes e pedidos, conforme ilustrado abaixo: clientes id_cliente 1 2 3 pedidos id_pedido 1 2 3 4 5 6 id_cliente 2 3 1 2 1 1 pedido Mouse ptico Notebook Pen Drive Fonte de Alimentao Carto de Memria Mochila para Notebook nome Fred Antnio Carlos Tiago endereo Avenida Central, n 34 Rua Jos Guimares, n762 Rua So Paulo, n 134

Cada cliente pode possuir vrios pedidos, por isso existe a chave estrangeira id_cliente na tabela de pedidos. Imagine ento uma situao na qual o banco de dados precise retornar todos os pedidos feitos por Fred. Para isso se tornar possvel, preciso fazer uma juno de tabelas (JOIN). Isso significa simplesmente unir duas ou mais tabelas para seguir os relacionamentos entre os dados. A instruo SQL que retorna todos os pedidos feitos por Fred pode ser expressada da seguinte maneira: select pedidos.pedidos from clientes, pedidos where clientes.nome = Fred and

67
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

clientes.id_cliente = pedidos.id_pedido; A sada dessa consulta : ---------------------Pen Drive Carto de Memria Mochila para Notebook -----------------------------Como so necessrias informaes das duas tabelas, precisamos primeiramente list-las no incio da consulta. J na clusula WHERE, especificamos qual atributo de qual tabela estamos nos referenciando. Por exemplo: clientes.nome especifica que estamos pegando o nome da tabela clientes. Da mesma forma: clientes.id_cliente = pedidos.id_pedidos compara o id_cliente, presente na tabela clientes com o id_pedidos, da tabela de pedidos. Para unir mais de duas tabelas, deve-se proceder de maneira anloga, sempre citando as tabelas que iro fazer parte da consulta e especificar os atributos de cada tabela.

9.8 Recuperando dados e exibindo ordenadamente


Para exibir linhas recuperadas por uma consulta SQL em uma ordem particular, pode-se utilizar a clusula ORDER BY da instruo SELECT. Esse recurso muito til, quando se deseja apresentar dados em ordem crescente ou decrescente, facilitando a legibilidade. Utilizando a tabela clientes do tpico anterior, vamos retornar os dados dos clientes em ordem alfabtica pelo nome:

68
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

select * from clientes order by name; Essa consulta retorna o seguinte resultado -------------------------------------------------------------------------------1 2 3 Fred Avenida Central, n 34 Antnio Carlos Rua Jos Guimares, n 762 Tiago Rua So Paulo, n 134

-----------------------------------------------------------------------------------Os dados foram ordenados em ordem crescente em relao ao nome. Podemos orden-los de forma decrescente, apenas acrescentando a palavra-chave DESC. A consulta seria a seguinte. select * from clientes order by name desc; Existem vrias aplicaes para DESC. Por exemplo, em um site de notcias, podemos listar as notcias ordenadas por datas, nas quais as mais recentes aparecerem primeiro. Em sites comerciais, possvel ordenar os produtos pelo menor ou maior preo, mais vendidos ou mais requisitados.

9.9 Atualizando registros no banco de dados


Alm de inserir e recuperar dados, frequentemente queremos alter-los. Como vrias modificaes podem ocorrem no banco de dados, depois de construdo, existe em SQL uma instruo simples para atualizar dados denominada UPDATE. A forma normal desta instruo :

69
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

update nome_da_tabela set coluna1 = expressao1, coluna2 = expressao2,... where condies; Com essa instruo, podemos atualizar a tabela nome_da_tabela e definindo valores para cada coluna que se deseja alterar. Pode-se limitar UPDATE para linhas particulares com uma clusula WHERE. Como exemplo, vamos supor que Fred tenha mudado de endereo. Agora seus dados precisam ser atualizados no banco de dados da loja. A instruo SQL seria a seguinte: update clientes set endereco =novo_endereco where id_cliente = 1;

9.10 Excluindo registros do banco de dados


Excluir linhas do banco de dados muito simples com a instruo DELETE.Sua forma bsica : delete from nome_da_tabela where condies; preciso ter muito cuidado com essa instruo, pois ela exclui os dados permanentemente. Se a instruo for escrita na forma: delete from nome_da_tabela;

70
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Todas as linhas da tabela sero excludas. Por isso necessrio muita ateno ao criar este comando. A clusula WHERE serve, mais uma vez, para filtrar os resultados a serem deletados Para excluir uma tabela inteira, utiliza-se o comando: drop table nome_da_tabela; Esta consulta exclui todas as linhas da tabela e a prpria tabela. Temos a opo tambm de excluir o bando de dados inteiro. Nesse ponto preciso maior cuidado, pois todos os dados sero perdidos. A instruo : drop database nome_do_banco;

10. Acessando o banco de dados MySQL a partir da Web com o PHP


At agora vimos vrias instrues utilizadas para realizar consultas no banco de dados MySQL. Existem vrios conceitos ainda relacionados a banco de dados e muitos outros tipos de consultas. Agora utilizaremos o PHP para criar, acessar, adicionar e remover dados. No incio da apostila foi apresentado o modelo no qual funcionam os sistemas Web. As pginas estticas no utilizam banco de dados pois sua funo apenas apresentar informaes nas pginas. J nas pginas interativas, o usurio pode realizar pesquisas, inserir e remover dados.

71
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

O mecanismo de PHP faz acesso ao banco de dados, quando isso for necessrio. Em um sistema de uma empresa existem os administradores e os usurios. Os administradores possuem acesso partes restritas do sistema, como realizao de alteraes no sistema, excluso de usurios cadastrados, acesso ao banco de dados e outras funcionalidades especficas. J os usurios comuns, se cadastram no sistema e so direcionados para as reas que possuem permisso de acesso. O sistema utiliza um banco de dados que possuem cadastrados os administradores e os usurios. Criaremos este banco e o chamaremos de banco_de_usuarios. Criaremos ento uma tabela neste banco, chamada tabela_de_cadastro que armazenar um identificador nico, o login, a senha e o nvel de permisso (usurio ou admin).

A estrutura bsica do banco a seguinte: tabela_de_cadastro id login senha nvel_permissao

10.1 Implementando o script de criao do banco de dados


Para criar o banco de dados utilizando PHP, seguiremos o exemplo seguinte que ser detalhado em seguida: <?php $db = mysql_connect("localhost","login","senha") or die

72
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

(mysql_error()); $query = "create database banco_de_usuarios "; mysql_query($query); ?> Crie este arquivo e o salve como cria_banco.php. Na primeira linha do script temos a conexo com o servidor. A instruo mysql_connect ( ) implementada no PHP e funciona para realizar a conexo. Os parmetros so, o nome do servidor, o login cadastrado e a senha para ter acesso ao banco. O comando or die serve para exibir uma mensagem caso a conexo no tenha obtido sucesso. Em seguida, cria-se uma query, ou uma instruo SQL, que cria o banco de dados, da mesma forma como vimos anteriormente. Por fim, o comando mysql_query ( ) executa a query, descrita na varivel $query. Com este pequeno script, conseguimos estabelecer a conexo com o sistema de banco de dados e j criamos o banco banco_de_usuarios. Em outro arquivo PHP adicionaremos a criao da tabela de cadastro, de uma forma bem simples. <?php include("Untitled-1.php"); mysql_select_db("banco_de_usuarios"); $query = "create table tabela_de_cadastro (id int not null auto_increment primary key, login char(30) not null, senha char (25) not null, nivel_permissao char (10) not null) "; mysql_query($query);

73
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

?> Salve este arquivo como cria_tabela.php. necessrio que o banco de dados e a tabela j estejam criados antes de executar esse arquivo. A primeira coisa a ser executada neste script a incluso do arquivo cria_banco.php para que fosse possvel selecionar este banco e adicionar uma tabela. A instruo mysql_select_db ( ) seleciona o banco que queremos usar. Possui o mesmo efeito que a instruo USE, vista anteriormente. Em seguida foi utilizada uma query SQL da mesma forma que utilizamos para a criao do banco de dados, s alterando o comando, que desta vez foi para criar uma tabela com quatro colunas. Finalizando, o comando mysql_query ( ) executa a query criada e a nossa tabela j est inclusa no banco de dados.

10.2 Criando o cdigo HTML para cadastro


Para que um usurio do sistema se cadastre, preciso uma pequena interface, na qual ele insere seus dados, e estes dados so cadastrados no sistema. Criaremos agora o HTML bsico para o usurio comum se cadastrar no sistema, com seu nvel de permisso obviamente declarado como usurio. Crie uma nova pgina HTML e salve com este cdigo como cadastra_usuario.html: <html> <head> <title>Cadastro de usurio</title> </head>

74
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

<body> <form method="POST" action="cadastra_bd.php"> <table border="0" align="center" cellpadding="2" cellspacing="2"> <tr> <th colspan="2" >Cadastro de usurio</th> </tr> <tr> <td >Digite um login para cadastro</td> <td > <input type="text" name="login" /></td> </tr> <tr> <td>Digite a senha:</td> <td><input type="password" name="senha" /></td> </tr> <tr> <td></td> <td><input type="submit" value="Cadastrar" /></td> </tr> </table> </form> </body> </html> Neste formulrio, o usurio vai se cadastrar utilizando um login e uma senha qualquer. Clicando em Cadastrar ele ser redirecionado para a pgina cadastra_bd.php que efetivar o seu cadastro ou exibir uma mensagem de erro. Crie o cdigo para o cadastro da forma que se encontra abaixo e o salve como cadastra_bd.php.

75
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

<?php mysql_connect("localhost","login","senha"); mysql_select_db("banco_de_usuarios"); $login = $_POST["login"]; $senha = $_POST["senha"]; $query = "insert into tabela_de_cadastro (login,senha,nivel_permissao) values ('$login','$senha','usuario')"; if (mysql_query($query)) { echo "Usurio cadastrado com sucesso"; } else { mysql_error(); } ?> Neste cdigo criamos a conexo com o banco de dados, selecionamos o banco que desejamos, recuperamos as variveis login e senha e as inserimos no banco de dados. Observe que o campo id no foi listado na instruo INSERT, visto que ele auto_increment, ou seja, o prprio gerenciador do banco de dados define os valores corretos para este atributo. A pgina para cadastrar administradores idntica a esta, mudando somente o nvel de permisso na instruo insert.

10.3 Direcionando de acordo com o nvel de permisso

76
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Imagine que no banco de dados temos os seguintes dados cadastrados. id 1 2 3 4 5 login A_Carlos FlavioRP MarisaBernandes RobsonPV Anderson123 senha 23405 34099 34333 45521 34520 nvel_permissao usurio admin usurio admin usuario

Temos cadastrados trs usurios e dois administradores. Na pgina inicial teremos que implementar uma interface de login. Faremos ento a verificao se o visitante um administrador ou usurio comum. Dependendo dessa verificao, ele ser direcionado para uma parte diferente do sistema. Agora criaremos a interface para o login do visitante de uma forma muito simples, apenas para exemplificar o sistema criado. Crie uma nova pgina chamada ndex.html e execute o cdigo. <html> <head> <title>Pgina Inicial </title> </head> <body> <form method="POST" action="identifica_usuario.php"> <table border="0" align="center" cellpadding="2" cellspacing="2"> <tr> <th colspan="2" >Efetue o Login</th> </tr> <tr>

77
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

<td >Login:</td> <td > <input type="text" name="login" /></td> </tr> <tr> <td>Senha:</td> <td><input type="password" name="senha" /></td> </tr> <tr> <td></td> <td><input type="submit" value="Entrar" /></td> </tr> </table> </form> </body> </html> Por fim, na pgina identifica_usuario.php, precisamos direcionar os visitants da forma correta. Faremos isso de uma maneira bem simples e inocente. Pesquisaremos no banco de dados o login e a senha, e ento faremos a verificao quanto ao nvel de permisso. Crie a pagina identifica_usuario.php de acordo com o script abaixo: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php $login = $_POST["login"]; $senha = $_POST["senha"];

78
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

mysql_connect("localhost","root","vertrigo"); mysql_select_db("banco_de_usuarios"); $query = "select * from tabela_de_cadastro where login = '$login' and senha = '$senha' "; $resultado = mysql_query($query); if( mysql_num_rows($resultado)==0){ echo "Este login e senha no esto cadastrados. Por favor, cadastre-se no nosso sistema!"; } else { $valor = mysql_fetch_array($resultado); $nivel = $valor['nivel_permissao']; echo "Seu nvel de permissao ".$nivel; } ?> Este script permite pesquisar no banco de dados pelos dados inseridos no formulrio inicial pelo visitante. Primeiramente ele pesquisa pelo usurio cadastrado no banco com o login e senha inseridos. A varivel $resultado guarda o resultado da consulta. verificado ento se o nmero de resultados foi nulo com a funo msqyl_num_rows( ). Se a consulta encontrar resultados, a varivel $valor receber estes resultados. Utiliza-se para isso a funo mysql_fetch_array ( ). Em seguida, pegamos o valor cadastrado no atributo nivel_permissao utilizando a varivel $valor e entre colchetes o nome da coluna. Desta forma, podemos recuperar o valor de qualquer coluna. Finalmente, impresso o nvel do usurio que fez o login. Com essas informaes pode-se direcionar o visitante para a rea correta do sistema de acordo com as necessidades.

79
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Este um sistema muito simples para login, mas que exemplifica muito bem o conceito de insero, pesquisa e conexo com o banco de dados utilizando PHP

11. Consideraes Finais


A linguagem PHP possui inmeras funcionalidades, sendo impossvel exemplificar todas. A experincia no trabalho com essa linguagem leva o desenvolvedor a conhecer diferentes recursos. Com a evoluo nas linguagens de desenvolvimento Web, o PHP continua crescendo a cada dia. A orientao a objetos uma tcnica muito interessante e cada vez mais includa nas linguagens de programao, inclusive em PHP. A utilizao dos bancos de dados MySQL so essenciais nos sistemas modernos. O armazenamento de dados atravs de arquivos simples s utilizado em casos muito especficos como criao de cookies. Existem inmeras referncias de livros e tutoriais sobre desenvolvimento PHP com MySQL, para que o leitor interessado possa aprofundar o seu conhecimento no desenvolvimento Web que atualmente uma grande rea para se trabalhar.

80
Linked Empresa Jnior - http://www.linkedej.com.br - (032) 3373-3985 Av. Visconde do Rio Preto Universidade Federal de So Joo del-Rei CTAN DCOMP Sala 3.12 contato@linkedej.com.br

Vous aimerez peut-être aussi