You are on page 1of 95

Tcnico em Informtica

Linguagem de Programao
para Web

Ewerton Mendona

2014

Presidenta da Repblica
Dilma Vana Rousseff

Governador do Estado de Pernambuco


Joo Soares Lyra Neto

Vice-presidente da Repblica
Michel Temer

Secretrio de Educao
Jos Ricardo Wanderley Dantas de Oliveira

Ministro da Educao
Jos Henrique Paim Fernandes

Secretrio Executivo de Educao Profissional


Paulo Fernando de Vasconcelos Dutra

Secretrio de Educao Profissional e


Tecnolgica
Alssio Trindade de Barros

Gerente Geral de Educao Profissional


Josefa Rita de Cssia Lima Serafim
Coordenador de Educao a Distncia
George Bento Catunda

Diretor de Integrao das Redes


Marcelo Machado Feres
Coordenao Geral de Fortalecimento
Carlos Artur de Carvalho Aras
Coordenador Rede e-Tec Brasil
Cleanto Csar Gonalves

Coordenao do Curso
Joo Ferreira
Coordenao de Design Instrucional
Diogo Galvo
Reviso de Lngua Portuguesa
Letcia Garcia
Diagramao
Izabela Cavalcanti

Sumrio
INTRODUO .......................................................................................................................3
1.COMPETNCIA 01 | INTRODUO PROGRAMAO PARA WEB E CONSTRUO DO
AMBIENTE DE DESENVOLVIMENTO ......................................................................................4
1.1 Programao para Web ...................................................................................... 4
1.2 PHP: Histrico e Definio .................................................................................. 6
1.3 Servidor de Teste................................................................................................ 8
1.4 IDE ................................................................................................................... 14
1.5 Testando o Ambiente ....................................................................................... 19
1.6 Projeto ............................................................................................................. 24

2.COMPETNCIA 02 | FUNDAMENTOS DA LINGUAGEM PHP..............................................26


2.1 Pginas PHP...................................................................................................... 26
2.2 Sintaxe Bsica................................................................................................... 27
2.3 Variveis .......................................................................................................... 29
2.3.1 Nome de Variveis......................................................................................... 30
2.3.2 Declarao de Variveis ................................................................................. 30
2.3.3 Escopo de uma Varivel ................................................................................. 31
2.3.3.1 Escopo Local ............................................................................................... 31
2.3.3.2 Escopo Global ............................................................................................. 32
2.3.3.3 Escopo Esttico ........................................................................................... 32
2.3.3.4 Escopo de Parmetro.................................................................................. 33
2.4 String ............................................................................................................... 33
2.4.1 Operao de Concatenao ........................................................................... 34
2.4.2 Funo strlen( ) ............................................................................................. 35
2.4.3 Funo strpos( ) ............................................................................................. 35
2.5 Operadores ...................................................................................................... 35
2.5.1 Operadores Aritmticos ................................................................................ 36
2.5.2 Operadores de Atribuio.............................................................................. 36
2.5.3 Operadores de Incremento e Decremento..................................................... 36
2.5.4 Operadores de Comparao .......................................................................... 36
2.5.5 Operadores Lgicos ....................................................................................... 37
2.6 Echo ................................................................................................................. 37
2.7 If...Else ............................................................................................................. 38

2.8 Switch .............................................................................................................. 40


2.9 Array ................................................................................................................ 41
2.9.1 Arrays Indexados ........................................................................................... 42
2.9.1.1 Contando os Elementos de um Array .......................................................... 43
2.9.2 Arrays Associativos ........................................................................................ 43
2.9.3.1 Loops em Arrays Associativos ..................................................................... 43
2.10 Estruturas de Repetio.................................................................................. 44
2.10.1 While........................................................................................................... 44
2.10.2 Do...While ................................................................................................... 45
2.10.3 For............................................................................................................... 46
2.10.4 Foreach ...................................................................................................... 47

3.COMPETNCIA 04 | FUNDAMENTOS AVANADOS DA LINGUAGEM PHP ......................... 48


3.1 Funes ............................................................................................................ 48
3.1.1 Criando Funes PHP ..................................................................................... 49
3.1.2 Adicionando Parmetros ............................................................................... 50
3.1.3 Retornando Valores ....................................................................................... 51
3.2 Formulrios ...................................................................................................... 52
3.2.1 Mtodo GET .................................................................................................. 52
3.2.2 Mtodo POST ................................................................................................ 53
3.2.3 Varivel $_REQUEST ...................................................................................... 55
3.3 Include e Require ............................................................................................. 56
3.4 Sesses PHP ..................................................................................................... 57
3.5 Funo ISSET() .................................................................................................. 59

4.COMPETNCIA 04 | PROJETO: INCLUINDO, ALTERANDO, EXIBINDO E EXCLUINDO


INFORMAES ...................................................................................................................60
4.1 Templates ........................................................................................................ 64
4.2 Conectando ao MySQL ..................................................................................... 66
4.3 Listando Dados ................................................................................................. 67
4.4 Incluindo Dados................................................................................................ 70
4.5 Excluindo Dados ............................................................................................... 72
4.6 Alterando Dados............................................................................................... 74

5.COMPETNCIA 05 | PROJETO: EMISSO DE RELATRIOS ................................................79

CONCLUSO .......................................................................................................................88
REFERNCIAS .....................................................................................................................89
MINICURRCULO DO PROFESSOR .......................................................................................90

INTRODUO
Este o nosso caderno de estudos da disciplina de Desenvolvimento para
Web. Nele encontraremos informaes introdutrias sobre a linguagem de
programao para sites chamada de PHP.
Chamamos o PHP de uma linguagem porque ela uma forma de comunicao
com o computador. Ela possui regras de gramtica e ortografia muito rgidas,
ou seja, o computador s entende da maneira correta. Um errinho de grafia
ou uma troca de lugar e o interpretador no vai entender o que voc quer que
ele faa. Por isso, tenha muita ateno e cuidado ao escrever os cdigos. Se
algo der errado, verifique letra a letra, palavra a palavra e linha a linha, para
ver se voc no escreveu algo errado. A maior parte dos erros no comeo do
aprendizado acontece devido a problemas de digitao.
Outro ponto de extrema importncia a sua dedicao na execuo dos
exemplos e atividades. O ser humano aprende por repetio. A cada exemplo
visto e atividade realizada voc entende melhor um conceito. Repita os
exemplos e atividades at se sentir confortvel com a ideia apresentada.
Programao uma arte na resoluo de problemas e, muitas vezes, vamos
ter que usar a criatividade para resolver algo com os comandos que temos,
porque nem tudo pode ser copiado de algum lugar. Mas para chegarmos a
este ponto, precisamos repetir, repetir e repetir. Quando terminar os
exemplos e atividades disponibilizados, procure outros exemplos na internet e
se dedique para entender como o problema resolvido. Assim, logo voc
estar criando suas prprias solues.
Vamos comear com um pouquinho de histria sobre o PHP e criando um
ambiente de desenvolvimento para podermos trabalhar confortavelmente e
testar as aplicaes em nosso prprio computador, sem precisar enviar para
um servidor de pginas na web.
Bom estudo.

Linguagem de Programao para Web

Competncia 01
1.COMPETNCIA 01 | INTRODUO PROGRAMAO PARA WEB
E CONSTRUO DO AMBIENTE DE DESENVOLVIMENTO
Antes de contarmos um pouquinho da histria do PHP, vamos falar um pouco
sobre linguagem de programao, diferentes tipos de linguagem de
programao e onde o PHP est nesta classificao.
Depois vamos construir um ambiente de desenvolvimento para web passo a
passo. Precisaremos baixar e instalar alguns programas gratuitos, faremos um
teste construindo nossa primeira aplicao, o famoso Hello world! do
mundo da programao.
Por fim, veremos como ficar a aplicao que iremos desenvolver nas
prximas competncias.
E ento, prontos para comear?
1.1 Programao para Web
O computador ainda no entende exatamente o que o ser humano fala. O que
o computador entende so zeros e uns. Graas velocidade que possui, ele
pode ler uma gigantesca quantidade de zeros e uns e fazer coisas incrveis,
mas, para os seres humanos impossvel instruir o computador desta forma.
Por isso, foram criados cdigos que do ordens bsicas. A organizao dessas
ordens uma gramtica e seu conjunto de palavras chaves sua ortografia, e
assim temos uma linguagem. Uma forma de comunicao com um
computador que diz a ele o que para ele fazer e quando.
Dessa forma podemos escrever mais facilmente e pedir para uma aplicao
traduzir esta linguagem para a que o computador entenda, ou seja, dizemos
que uma linguagem mais prxima dos seres humanos de alto nvel, j a
linguagem de zeros e uns de baixo nvel.

Tcnico em Informtica

Competncia 01
Essa traduo pode possuir duas abordagens: compilativa e interpretativa.
Na compilao a traduo feita de uma vez. Todo o programa traduzido
para a linguagem de baixo nvel e pode ser executado indefinidamente sem
precisar ser compilado novamente. como se um tradutor de ingls pegasse
um livro e traduzisse ele para o portugus. O livro traduzido pode ser
impresso vrias vezes sem precisar ser traduzido novamente. Como exemplos
de linguagem compilativas temos Pascal e C.
Na interpretao a traduo realizada enquanto as linhas so lidas. Toda vez
que a linha lida traduzida e executada. como se um tradutor estivesse
em uma palestra e enquanto o palestrante fala ele vai traduzindo para o
pblico. Se o palestrante repetir tudo de novo, em um momento que ele
precise explicar novamente para algum, o tradutor ter que traduzir
novamente. Ento, se uma linha for lida mil vezes em um cdigo, ser
interpretada e executada mil vezes. Como exemplo de linguagens
interpretativas temos o PHP, Python e JavaScript.
A forma como a internet construda privilegia as linguagens interpretativas.
Observe a Figura 1. No passo 1, o usurio solicita uma pgina para um
servidor web. O servidor percebe que a pgina solicitada uma aplicao em
PHP e solicita sua interpretao no passo 2. Como resultado, o interpretador
pode criar uma pgina web com o resultado da computao e envia como
resposta para o usurio no passo 3.

Linguagem de Programao para Web

Competncia 01

Figura 1 - Ilustrao que mostra os passos simplificados da solicitao de uma pgina


web para uma aplicao.
Fonte: prprio autor.

No importa quantas vezes o usurio faa isso, ou quantos usurios diferentes


solicitem a mesma pgina, toda vez o aplicativo (programa) vai ter que
interpretar e executar.
A velocidade de traduo depende de vrios fatores, mas geralmente a
interpretao mais lenta que a compilao.
dessa forma que vamos pensar de agora em diante. O usurio solicita algo
ao programa, ele faz a computao e devolve uma pgina como resposta.
1.2 PHP: Histrico e Definio
PHP uma linguagem de script executada do lado do servidor e uma
poderosa ferramenta para a criao de pginas Web dinmicas e interativas.
PHP significa PHP: Hypertext Preprocessor. Ele aberto para quem se
interessar em melhor-lo e gratuito para uso.

Para saber mais


sobre os tipos de
traduo de
linguagens de
programao,
acesse as pginas
abaixo:
http://pt.wikipedia.
org/wiki/Compilado
r
http://pt.wikipedia.
org/wiki/Interpreta
dor

A verso atual do PHP a 5 e pode ser baixada no site www.php.net. L, voc


tambm pode encontrar novidades sobre o desenvolvimento, documentao,

Tcnico em Informtica

Competncia 01
links para a comunidade de desenvolvedores e o cdigo-fonte do PHP.
Por ser uma linguagem de programao que executada do lado do servidor,
ela deve ser instalada junto a um servidor de pginas web. Se voc for
contratar um servio de hospedagem de websites deve verificar se no servidor
est instalado o PHP e qual a verso.
Agora vamos pegar um pouco mais de intimidade com o PHP conhecendo um
pouco de sua histria de vida.
No incio da dcada de 90, as pginas web pouco faziam. Naquela poca as
pessoas escreviam uma pgina e depositavam em um servidor web para
serem acessadas. Apenas isso. Se o autor quisesse que ela mudasse algo, ele
teria que editar a pgina e reenviar. No existiam aplicativos web, ecommerce, nem blogs, como conhecemos hoje.
Ento, em 1994, um programador chamado Rasmus Lerdorf, criou uma srie
de programas do tipo CGI que faziam computao em pginas web. Esse
conjunto de ferramentas foi chamado de Personal Home Page Tools. O PHP
comeou desta forma. E a ideia era muito boa.

O link abaixo exibe


um vdeo sobre a
evoluo da web e
seus objetivos.
www.youtube.com/
watch?v=V5kabPVo
hGY

Com o tempo, Rasmus foi melhorando suas aplicaes e em 1997 ele lanou o
PHP/FI, o FI de Forms Interpreter, que era um interpretador de comandos
SQL. O que possibilitou o uso de bancos de dados.
Outros programadores entraram para o time de desenvolvimento do PHP, at
que Zeev Suraski lanou o PHP 3.
Pouco tempo depois, Zeev e Andi Gutmans, escreveram o PHP 4, que
substituiu totalmente o PHP 3 e deu muito mais recursos e poder ao PHP,
alm de implantar um novo paradigma de programao: a orientao a
objeto. Nesta competncia, utilizaremos o paradigma procedura, que mais
fcil de ser entendido. Na prxima, aprenderemos a programar em PHP em
orientao a objetos, que o paradigma dominante atualmente.

Para saber mais


sobre o PHP acesse
o link abaixo:
http://pt.wikipedia.
org/wiki/PHP

Linguagem de Programao para Web

Competncia 01
1.3 Servidor de Teste
Um servidor um programa de computador que serve algo. Podemos ter um
servidor de e-mail que serve e-mails, um servidor de stream de vdeos que
quem envia o vdeo, como no YouTube, e tambm temos um servidor que
serve as pginas web.
A instalao do PHP deve ser feita em um servidor web j instalado. Ento,
para testarmos nossas pginas PHP precisamos de uma empresa que fornea
isso? No.
Podemos instalar um servidor em nosso computador junto com o PHP e
testarmos nosso cdigo PHP localmente. A isso, damos o nome de servidor
local. Atente para o fato de que nosso servidor local, ou seja, as pginas
apenas sero vistas em nosso computador.
Quando nossa programao estiver pronta, podemos envi-las para um
servidor que contratarmos para que seja disponibilizada mundialmente.
Existem algumas empresas que disponibilizam pequenas aplicaes PHP de
forma gratuita, algumas colocam propaganda nas pginas como forma de
rendimento.
Parece muito complicado? O pessoal do Apache Friends tambm achou e
desenvolveu um pacote j com tudo de que precisamos para testar as pginas
PHP, e o melhor, sem precisar instalar nada. Voc pode levar todo o seu
projeto, junto com servidor, banco de dados, etc., prontinho no pen drive. E
ainda mostrar no computador do cliente ou continuar o desenvolvimento em
outros computadores sem se preocupar em instalar o servidor de teste. Legal,
n?
Ento, vamos baixar esse pacote mgico, seu nome XAMPP. O link para o
site est na legenda da Figura 2. Ele todo em portugus. Voc ir baixar o
arquivo apontado na Figura 3, que a verso portable.

Portable o tipo de
programa que pode
ser executado em
uma mquina sem
que precise ser
instalado. timo
para ser
transportado
utilizando um pen
drive.

Tcnico em Informtica

Competncia 01

Figura 2 Link para o site www.apachefriends.org/pt_br/index.html , voc pode baixar a verso para seu
sistema operacional por aqui.
Fonte: prprio autor.

Figura 3 - Link para baixar a verso portable para Windows http://sourceforge.net/projects/xampp/files/ XA


MPP %20Windows/1.8.3/xampp-portable-win32-1.8.3-5-VC11.zip/download . A seta aponta o link correto.
Fonte: prprio autor.

Linguagem de Programao para Web

Competncia 01
Descompacte o arquivo em um bom lugar, preferencialmente na raiz de seu
sistema operacional, e memorize sua localizao. Dentro h vrios programas,
entre eles o Apache, que um servidor de pginas web com o PHP j
instalado e o banco de dados web MySQL. Alm disso, o pessoal ainda
colocou o phpMyAdmin, um aplicativo web feito com PHP para gerenciar os
bancos do MySQL. Com ele voc pode criar as tabelas, campos, visualizar e
gerenciar tudo no MySQL.
Antes de podermos testar o servidor, temos que configurar sua localizao.
No se preocupe que tudo ser muito fcil. Dentro da pasta que voc
descompactou procure o arquivo setup_xampp.bat e execute-o. O que ele faz
descobrir onde esto os servidores. Isso s preciso porque voc pode levar
esta pasta no pen drive para outros lugares, assim a localizao pode mudar
muito. Sempre que voc mudar a pasta de lugar, vai ter que executar este
arquivo para configura a localizao, mas se no mudar de lugar no precisa
repetir o processo.
Ir aparecer a janela da Figura 4. Aguarde at aparecer uma mensagem
dizendo que a atualizao foi realizada. Pressione, ento, qualquer tecla para
que a janela desaparea.

10

Tcnico em Informtica

Competncia 01

Figura 4 Menu do setup_xampp.bat. Automaticamente o script ir atualizar a localizao dos servidores.


Fonte: prprio autor.

Uma vez configurado, vamos executar o arquivo xampp-control.exe. Ele um


programa que gerencia os servidores. Na primeira execuo ele pergunta a
linguagem que ser utilizada, escolha a bandeira americana e pressione
Save. A Figura 5 mostra sua tela, ela nos ajuda a ligar os outros programas.
Pressione os botes Start para ligar o Apache e o MySQL. Vai aparecer a tela
de permisso do Windows, permita o acesso. S necessrio fazer isto na
primeira vez.

11

Linguagem de Programao para Web

Competncia 01

Figura 5 Painel de Controle do XAMPP. Pressione os dois botes Start apontados.


Fonte: prprio autor.

Figura 6 Tela de permisso do Windows.


Fonte: prprio autor.

Espere algum tempo para os servidores comearem e voc ver a tela da


Figura 7, com os nomes dos aplicativos destacados em verde.

12

Tcnico em Informtica

Competncia 01

Figura 7 Tudo ok!


Fonte: prprio autor.

Para desligar tudo voc primeiro deve clicar nos botes Stop e esperar para
desligar os servidores, depois pressionar o boto Quit apontado na Figura 7.
Se no fizer isso, o painel de controle pode desligar e deixar os servidores
funcionando. Tenha ateno!
Agora que tudo est instalado, configurado e funcionando vamos testar nosso
ambiente de teste. Abra seu navegador preferido e digite o endereo
http://localhost/xampp/. A pgina da Figura 8 deve abrir. Selecione a
linguagem Portugus (Brasil) e vai aparecer a pgina da Figura 9. Esta pgina
no est na internet, foi servida pelo seu servidor local.

Figura 8 Pgina inicial do XAMPP.


Fonte: prprio autor.

13

Linguagem de Programao para Web

Competncia 01

Figura 9 Pgina do XAMPP for Windows.


Fonte: prprio autor.

Pronto! Tudo est ok.


1.4 IDE
Uma IDE um ambiente integrado de desenvolvimento, ou seja, um ambiente
que rene vrios aplicativos que so necessrios e teis para o
desenvolvimento. Existem diversas IDEs para desenvolvimento em PHP,
algumas pagas, outras gratuitas. Entre elas est o Aptana Studio 3. Ele foi
desenvolvido com base em outra IDE muito famosa no mundo dos
programadores chamada Eclipse. Ela gratuita, completa e portvel para
vrios sistemas operacionais. Alm disso, muitos desenvolvedores
profissionais a utilizam. Tambm vamos utiliz-la. Mas caso voc tenha algum
problema em us-la, pode fazer no Bloco de Notas do Windows ou qualquer
editor simples de texto.
Antes de instal-la, precisaremos instalar a mquina virtual Java, porque o

14

Tcnico em Informtica

Competncia 01
APTANA foi desenvolvido em Java. O Java tambm gratuito. Outra coisa,
Java e JavaScript so linguagens diferentes. Ento vamos l?
V para o site da Oracle neste endereo: www.oracle.com/technetwork/j
va/javase/downloads/index.html
Vai aparecer a pgina da Figura 10. Clique no boto apontado na imagem.
Voc ir para a pgina da Figura 11.

Figura 10 Site de download do JRE do Java.


Fonte: prprio autor.

Ateno! Selecione a opo para aceitar a licena e a voc vai conseguir


baixar a verso de seu sistema operacional. A Figura 11 aponta o local para
aceitar a licena de uso.
D um duplo clique no arquivo que voc baixou e ir iniciar o processo de
instalao. Aceite os prximos dois passos clicando em Next. Ir aparecer a
tela da Figura 12.

15

Linguagem de Programao para Web

Competncia 01
Depois de instalado, voc ser direcionado a uma pgina onde pode,
opcionalmente, criar uma conta na Oracle para registrar sua instalao. Mas
voc no precisa fazer isso.

Figura 11 Clique onde a seta aponta para aceitar a licena de uso.


Fonte: prprio autor.

Figura 12 Instalao do Java.


Fonte: prprio autor.

16

Tcnico em Informtica

Competncia 01
Quase pronto. Vamos agora baixar o Aptana pelo site, Figura 13:
www.aptana.com/
Clique no boto azul e voc ser direcionado para a pgina de downloads da
Figura 14. Clique no boto azul para fazer o download do instalador do
Aptana. Caso queira baixar para outro sistema operacional, clique no boto
cinza que diz Customize your downloads. Voc poder escolher a verso
Linux ou MacOS.

Figura 13 Site do Aptana Studio 3.


Fonte: prprio autor.

17

Linguagem de Programao para Web

Competncia 01

Figura 14 Pgina de downloads do Aptana. O boto Customize Your Download exibe verses para
outros sistemas operacionais.
Fonte: prprio autor.

Execute o arquivo que baixar. A instalao simples como outros programas


do Windows, mas se voc se sentir confuso ainda pode olhar a dica logo a
seguir.
Depois de instalado, inicie o Aptana. A primeira vez em que ele executado
abre muito lento, mas so configuraes que so feitas apenas uma vez.
Depois de configurado, ele inicia mais rpido.

Caso voc precise


de mais detalhes
explicativos sobre a
instalao do
Aptana Studio 3,
assista a este vdeo
tutorial no
YouTube.
www.youtube.com/
watch?v=0XMTl8Y9
Yu0

A Figura 15 mostra o Aptana aberto.

18

Tcnico em Informtica

Competncia 01

Figura 15 Interface do Aptana.


Fonte: prprio autor.

Vai aparecer uma caixa de dilogo solicitando a pasta, que ser o Workspace,
o espao de trabalho onde sero guardados os arquivos de seus projetos.
Escolha a pasta htdocs que est dentro da pasta do XAMPP. Assim, seus
projetos j ficam logo no local onde sero testados.
Depois disso, ir parecer outra caixa de dilogo de configurao do Git.
Marque a nica opo que a caixa disponibiliza e pressione OK.
Por fim o Windows ir lhe perguntar sobre a permisso de acesso, permita.
Pronto, instalao concluda.
1.5 Testando o Ambiente
Agora que temos tudo pronto, vamos testar o nosso ambiente de
desenvolvimento. Para isso, vamos fazer uma pgina simples em PHP, o nosso
Hello world!.

Na pasta htdocs no
XAMPP ficam as
pastas contendo os
sites que podem ser
acessados. Em alguns
outros servidores
pode ter o nome de
www.

Assista ao vdeo
abaixo que d dicas
extras e demonstra
todo o processo de
instalao. Seria bom
que voc assistisse
antes de instalar.
Caso voc precise de
mais detalhes
explicativos sobre a
instalao do Aptana
Studio 3, assista a este
vdeo tutorial no
YouTube.
www.youtube.com/w
atch?v=0XMTl8Y9Yu0

19

Linguagem de Programao para Web

Competncia 01
No Aptana Studio 3 cada site que produzimos um projeto. Ento, a primeira
ao a tomar criar um projeto. No Aptana h diversas formas de se fazer
isso, uma delas utilizando o menu textual. Selecione File > New > Project... ,
como na Figura 16.

Figura 16 Iniciando um novo Projeto.


Fonte: prprio autor.

Ir aparecer a janela da Figura 17. O Aptana pode fazer projetos em diversas


tecnologias, no s em PHP, ento vamos escolher PHP Project e pressione
Next.

20

Tcnico em Informtica

Competncia 01

Figura 17 Janela New Project.


Fonte: prprio autor.

Ir aparecer uma nova janela e voc deve colocar o nome do projeto. Vamos
colocar o nome do projeto helloworld. Observe na Figura 18.
No painel do App Explore aparece o nome do projeto. J no painel do Project
Explorer voc poder ver todos os projetos de seu workspace. Observe
tambm na Figura 18.
Como o projeto
destinado web,
no utilize
espaamentos para
nomes compostos
ou caracteres. Voc
tambm deve ter
este cuidado para
os nomes dos
arquivos das
pginas. No so
em todos os casos
que podemos
utilizar qualquer
nome de arquivo,
ento, evite.

Figura 18 Janela para nomear o projeto. Do lado esquerdo, o painel App. Explorer j com o
projeto criado.
Fonte: prprio autor.

21

Linguagem de Programao para Web

Competncia 01
Se voc for pasta htdocs, local onde criamos nosso workspace, estar l
nosso projeto helloword no formato de uma pasta.
S que nosso projeto est vazio, vamos ento fazer nossa primeira aplicao
web super simples em PHP, para testarmos se tudo est funcionando.
No painel App Explorer clique em qualquer lugar em sua rea preta com o
boto direito. Ir aparecer um menu contextual, selecione New From
Template > PHP > PHP Template, como na Figura 19. Ir aparecer uma janela
perguntando o nome do arquivo. Escreva index.php e clique em Finish.

Figura 19 Menu textual pra criao de arquivos baseados em templates (modelos).


Fonte: prprio autor.

22

Tcnico em Informtica

Competncia 01

Figura 20 Nomeao do arquivo que ser criado.


Fonte: prprio autor.

Observe que o painel App Explorer lista os arquivos presentes no projeto


helloworld, no caso exibe o nosso arquivo index.php. Ao lado exibido o
contedo do arquivo index.php.

Figura 21 Painel App Explorer exibe o arquivo index.php no projeto helloworld. Ao lado o arquivo
index.php aberto e exibindo seu contedo.
Fonte: prprio autor.

Existe uma
configurao em
todo servidor web
que configura a
primeira pgina a
ser lida de um site
como index.html ou
index.htm ou
default.html ou
default.htm, mas
tambm aceito
index.php quando o
PHP est instalado
no servidor.

Para finalizar vamos editar o arquivo. Apague a linha onde est escrito
phpinfo(); e escreva echo Oi mundo!;. Por enquanto, irei explicar apenas
que esta linha escreve o que est escrito entre aspas. Clique no cone indicado

23

Linguagem de Programao para Web

Competncia 01
na Figura 22 para salvar o arquivo.

Figura 22 cone que salva o arquivo editado. Tambm acessvel utilizando as teclas de atalho
Ctrl + S.
Fonte: prprio autor.

Para finalizar, vamos para o navegador onde digitaremos o endereo de nosso


projeto: http://localhost/helloworld/index.php. Observe que uma pgina foi
criada pelo PHP e seu contedo o texto que colocamos.

Figura 23 Exibio de nosso teste no navegador.


Fonte: prprio autor.

1.6 Projeto
Apenas aprender a nos comunicar com o computador para transmitir ordens
no suficiente. Ns temos que saber o que pedir. Para isso, uma aplicao
web foi desenvolvida como exemplo de utilizao da tecnologia. Nela foram
utilizados um CSS personalizado e o Bootstrap, para que ele ficasse mais
atrativo. Voc no precisa entender o Bootstrap para aprender PHP, mas

Este vdeo
demonstra o nosso
passo a passo de
teste e contm mais
algumas
informaes sobre
a administrao de
projetos no Aptana
Studio 3. Seria
muito bom que
voc assistisse.
www.youtube.com/
watch?v=MD69zTM
obSM

24

Tcnico em Informtica

Competncia 01
como o PHP gera pgina HTML muito importante que voc j domine o
HTML e o CSS.
Para faz-lo essencial que se dedique nas prximas competncias para
entender todas as palavras chaves e estruturas da linguagem PHP. No fique
com dvidas. Caso o caderno de estudos ou os vdeos disponibilizados no
sejam suficientes, procure ajuda no frum do AVA. Se mesmo assim ainda no
resolver, dedique-se mais um pouco e procure tutoriais na internet ou vdeo
tutoriais no YouTube. Tem muita gente legal disposta a ajudar sem receber
nada em troca e s vezes uma forma diferente de explicar pode ajudar
bastante, mas tudo depende de seu esforo.

Figura 24 Pgina inicial da aplicao de exemplo, PopcornTV, uma locadora de DVDs.


Fonte: Prprio autor.

25

Linguagem de Programao para Web

Competncia 02
2.COMPETNCIA 02 | FUNDAMENTOS DA LINGUAGEM PHP
Esta competncia muito importante. Ela a base para todo o resto. Seu
comprometimento no estudo dela deve ser total, pois a fundao para as
prximas competncias at finalizarmos o sistema PorpcornTV. Assim, faa
todos os exemplos e atividades e os repita para a melhor compreenso.
Aqui, aprenderemos as palavras-chaves bsicas e a forma de orden-las.
Assim, as ordens passadas para o computador faro sentido e ele poder
cumpri-las.
2.1 Pginas PHP

Atente que a maior


parte dos erros,
quando se est
aprendendo
programao, so
erros de digitao.
Quando alguma
mensagem de erro
aparecer, veja o
nmero da linha
que deu erro e
procure por algo
digitado errado nela
e nas anteriores.

Como dito anteriormente, o PHP uma linguagem de programao que


executada do lado do servidor. Ela diferente, por exemplo, do JavaScript,
que tambm uma linguagem interpretada, mas executada ao lado do
cliente, ou seja, no navegador do usurio e no no servidor.
Vamos ver o que acontece quando se usa pginas PHP em um site.
Acompanhe o fluxo na Figura 25. Primeiramente o usurio faz um pedido de
uma pgina pelo endereo DNS, ou clicando em um link que possui um
endereo DNS (1). Quando a solicitao chega ao servidor, ele verifica se o
que foi pedido uma pgina PHP e entrega para o interpretador (2). O
interpretador l a pgina e quando encontra um cdigo PHP o executa (3).
Quando termina de ler, o interpretador constri uma pgina HTML como
resultado da computao realizada e entrega ao servidor (4). Finalmente o
servidor envia a pgina HTML resultante para o usurio.
Todas as vezes que so feitas requisies de pgina PHP, esse processo
repetido.
Mais adiante, observe que as pginas PHP so pginas HTML com cdigo PHP

26

Tcnico em Informtica

Competncia 02
misturado. Para que o servidor saiba que so pginas PHP, ao invs de
colocarmos a extenso .html, colocamos .php. Podemos enviar para o
servidor uma pgina PHP contendo apenas cdigo HTML. O servidor vai ter
todo o trabalho descrito na Figura 25 e ir retornar mesma pgina, sem
realizar qualquer computao. Quando formos fazer nosso sistema de
locadora teremos casos como este.

Figura 25 Ilustrao que mostra o fluxo de execuo de pginas PHP.


Fonte: Prprio autor.

2.2 Sintaxe Bsica


Para que uma pgina seja interpretada pelo PHP, ela deve ter a extenso .php,
mas no s isso, todo cdigo PHP deve estar entre dois sinais que indicam o
incio e o fim de um pedao de computao. Assim, o interpretador vai saber
que o que est dentro comando PHP.
Ento, para marcar o incio utilizamos <?php e para marcar o final utilizamos
?>.
Vamos ver um exemplo.

27

Linguagem de Programao para Web

Competncia 02
O comando echo escreve o que est logo aps, entre aspas duplas. Vamos
escrever Oi mundo!, utilizando PHP. Veja a Figura 26 que exibe o contedo
de oi.php.

Figura 26 Exemplo de sintaxe bsica em PHP.


Fonte: Prprio autor.

Na sesso 2.5 vimos como testar o ambiente. Teste esta pgina para ver o
resultado exibido na Figura 27. Tenha certeza de ter ligado o XAMPP
adequadamente como explicado na sesso 2.3.
Voc pode abrir e
fechar vrias sesses
de cdigo PHP
misturados na mesma
pgina HTML.
Lembre-se de sempre
comear com <?php e
terminar com ?>
antes de comear
outra sesso.

Figura 27 Resultado do teste oi.php.


Fonte: Prprio autor.

Quando escrevemos sistemas, podemos chegar a um nmero grande de


linhas de cdigo e esquecer porque fizemos determinado pedao, pode
acontecer tambm de outros programadores precisarem ler nossa
codificao. Para ajudar o entendimento, podemos documentar com
comentrios o cdigo PHP.
Para fazer um comentrio de uma linha colocamos //.

Faa uma pgina PHP


como no exemplo,
mas coloque duas ou
mais sesses PHP
misturadas pgina
HTML. Veja como foi
que o PHP gerou a
pgina HTML para o
usurio, exibindo o
cdigo HTML.

28

Tcnico em Informtica

Competncia 02
Para fazer um comentrio de vrias linhas colocamos no comeo /* e no final
das linhas */. As linhas comentadas so ignoradas pelo interpretador na hora
da computao. Veja o exemplo na Figura 28.

Figura 28 Comentrios no cdigo.


Fonte: Prprio autor.

2.3 Variveis
Variveis so como gavetas ou caixas na memria do computador onde
guardamos algo. Para trabalhar com dados, precisamos guardar seus valores
em um lugar que seja fcil de encontrar mais tarde. Por isso, cada gaveta da
memria deve ser etiquetada. Estas gavetas chamam-se variveis.
muito parecido com matemtica. Veja o exemplo:

O aprendizado ser
mais rpido e
eficiente se voc
exercitar, ento
faa a seguinte
atividade.
Desenvolva uma
pgina PHP que
escreve seu nome
em uma tag <H1>
(como foi feito no
exemplo, utilizando
o comando echo) e
o motivo de voc
querer aprender
PHP em uma tag
<P> logo abaixo da
<H1>.

x=2
y=5
z=x+y
Na matemtica ns utilizamos as letras para representar um valor. Dessa
forma podemos entender que z representa o valor de 7 em nosso exemplo.
Em PHP estas letras so as variveis.
Da mesma forma que na matemtica, as variveis em PHP podem ser
utilizadas para guardar valores (x=2) e expresses (z=x+y).

O nome das
variveis pode ser
composto de mais
de uma letra.
Coloque nomes que
relacionem com o
contedo da
varivel. Outro
ponto: podemos
guardar no s
valores nas
variveis, mas
tambm outras
coisas.

29

Linguagem de Programao para Web

Competncia 02
2.3.1 Nome de Variveis
O nome da varivel no precisa ter apenas uma letra, como x e y. Seria muito
melhor que descrevessem o que ela guarda, por exemplo, idade, nome,
volume, etc.
Voc pode colocar qualquer um desses, desde que respeite as regras abaixo:
Uma varivel deve comear com o sinal de cifro $, seguido pelo nome da
varivel;
O nome de uma varivel deve comear com uma letra ou com os
caracteres de sublinhado;
O nome de uma varivel s pode conter caracteres alfanumricos e
sublinhados (Az, 0-9 e _ );
O nome de uma varivel no deve conter espaos;
PHP distingue maisculas de minsculas, dessa forma $nome, $Nome,
$NOME e $nOmE so variveis diferentes.

Faa uma pgina


PHP que some 2 *
34 ( 40 / 2 ) e
escreva o resultado
dentro de uma tag
<h1>. No se
esquea do
restante das tags
HTML de uma
pgina.

2.3.2 Declarao de Variveis


Para criar uma varivel em PHP temos apenas que atribuir um valor a ela.
Utilizamos o sinal de igual ( = ) para isso. Por exemplo:
$nome = Fulano de Tal;
$idade = 37;
Quando executarmos o programa, o computador guarda na memria o nome
Fulano de Tal e o nmero 37 para usarmos em outro momento.
No entanto, as variveis no vivem para sempre. Em certo momento elas
sero apagadas, normalmente ao final de seu escopo, mas o que escopo de
uma varivel?

Quando guardamos
uma sequncia de
caracteres
utilizamos as aspas
duplas para marcar
seu comeo e seu
fim, como no
exemplo anterior.

30

Tcnico em Informtica

Competncia 02
2.3.3 Escopo de uma Varivel
No podemos acessar nossas variveis em qualquer lugar do cdigo. Elas
pertencem a um determinado local, a este local chamamos de escopo.
Temos quatro tipos de escopo:

Local;
Global;
Esttico;
Parmetro.

2.3.3.1 Escopo Local


Uma varivel declarada dentro de uma funo local e s pode ser acessada
dentro desta funo. Veremos o que uma funo na prxima competncia.
Mas entenda, de antemo, que uma funo como um pequeno programa
parte. Vamos ver um exemplo na Figura 29:

Figura 29 Cdigo exemplo de varivel local.


Fonte: Prprio autor.

O PHP no consegue escrever o contedo da varivel $x porque ela no existe


no escopo global do PHP, s dentro da funo.
Como as variveis locais esto separadas do resto do cdigo, voc pode ter
variveis locais com o mesmo nome em funes diferentes.
Quando o interpretador executa a ltima linha da funo, as variveis locais

31

Linguagem de Programao para Web

Competncia 02
dela so apagadas.
2.3.3.2 Escopo Global
Uma varivel que declarada fora de uma funo tem um escopo mais
abrangente sendo classificada como global.
Uma varivel global pode ser acessada em qualquer lugar do programa,
menos dentro de uma funo.
Mas podemos chamar uma varivel global dentro de uma funo, utilizando a
palavra chave global. Vamos ver um exemplo na Figura 30:

Figura 30 Exemplo de variveis com escopo global.


Fonte: Prprio autor.

2.3.3.3 Escopo Esttico


Quando o escopo de uma varivel local ou global termina, ela excluda, mas
voc pode querer que ela continue a existir por mais tempo. Sendo assim,
utilize a palavra chave static quando declarar a varivel. Vamos ver um
exemplo na Figura 31:

32

Tcnico em Informtica

Competncia 02

Figura 31 Exemplo de variveis com escopo esttico.


Fonte: Prprio autor.

Esta aplicao escreve 012, mostrado que o valor persistiu depois que a
funo foi encerrada.
2.3.3.4 Escopo de Parmetro
Podemos passar valores para as funes atravs dos parmetros. Veremos
melhor funes e parmetros na prxima competncia, mas por agora
entenda que variveis de parmetro possuem escopo local. Vamos ver um
exemplo na Figura 32.

Alm dos exerccios e


atividades, sempre
faa os exemplos para
um melhor
aprendizado. S
aprendemos
programao fazendo
e refazendo.

Figura 32 Exemplo de varivel de parmetro.


Fonte: Prprio autor.

Parmetros tambm so chamados de argumentos. Veremos este assunto


melhor quando estudarmos funes em PHP na prxima competncia.
2.4 String
Como vimos em exemplos anteriores, podemos guardar em uma varivel uma

Crie algumas variveis


de escopo global,
local, esttica e
parmetro e teste
utilizando o comando
echo nelas para
entender melhor o
escopo de cada uma.

33

Linguagem de Programao para Web

Competncia 02
sequncia de caracteres, por exemplo, que formem o nome Fulano de Tal. A
essa sequncia de caracteres damos o nome de string. O PHP tem diversas
funes que manipulam strings. Vamos ver algumas delas mais adiante.
Podemos utilizar strings diretamente ou guardar em uma varivel. Veja o
exemplo abaixo na Figura 33.

Atente para a
utilizao de aspas
duplas para marcar
o incio e o fim da
sequncia de
caracteres.

Figura 33 Exemplo de utilizao de strings.


Fonte: prprio autor.

O PHP disponibiliza vrias funes para a manipulao de strings. Fazendo


uma busca na internet voc poder encontrar vrios tutoriais e exemplos
destas funes. Aqui vamos abordar algumas.
2.4.1 Operao de Concatenao
Concatenar unir, juntar. O operador de concatenao realiza uma operao
de unir duas strings. Seu smbolo o ponto e podemos unir duas ou mais
strings em uma mesma expresso. Veja o exemplo da Figura 34.

Figura 34 Exemplo de concatenao.


Fonte: Prprio autor.

Ser escrito Oi! Fulano de Tal. Neste caso concatenamos um espao em


branco no meio de duas variveis.

Para saber todas as


funes
manipuladoras de
strings, acesse:
http://php.net/man
ual/pt_BR/ref.string
s.php

Faa uma aplicao


em PHP que tenha
uma varivel para
cada parte de seu
nome, concatene
todas e coloque na
tag <title> de uma
pgina HTML.

34

Tcnico em Informtica

Competncia 02
2.4.2 Funo strlen( )
Entregamos como parmetro desta funo uma string e ela conta a
quantidade de caracteres. A Figura 35 mostra um exemplo.

Figura 35 Exemplo da funo strlen( ).


Fonte: Prprio autor.

escrito 9 como sada.


2.4.3 Funo strpos( )
Esta funo usada para procurar uma string dentro de uma string. Caso ache
a funo, retorna o nmero da posio do primeiro caractere da string
procurada, caso no ache, retorna falso. Veja o exemplo da Figura 36.

Figura 36 Exemplo de uso da funo strpos( ).


Fonte: Prprio autor.

escrito 10.

Faa uma aplicao


em PHP que conte as
letras de seu nome e
d o resultado em
uma pgina HTML.

A resposta do
exemplo 10 e no
11 porque em PHP
comeamos a contar
de zero e no de um.

2.5 Operadores
Os operadores servem para executar uma operao em uma expresso, como
as operaes de soma, subtrao, multiplicao e diviso. muito parecido
como a matemtica, mas em linguagens de programao temos vrios outros.
Em PHP temos os seguintes operadores:

Operadores Aritmticos;
Operadores de Atribuio;

Faa um algoritmo
(programa) que
guarda seu nome
completo em uma
varivel string,
exibindo-o
concatenado com a
quantidade de letras
e a posio de incio
de seu ltimo nome.

35

Linguagem de Programao para Web

Competncia 02

Operadores de Incremento e Decremento;


Operadores de Comparao;
Operadores Lgicos.

2.5.1 Operadores Aritmticos


OPERADOR

NOME

DESCRIO

EXEMPLO

RESULTADO

x+y
x-y
x*y
x/y
x%y
-x

Adio
Subtrao
Multiplicao
Diviso
Mdulo
Negativo

Soma de x e y
Subtrao de x e y
Produto de x por y
Quociente de x por y
Resto da diviso de x por y
Inverte o sinal de x

2+2
7-2
3*2
4/2
5%2
-2

4
5
6
2
1
2

2.5.2 Operadores de Atribuio


OPERADOR

COMO SE FOSSE...

x=y

x=y

x += y
x -= y
x *= y
x /= y
x %= y
x .= y

x=x+y
x=xy
x=x*y
x=x/y
x=x%y
x=x.y

DESCRIO

Coloca no operando da esquerda o resultado ou valor


da direita
Adiciona y a x
Subtrai y de x
Multiplica x por y
Divide x por y
Coloca em x o resto da diviso de x por y
Concatena duas strings

2.5.3 Operadores de Incremento e Decremento


OPERADOR

NOME

DESCRIO

++x
x++
--x
x- -

pr-incremento
ps-incremento
pr-decremento
ps-decremento

Soma um ao valor de x e depois retorna x


Retorna x e depois soma um ao valor de x
Subtrai um do valor de x e depois retorna x
Retorna x e depois subtrai um do valor de x

2.5.4 Operadores de Comparao


OP.

NOME

DESCRIO

EX.

RES.

x == y
x != y
x <> y
x>y
x<y

Igual
No igual
Diferente
Maior que
Menor que
Maior que ou
igual
Menor que ou
igual

Retorna verdadeiro se for igual.


Retorna verdadeiro se for diferente.
Retorna verdadeiro se for diferente.
Retorna verdadeiro se x for maior que y
Retorna verdadeiro se x for menor que y
Retorna verdadeiro se x for maior que ou igual a
y
Retorna verdadeiro se x for menor que ou igual
ay

2 == 3
2 != 3
2 <> 3
3>2
2<3

false
true
true
true
true

3 >= 3

true

2 <= 3

true

x >= y
x <= y

36

Tcnico em Informtica

Competncia 02
2.5.5 Operadores Lgicos
OPERADOR

NOME

x and y

x or y

ou

x && y

x || y

ou

!x

no

DESCRIO

EXEMPLO

Retorna verdadeiro se x e y forem


verdadeiro
Retorna verdadeiro se houver um
verdadeiro
Retorna verdadeiro se x e y forem
verdadeiro
Retorna verdadeiro se houver um
verdadeiro

x=1; y=9
(x < 3 and y > 5)
x=1; y=9
(x == 1 or y == 2)
x=1; y=9
(x < 3 && y > 5)
x=1; y=9
(x == 1 || y == 2)
x = 1, y = 9
!(x == y)

Retorna verdadeiro se x for falso

RESULTADO

true
true
true
true
true

O exemplo da Figura 37 mostra a utilizao de operadores matemticos, de


atribuio e incremento. Os operadores comparativos e lgicos podero ser
demonstrados na prxima sesso, utilizando uma estrutura de deciso
if...else.

Figura 37 Exemplo com operadores.


Fonte: Prprio autor.

2.6 Echo
J utilizamos algumas vezes o echo para escrever os resultados da
computao, mas o que est sendo exibido texto sem as tags HTML.
Podemos melhorar esta sada colocando qualquer tag HTML na string.
No s podemos escrever tags, como tambm podemos colocar as variveis
na string e o interpretador PHP vai substituir seus nomes pelos respectivos
valores. Observe o exemplo da Figura 38 e veja o resultado na Figura 39.

Os operadores de
incremento e
decremento so os
mais difceis de
entender. Estude o
exemplo por mais
tempo at
compreender
porque foi exibido
para x 9, 9 e depois
10.

Para fixar o que foi


lido, pratique o
seguinte exerccio.
Faa um programa
em PHP que calcule
e exiba os dias
aproximados que
voc viveu at hoje.
Sabendo que cada
ano tem 365 dias,
um ms 30 e uma
semana 7.

37

Linguagem de Programao para Web

Competncia 02

Figura 38 Exemplo de echo com sada em HTML.


Fonte: Prprio autor.

Figura 39 Exibio no navegador do resultado.


Fonte: Prprio autor.

E se precisarmos escrever um cifro ou aspas duplas? Podemos utilizar como


alternativa para o echo uma string limitada por aspas simples. Dessa forma,
nada tratado e o que estiver na string vai ser impresso. Vamos tentar com o
mesmo exemplo. Observe na Figura 38 o cdigo e o resultado na Figura 39.

Figura 40 Utilizando aspas simples no echo.


Fonte: Prprio autor.

Utilizamos apenas a
tag <h1> devido ao
espao deste
caderno, mas uma
pgina web tem
diversas outras
tags. Faa um
algoritmo que
escreva uma pgina
web simples, mas
completa.

Figura 41 Exibio com aspas simples.


Fonte: Prprio autor.

2.7 If...Else
Linguagens de programao tm duas estruturas em comum: estruturas de

38

Tcnico em Informtica

Competncia 02
repetio e estruturas de condicionais. O if...else uma estrutura condicional.
Ela verifica uma condio, se for verdadeira faz algo, seno faz outra coisa.
Vamos ver sua sintaxe.
if (condio) comando;
if (condio) {
// Bloco de cdigo. Aqui pode ter vrias linhas.
}

Nos casos acima o if verifica a condio, se for verdade ela executa um


comando. Caso queira mais de um comando voc deve criar um bloco de
comando utilizando { e }.
Caso a condio seja falsa, o comando ou bloco ser ignorado.
O else significa seno. Utilize-o para colocar um comando ou bloco de
comandos, caso a condio seja falsa.
A Figura 42 mostra um exemplo.

Figura 42 Exemplo da estrutura condicional if...else.


Fonte: Prprio autor.

O exemplo acima escreve x menor do que y, passa prxima linha e


escreve y maior do que x, o valor de y 100.

Chegou a hora de
exercitar. Faa um
algoritmo que
tenha uma varivel
com a hora do
momento em que
voc est fazendo
este exerccio, por
exemplo, 3hs da
tarde. Utilize
if...else para dar
Bom dia! se for
menor que 12 e
Boa tarde! se no
for. Veja se
consegue dar
tambm Boa
noite! se passar
das 18.

39

Linguagem de Programao para Web

Competncia 02
2.8 Switch
A estrutura if...else verifica se uma condio verdadeira ou falsa. No
entanto, podemos ter situaes onde o resultado da verificao pode ser de
mais de duas possibilidades. A escolha de um menu um exemplo dessa
situao, onde podemos ter vrias opes de escolha. Apesar de podermos
utilizar vrias estruturas de if...else para verificar o resultado da condio,
sero necessrias vrias linhas. Para encurtar e melhorar o entendimento
que foi criada a estrutura switch.
Switch uma estrutura de condio, assim como o if...else, que verifica uma
condio com vrias possibilidades de resposta. Sua sintaxe est abaixo:
switch (n) {
case x:
cdigo a ser executado se n igual a x;
break;
case y:
cdigo a ser executado se n igual a y;
break;
...
default:
cdigo a ser executado se n no for nenhuma das opes anteriores.
}

Como que funciona?


O switch verifica a expresso n, que normalmente uma varivel. Ela
avaliada uma vez e ento comparada com os valores de cada um dos case na
estrutura, o x e o y. Se houver uma correspondncia, o bloco de cdigos
depois dos dois pontos executado.
Utilize break para evitar que o cdigo do prximo case seja executado
automaticamente.
A declarao default executada se no houver nenhuma correspondncia.

40

Tcnico em Informtica

Competncia 02
A Figura 43 mostra um exemplo.

Figura 43 Exemplo da estrutura Switch.


Fonte: Prprio autor.

O exemplo acima retorna Rockn Roll, baby!. Voc pode mudar o valor da
varivel $musica para ver os outros resultados. Tambm pode colocar um
valor que no existe nas opes para exibir a opo default.
2.9 Array
Um array uma varivel que guarda variveis. Ela muito til para armazenar
colees de um tipo, por exemplo, uma lista de nomes, onde cada nome
uma string. Se compararmos uma varivel a uma gaveta onde colocamos
coisas, um array um armrio com vrias gavetas ( Figura 44). Arrays tambm
so chamados de matrizes, como em matemtica.

Vamos fazer um
exerccio utilizando
switch.
Faa o mesmo
algoritmo da sesso
anterior, dessa vez
utilizando switch ao
invs do if...else.
Utilize as opes de
manh, tarde e
noite para os
cases. E exiba um
Bom dia!, Boa
tarde! e Boa
noite!
correspondente ao
valor da varivel
condicional. Caso
no seja nenhuma
das opes, escreva
um Ol!.

Figura 44 Ilustrao de uma varivel array. A varivel $nomes guarda a lista de


nomes direita.
Fonte: prprio autor.

Imagine que voc possui uma lista de nomes de clientes. Se voc quiser

41

Linguagem de Programao para Web

Competncia 02
guardar cada um dos nomes, vai precisar de uma varivel para cada nome.
Mas se sua lista de clientes for enorme, a vai ficar confuso ter tantas variveis
assim. Um array pode guardar toda a lista em uma nica varivel e podemos
localizar cada uma das gavetas do array por um ndice. Este ndice como
uma etiqueta na gaveta.
Em PHP podemos ter dois tipos de matrizes:

Matrizes indexadas;
Matrizes associativas.

2.9.1 Arrays Indexados


H duas maneiras de criar matrizes indexadas:
Na primeira no se coloca o ndice e ele atribudo automaticamente
comeando pelo 0. Veja a Figura 45.

Figura 45 Exemplo de array com ndice automtico.


Fonte: Prprio autor.

Na segunda forma definido individualmente cada ndice. Veja na Figura 46.


Voc pode definir qualquer numerao, inclusive comear pelo 1 ao invs do
0.

Figura 46 Exemplo de array com definio de ndice.


Fonte: Prprio autor.

42

Tcnico em Informtica

Competncia 02
2.9.1.1 Contando os Elementos de um Array
A funo count( ) nos d o total de elementos de um array. A Figura 47 nos
traz um exemplo. Essa funo de muita importncia, por isso decore-a bem.
Ela usada em estruturas de repetio para listas, de forma mais prtica do
que no exemplo da Figura 46. Estudaremos a estrutura de repetio mais
adiante.

Figura 47 Utilizao da funo count( ).


Fonte: Prprio autor.

2.9.2 Arrays Associativos


Arrays associativos so arrays que voc associa com algum nome ao invs de
um ndice numrico. A Figura 48 mostra um exemplo. Tenha a ateno de
observar que colocamos o nome da associao Lus com aspas simples, e
retornamos o seu valor 5555-3765.

Figura 48 Exemplo de array associativo.


Fonte: Prprio autor.

2.9.3.1 Loops em Arrays Associativos


Os loops em arrays associativos so diferentes de arrays indexados, j que

Reproduza cada um
dos exemplos de
arrays em seu
computador.
Decore a forma de
us-los at no
precisar consultar o
caderno de estudos.

43

Linguagem de Programao para Web

Competncia 02
estes no possuem o ndice numrico. Observe no exemplo que usamos uma
estrutura foreach que significa para cada. Dessa forma, percorremos o
array e pegamos seu nome de associao para poder exibir seu contedo.
Observe na Figura 49 um exemplo. Estudaremos a estrutura foreach mais
adiante.
Este um dos
exemplos mais
importantes.
Reproduza at
ented-lo
perfeitamente.
Figura 49 Exemplo de loop para arrays associativos.
Fonte: Prprio autor.

2.10 Estruturas de Repetio


Quando programamos em PHP precisamos repetir o mesmo cdigo para que
ele seja executado vrias vezes. As estruturas de repetio foram criadas para
fazer este servio para ns, sem que precisemos repetir o cdigo. Em PHP
temos quatro estruturas de repetio:
while - repete o bloco de cdigo enquanto uma condio especificada for
verdadeira;
do...while - repete o bloco de cdigo uma vez, e depois repete novamente
enquanto a condio especificada for verdadeira;
for - repete o bloco de cdigo um determinado nmero de vezes;
foreach - repete o bloco de cdigo para cada elemento de um array.
2.10.1 While
Repete o bloco de cdigo enquanto uma condio especificada for verdadeira.
Veja a sintaxe abaixo.
while (condio) {

44

Tcnico em Informtica

Competncia 02
bloco de comandos;
}

O exemplo da Figura 50 define a varivel $i inicialmente com o valor de 1 ($i =


1;). Em seguida, o loop while continuar a ser executado enquanto i for
menor ou igual a 5 ($i <= 5). A varivel i vai aumentar em 1 a cada vez que o
loop executado ($i++;).

Figura 50 Exemplo de um loop while.


Fonte: Prprio autor.

Eis um desafio. Uma


tabela HTML pode
possuir vrias linhas
<TR> e vrias
colunas <TD>.
Utilize uma
estrutura WHILE
dentro de outra
para fazer uma
tabela de 100 linhas
por 10 colunas.

2.10.2 Do...While
Esta estrutura repete o bloco de cdigo uma vez, e depois repete novamente
enquanto a condio especificada for verdadeira. Veja a sintaxe abaixo.
do {
bloco de comandos;
} while (condio) ;

O exemplo da Figura 51 define a varivel $i inicialmente com o valor de 1 ($i =


1;). Ento, ele comea o do...while. O ciclo ir somar a varivel i com 1, e em
seguida, escrever alguma sada. Em seguida, a condio verificada (i menor
ou igual a 5), se for o bloco de cdigo repetido. Se no for, a repetio
interrompida e a prxima linha depois do do...while lida.

45

Linguagem de Programao para Web

Competncia 02

O exerccio anterior
foi difcil? Este
agora deve ser mais
fcil. Faa o
exerccio anterior
utilizando
do...while, ao invs
de while.

Figura 51 Exemplo de repetio de cdigo com a estrutura do...while.


Fonte: Prprio autor.

2.10.3 For
Esta estrutura de repetio usada quando se sabe com antecedncia o
nmero de repeties. Veja a sintaxe abaixo.
for (inicial; condio; incremento/decremento) {
bloco de cdigo;
}

Na sintaxe acima, inicial define uma varivel que ser o nosso contador.
Condio uma expresso para interromper a repetio. E
incremento/decremento usado para alterar o valor do contador.
O exemplo da Figura 52 define um ciclo que comea com $i = 1. A repetio
continuar a funcionar enquanto a varivel $i for menor que, ou igual a 5. A
varivel $i vai aumentar em 1 a cada vez que o loop executado.

Figura 52 Exemplo da estrutura de repetio for.


Fonte: Prprio autor.

Modifique o
exerccio anterior
para utilizar for.
Lembre-se de que
voc vai precisar de
um for dentro de
outro para
conseguir.

46

Tcnico em Informtica

Competncia 02
2.10.4 Foreach
usado para percorrer arrays associativas. Veja a sintaxe abaixo.
foreach ($array as $valor) {
bloco de cdigo;
}

Para cada iterao do loop, o valor do elemento da matriz corrente


atribudo a $valor (e o ponteiro do array movido por um) - assim na prxima
iterao do loop, voc estar olhando para o prximo valor do array. Dessa
forma, sempre passando adiante enquanto houver.
O exemplo da Figura 53 demonstra seu uso.

Repita este
exemplo no seu
computador para
entend-lo melhor.

Figura 53 Exemplo de repetio com a estrutura foreach.


Fonte: Prprio autor.

47

Linguagem de Programao para Web

Competncia 03
3.COMPETNCIA 04
LINGUAGEM PHP

FUNDAMENTOS

AVANADOS

DA

Aprendemos os fundamentos bsicos da linguagem. Caso voc tenha dvida


em alguma parte da competncia passada, releia o caderno de estudos, faa
alguns testes e pratique mais. Voc tambm pode encontrar mais
informaes buscando na internet. de vital importncia que voc entenda
bem todos os pontos apresentados anteriormente para poder continuar.
Ento vamos comear com as Funes em PHP. O verdadeiro poder do PHP
est em suas funes. Existem mais de 700 funes j construdas e podemos
fazer nossas prprias funes personalizadas.
3.1 Funes
J utilizamos funes na competncia passada. As funes de string strlen( ),
que calculam o total de caracteres da string, e strpos( ), que retorna a posio
de uma sequncia de caracteres, so funes prontas do PHP. Nesta sesso
vamos mostrar como criar suas prprias funes.

Voc pode
encontrar toda a
lista de funes PHP
j construdas neste
endereo:
http://php.net/man
ual/pt_BR/indexes.f
unctions.php

Funes so pequenos programas que ajudam sua aplicao em uma tarefa.


Vamos supor que voc tenha uma aplicao que calcula uma nota fiscal. Mas
para dar o total da nota voc tem que fazer outro clculo, o do frete. Este
clculo do frete no faz parte do clculo da nota fiscal, porque ele pode ter ou
no. Alm disso, o usurio pode tentar outros lugares de entrega para
baratear o frete. Podemos criar uma funo que faa s este clculo.
Separar as responsabilidades muito importante. Se o clculo do frete em
outro lugar, estando separado da aplicao principal, isto simplifica para
acharmos o cdigo se algum problema acontecer. Outra vantagem de
utilizarmos funes que podemos cham-la vrias vezes em nossa pgina
PHP. Assim, se precisarmos modificar o cdigo desta funo s precisar fazer

48

Tcnico em Informtica

Competncia 03
a modificao em um lugar e no em vrios.
Usando funes, o cdigo fica mais simples e de fcil manuteno. Podemos
at utilizar funes de outras pessoas, sem nem mesmo saber como foi
programado.
Mas como so criadas as funes e como podemos utiliz-las?
3.1.1 Criando Funes PHP
Uma funo precisa de um nome e de um bloco de cdigo que ser executado
quando chamamos a funo pelo seu nome. Observe sua sintaxe bsica:
function nomeDaFuncao() {
bloco de cdigo;
}

Voc deve ter os seguintes cuidados quando for nomear uma funo:
Coloque um nome que reflete o que ela faz;
Nomes de funes podem comear com letras ou sublinhado, nunca por
nmeros.
Evite utilizar caracteres especiais como cedilhas e letras acentuadas.
Na Figura 54 temos um exemplo com uma funo e a chamada desta funo
em dois lugares diferente, na tag <title> e na tag <h1>. Esta funo escreve a
frase Oi mundo! quando chamada. Na mesma figura temos o resultado no
navegador. Como o PHP interpretado linha aps linha, a funo deve ser
criada antes de ser chamada.

49

Linguagem de Programao para Web

Competncia 03

Figura 54 Exemplo de uma funo e chamada de funo.


Fonte: Prprio autor.

3.1.2 Adicionando Parmetros


Quando utilizamos funes para automatizar alguma tarefa, podemos precisar
de parmetros. Parmetros so como variveis que recebem um valor quando
a funo executada. Normalmente, esses parmetros so necessrios para a
realizao da tarefa.
Por exemplo, uma funo que soma dois nmeros. Para poder somar, ela vai
precisar dos dois nmeros que so os parmetros.
No exemplo da Figura 55, a funo recebe dois parmetros, $nome e
$sobrenome, para poder ser executado. Colocamos os valores na ordem, na
chamada da funo. Observe que chamamos duas vezes a funo com valores
diferentes.

50

Tcnico em Informtica

Competncia 03

Figura 55 Exemplo de passagem de parmetros para funes.


Fonte: Prprio autor.

3.1.3 Retornando Valores


Utilizamos exemplos anteriormente em que a tarefa no d um resultado.
Mas no exemplo da soma de dois algarismos temos um resultado.
Podemos retornar um valor computado pela funo utilizando a palavrachave return. Este comando retorna o que estiver direita e encerra a funo.
A Figura 56 mostra um exemplo de retorno de funo. A funo calcula a
soma de dois nmeros, $x e $y. Ela deve escrever uma pgina com 2 + 2 = 4.

Figura 56 Exemplo de retorno de uma funo.


Fonte: Prprio autor.

Pode parecer
simples a utilizao
de funes, mas
antes de prosseguir,
escreva e testes os
exemplos
apresentados, para
melhor fixao. A
prxima
competncia
utilizar muito do
que j foi visto,
principalmente
funes.

Agora, vamos
exercitar o que
vimos sobre
funes. J temos a
operao de soma,
faa as operaes
restantes
(subtrao,
multiplicao e
diviso). No
esquea de testar.

51

Linguagem de Programao para Web

Competncia 03
3.2 Formulrios
At agora no recebemos nenhuma informao do usurio nos exemplos
anteriores. Utilizamos os dados que colocamos em variveis. Para poder
receber informaes do lado do cliente, ou seja, do usurio, utilizamos
hiperlinks ou formulrios.
Recebemos informao do usurio quando ele clica em um hiperlink,
chamado de mtodo GET, ou quando nos envia um formulrio, chamado de
mtodo POST. Ento vamos ver estas duas abordagens, suas vantagens e
desvantagens.
3.2.1 Mtodo GET
Este mtodo foi uma das primeiras formas de comunicao cliente/servidor
via web. Ele utiliza a URL do site para enviar dados.
Como vantagem, no precisa de um formulrio HTML, pode ser digitado
diretamente no hiperlink. No entanto, visvel para todos. Digitar senhas
utilizando o mtodo GET invivel.
Como realizado o envio de dados por GET: www.meusite.com.br/index.
php? nome= fulano&idade=30
Depois da interrogao, so enviadas duas variveis com seus respectivos
valores: nome = fulano, idade = 30. O & separa uma varivel da outra.
Dessa forma, podemos passar em um link alguns dados, mas existe um limite
de 2000 caracteres neste mtodo.
Para receber o dado no aplicativo PHP pelo mtodo GET, temos uma varivel
chamada $_GET. Tudo que enviado por este mtodo se encontra nesta
varivel. Seguindo o exemplo de envio acima, podemos receber o nome da
seguinte forma.

52

Tcnico em Informtica

Competncia 03
$_GET[nome]

Na Figura 57 temos uma pgina HTML que mostra um hiperlink para uma
pgina PHP enviando dados por GET. Na Figura 58 a pgina PHP recebe os
dados e escreve uma pgina de resposta dando um Oi! para o usurio.
Na Figura 58 vemos o resultado do algoritmo e o endereo com o nome da
varivel e o seu valor.

Figura 57 Pgina HTML, enviar.html, que envia dados pelo mtodo GET.
Fonte: Prprio autor.

Figura 58 Pgina get.php que recebe os dados enviados e processa.


Fonte: Prprio autor.

Figura 59 Resultado no navegador. O endereo da pgina contm o nome.


Fonte: Prprio autor.

3.2.2 Mtodo POST


O mtodo POST utiliza um formulrio HTML para enviar a informao. A

53

Linguagem de Programao para Web

Competncia 03
maioria dos formulrios que voc utiliza na web, incluindo aqueles do AVA,
utiliza este mtodo. As informaes passadas por ele so invisveis ao usurio
e ele tem uma capacidade virtualmente infinita de envio. Seu limite definido
pela configurao do PHP no servidor, que por padro de 8Mb. No entanto,
pode ser mais ou menos.
A forma de receber os dados muito parecida com o mtodo anterior, s que
utilizamos $_POST[varivel] para receber os dados.
Veja o exemplo na Figura 60. Nela temos um formulrio HTML comum, que
envia os dados pelo mtodo POST para uma pgina PHP, Figura 61. O
resultado definido na Figura 62. Observe na URL que os dados so enviados
de forma invisvel.

Figura 60 Exemplo de um formulrio utilizando o mtodo POST.


Fonte: Prprio autor.

Figura 61 Exemplo de uma pgina PHP que recebe dados de um formulrio HTML pelo mtodo POST.
Fonte: Prprio autor.

54

Tcnico em Informtica

Competncia 03

Figura 62 Sada da pgina PHP. Observe a URL, no h dados.


Fonte: Prprio autor.

Observe na Figura 61 que na tag <form> temos a opo method. Esta opo
seleciona se voc quer utilizar o mtodo GET no envio dos dados do
formulrio. No entanto, ser totalmente visvel o envio e teremos a limitao
de caracteres.
3.2.3 Varivel $_REQUEST
Os desenvolvedores do PHP implantaram a varivel $_REQUEST para os casos
onde no se sabe o mtodo de envio utilizado. Esta varivel d acesso s
variveis dos dois formulrios, tanto GET quanto POST.
Ela usada da mesma forma que $_GET e $_POST s que escrevemos
$_REQUEST no lugar. Veja o exemplo anterior utilizando $_REQUEST na Figura
63.

Figura 63 Utilizao da varivel predefinida $_REQUEST.


Fonte: Prprio autor.

Muito da
comunicao entre
o usurio e nossa
aplicao ser
realizada por
variveis, por isso,
muito importante
que voc refaa os
exemplos dados
com bastante
ateno. Depois,
para exercitar, faa
uma pgina HTML
que envie sua cor
preferida por um
hiperlink utilizando
o mtodo GET.
Quando terminar,
construa uma
pgina com um
formulrio que
pede para o usurio
digitar sua cor
preferida enviando
pelo mtodo POST,
e exiba uma
mensagem dizendo
qual foi a cor.

55

Linguagem de Programao para Web

Competncia 03
3.3 Include e Require
PHP nos d duas formas de inserir o contedo de outros arquivos PHP antes
que o interpretador execute nosso cdigo.
As duas formas de incluso so feitas atravs das palavras-chaves include e
require. A nica diferena entre eles est na forma como lidam com erros
quando o arquivo que ser acrescido no encontrado.
No caso do require o erro ser letal e a interpretao do compilador ir parar
a execuo no ponto do erro, enviando o cdigo e mensagem de erro.
No caso do include, a interpretao no para e emitido o aviso de erro no
local em que acontece.
Qual deles voc utilizar depende da importncia do que est sendo
acrescentado. Se o arquivo essencial para a aplicao, ento, utilizar o
require pode impedir que sejam expostas partes importantes do sistema. Mas
caso o que ser includo no arquivo no seja to relevante, utilizar o include
garante que o restante do script ser executado normalmente.
A sintaxe para incluir os arquivos :
include nomedoarquivo.php;
require nomedoarquivo.php;

Includes so utilizados frequentemente. Uma das formas mais comum para


poupar tempo na construo de pginas HTML. Normalmente, o cdigo HTML
do cabealho e do rodap repete-se muito nas diversas pginas do site. Ento,
podemos colocar o cabealho em uma pgina PHP e o rodap em outra, e
fazer os includes desses arquivos sempre que precisarmos. Outra vantagem
desta metodologia que se precisarmos alterar algo nessas partes, s
faremos uma vez. Outra utilizao a colocao de funes genricas em um

56

Tcnico em Informtica

Competncia 03
arquivo util.php. Assim, sempre que for preciso, o inclumos no comeo do
arquivo.
Na Figura 64 temos uma pgina PHP que escreve um menu. Na Figura 65
temos outra pgina que faz o include do cdigo do menu.

Figura 64 Pgina menu.php.


Fonte: Prprio autor.

Figura 65 Pgina que faz o include do contedo do arquivo menu.php.


Fonte: Prprio autor.

3.4 Sesses PHP

Voc pode fazer seu


sistema em PHP
sem utilizar
includes, mas que
eles ajudam muito,
ajudam. Como
vamos utilizar
includes em nosso
sistema de
locadora, vamos
exercitar. Faa uma
pgina PHP que
contenha um ttulo
em <h1>. Faa
outra pgina que
inclua este cdigo
utilizando include.
Caso tenha
curiosidade, faa
um erro proposital,
colocando o nome
do arquivo errado,
e veja como se
comporta o
interpretador PHP
quando voc usa
include e require.
Veja o cdigo HTML
retornado para
saber se ele
terminou de ser
escrito.

Uma sesso PHP uma rea da memria que todas as pginas de sua
aplicao compartilham. Ela til para armazenar informaes do usurio
e/ou estado da aplicao. J que todas as variveis so apagadas com o fim do
algoritmo, na sesso temos um lugar seguro para guardar variveis quando o
usurio pula de uma pgina para outra do nosso site.
Por exemplo, quando voc vai fazer uma compra em uma loja virtual e digita
seu login e sua senha. O aplicativo da loja abre uma sesso para voc e
registra algumas informaes nela como nome do usurio e o seus produtos

57

Linguagem de Programao para Web

Competncia 03
no carrinho, dessa forma, no importa o quanto voc navegue nas pginas da
loja, a aplicao vai continuar sabendo que voc at sair da loja, quando
tudo na sesso apagado.
Para utilizar uma sesso PHP, primeiramente temos que inici-la chamando a
funo session_start(). A Figura 66 mostra como fazer isto.

Figura 66 Inicializando uma sesso PHP.


Fonte: Prprio autor.

No exemplo da Figura 67 salvamos um valor na sesso atravs da varivel


predefinida $_SESSION[nomedavariavel] e a usamos da mesma forma como
uma varivel comum.

Figura 67 Salvando variveis na sesso e as usando.


Fonte: Prprio autor.

Caso queira retirar uma varivel da sesso, utilize a funo unset() da seguinte
forma:

Sesses so
importantes para
autenticao do
usurio. Ser que
voc j consegue
misturar o que
aprendeu? Vamos
ver? Faa um
formulrio que
envie um login e
uma senha e guarda
eessas informaes
em uma sesso.
Ento, mostre um
Bom dia, com o
nome do usurio
em uma pgina,
caso seja digitado
corretamente.
Assim, utilizaremos
o mtodo POST e
guardaremos em
uma sesso as
informaes e
podemos utilizar o
include em toda
pgina que
quisermos manter
em segredo.

unset($_SESSION[nomedavariavel])

Uma sesso destruda quando o usurio deixa o site. Mas caso voc queira

58

Tcnico em Informtica

Competncia 03
destruir uma sesso antes, por exemplo, por um boto de Sair, pode chamar a
funo session_destroy() para isso.
3.5 Funo ISSET()
Perceba que nosso contador de pginas do exemplo anterior s conta uma
pgina, o que no muito bom. Vamos melhorar aprendendo uma funo
muito til.
A funo isset() verifica se a varivel consta na memria. Se existir, retorna
verdadeiro, seno, falso.
Vamos melhorar nosso contador de pginas utilizando esta funo da forma
como est na Figura 68. Se a varivel estiver na sesso, ela soma um, seno
estiver, coloca na sesso com o valor de um.

Figura 68 Utilizando a funo isset() para saber se uma varivel existe na memria.
Fonte: Prprio autor.

Veja em seu navegador a pgina. Cada vez que voc atualiza o nmero de
visualizaes acrescentado um s visualizaes.

Como nosso ltimo


exerccio desta
competncia faa
um algoritmo em
PHP que crie uma
varivel comum
chamada nome e
coloque seu nome
nela. Verifique se
ela existe. Caso
exista, imprima seu
contedo.

Voc deve ler e


reler o contedo
deste caderno para
melhorar seu
entendimento nos
assuntos
abordados. Na
internet existem
tutoriais que
explicam de outra
forma esses
assuntos. O AVA
disponibiliza o
frum para voc
postar suas dvidas.
Fazer os exemplos e
exerccios
essencial para o
aprendizado. E s
para lembrar que a
maioria dos erros
quando se est
aprendendo so de
digitao, ento,
preste bem ateno
ao que est
fazendo.

59

Linguagem de Programao para Web

Competncia 04
4.COMPETNCIA 04 | PROJETO: INCLUINDO, ALTERANDO,
EXIBINDO E EXCLUINDO INFORMAES
Se voc leu com ateno o caderno de estudo, fez tanto os exemplos quanto
os exerccios e no ficou com dvida, ento est preparado para iniciar esta
nova competncia. Vamos usar o que aprendemos at agora para construir
um sistema de locadora de DVDs. Mas no s utilizar o que foi visto, nosso
sistema necessita da persistncia dos dados em um banco de dados. Para isso,
aprendemos anteriormente como construir e manusear um banco de dados.
Dessa forma, no iremos abordar esse assunto nesta competncia. Outra
competncia que no abordaremos ser a marcao HTML e o estilismo em
CSS, isso voc tambm j deve conhecer. O que aprenderemos ento ser
como o PHP se comunica com o banco de dados MySQL para incluir, alterar,
excluir e recuperar dados.
Primeiramente voc deve baixar no AVA o projeto j iniciado, com o HTML e
CSS j construdos. A partir dele que montaremos nosso sistema.
Descompactar em htdocs o nosso projeto inicial.
Agora, vamos importar no Aptana Studio 3. Com o aplicativo iniciado, v em
File > Import..., observe a Figura 69.

60

Tcnico em Informtica

Competncia 04

Figura 69 Importando um projeto.


Fonte: Prprio autor.

Ir aparecer a caixa de dilogo da Figura 70. Selecione Existing Projects into


Workspace e pressione Next... .

Figura 70 Tela de importao de projetos.


Fonte: Prprio autor.

61

Linguagem de Programao para Web

Competncia 04
Em Select root directory: utilize o boto Browse... para mostrar ao Aptana
onde voc descompactou o projeto. Marque a caixa Copy projects into
workspace para copiar o projeto para o seu workspace, caso voc tenha
descompactado em outro lugar que no a pasta htdocs. Pressione o boto
Finish quando terminar.
Caso no lembre o que seja wokspace, leia novamente a sesso 4.4.

Figura 71 Importando um projeto.


Fonte autor.

Se tudo ocorreu direito o projeto vai aparecer no Painel Project Explorer,


Figura 72, entre seus outros projetos.

Figura 72 Painel Project Explorer.


Fonte: Prprio autor.

62

Tcnico em Informtica

Competncia 04
O projeto composto pelas seguintes pastas, Figura 73:

css: configuraes de exibio em CSS do modelo;


images: imagens do modelo;
js: programao JavaScript dos comportamentos do modelo;
index.php: modelo em HTML do site da locadora PopcornTV.

Figura 73 rvore de pastas do projeto.


Fonte: Prprio autor.

Figura 74 Arquivo index.php, exibio no navegador.


Fonte: Prprio autor.

Pronto! Agora que tudo est no lugar podemos comear. Observe que o
modelo no possui nenhuma programao em PHP. Ns que vamos escrevlas. Vamos comear?

63

Linguagem de Programao para Web

Competncia 04
4.1 Templates
Nosso sistema ter vrias pginas PHP, cada uma ter uma responsabilidade,
como incluir produto, incluir cliente, listar fornecedores, etc. Teremos, ento,
que repetir muito cdigo HTML. Se vamos repetir muito do mesmo cdigo,
vamos utilizar include (sesso 4.3) para diminuir nosso trabalho e nos ajudar,
caso haja alguma mudana nesse cdigo no futuro.
Abra o arquivo index.php e copie o contedo da primeira linha at a primeira
tag <div class="row">. Agora crie um novo arquivo PHP (sesso 2.5) com o
nome de template_topo.php . Cole as marcaes HTML neste arquivo. No se
preocupe que o arquivo tenha a extenso php, mas dentro seja apenas HTML.
O PHP esperto o suficiente para saber a diferena. A Figura 75 mostra como
deve ficar.

Figura 75 Pgina template_topo.php.


Fonte: Prprio autor.

Agora crie a pgina template_rodape.php. Copie o final da pgina HTML de


base em index.php para este arquivo. Voc deve copiar a partir da
antepenltima tag </div>. No se esquea de salvar todos os arquivos.
Temos agora o comeo e o final de todas nossas pginas. Vamos fazer um
modelo para testar e servir de base para as prximas.

64

Tcnico em Informtica

Competncia 04
Na pgina index.php acrescente o cdigo PHP para incluir o contedo dos
arquivos recm criados. No comeo do arquivo apague o cdigo que voc
copiou e inclua (sesso 4.3) no incio o arquivo template_topo.php e no final
template_rodape.php. Agora toda vez que voc precisar de uma nova pgina
basta fazer o include inicial e final. O cdigo no meio ser o contedo do site.
Na index.php iremos aproveitar o cdigo do formulrio que j est pronto, e
da tabela.
Veja como deve ficar na Figura 76.

Figura 76 Montagem do arquivo index.php. Na imagem temos o incio e o fim do arquivo. O meio foi
suprimido para melhor visualizao.
Fonte: Prprio autor.

Teste a pgina index.php e veja se o resultado foi igual ao da Figura 77.

65

Linguagem de Programao para Web

Competncia 04

Figura 77 - Pgina index.php.


Fonte: Prprio autor.

4.2 Conectando ao MySQL


Para podermos incluir, excluir, alterar e listar dados de um banco de dados
MySQL devemos nos conectar a ele.
O PHP possui muitas funes teis e uma delas a mysqli_connect(). Esta
funo uma atualizao da mysql_connect(). Tenha cuidado para no
confundir. Ela vai fazer o trabalho de se conectar ao banco. Para isso, temos
que passar algumas informaes como argumentos: o endereo de acesso ao
banco, a senha, o login e o nome do banco.
A conexo com o banco ser fechada automaticamente quando o script
terminar, mas podemos fechar quando quisermos com a funo
mysqli_close(). Para isso, ele recebe como argumento a conexo que ser
fechada.
A funo mysqli_connect_errno() retorna verdadeiro se ocorrer algum erro.
Nesse caso, mostramos uma mensagem e encerramos a execuo da pgina.

66

Tcnico em Informtica

Competncia 04
Ento, vamos abrir uma conexo com nosso banco em um arquivo separado,
j que vamos ter que fazer isso em vrias pginas. Depois vamos fechar, s
para teste. A Figura 78 mostra a pgina PHP conexao.php.

Figura 78 Pgina conexo.php.


Fonte: Prprio autor.

Na sesso anterior inclumos outros arquivos PHP no index.php, vamos incluir


este tambm, mas usando require. Observe na Figura 79. Teste a pgina para
ver se aparece alguma mensagem de erro. Se no aparecer, ento tudo
ocorreu bem.

Voc deve ter o


cuidado de saber o
endereo de seu
banco, a senha, o
login e o nome do
banco. Caso algum
deles esteja errado,
ir aparecer uma
mensagem de erro
informando o erro.
Verifique tambm
se o XAMPP est
ligado com o
Apache e o MySQL
(sesso 2.3).

Figura 79 Pgina index.php, require do arquivo conexo.php.


Fonte: Prprio autor.

4.3 Listando Dados


Fazemos ao MySQL pedidos. O pedido uma string comum que possui
comandos MySQL. A funo mysqli_query() recebe como argumento nossa
string com o comando e envia pela conexo aberta. Seu retorno o resultado
da solicitao.

67

Linguagem de Programao para Web

Competncia 04
Vamos utilizar esta funo para pedir ao MySQL que nos envie uma listagem
dos produtos que esto em nosso banco. Como j passamos pelas
competncias que mostram os comandos SQL, no vamos nos focar nelas.
Caso no lembre, pegue seu caderno de estudos daquela competncia e
revise para poder continuar.
A pgina que vamos construir ir exibir o contedo da tabela filme. Temos
algumas informaes fictcias para podermos testar nossa aplicao.
Ento, abra nossa pgina index.php e salve ela com o nome de
listar_produtos.php. A Figura 80 mostra o cdigo para listar os dados. O
cdigo est comentado para voc saber o que ordenado em cada passo,
linhas verdes. D uma olhada.
Primeiramente utilizamos mysqli_query() para receber a listagem e
guardamos na varivel $listagem. Observe que antes fizemos a conexo com
o banco de dados com o cdigo do require visto anteriormente e definimos a
codificao dos caracteres. Ento, exibimos algumas divs e o incio de uma
tabela em HTML. Na parte das linhas da tabela utilizamos um while para
pegar cada linha da listagem, que armazenada, uma de cada vez, na varivel
$linha como um array associativo (sesso 3.9). A chave para cada valor da
linha o nome do campo. Assim, um campo id na tabela tem o array
$linha[titulo] para pegar seu valor da coluna ttulo na tabela. Quando
termina a iterao no lao while a tabela HTML fechada e colocado o
cdigo do restante da pgina com um include.

68

Tcnico em Informtica

Competncia 04

Figura 80 Pgina index.php com o cdigo para listar. A imagem foi montada para mostrar o incio do cdigo
e seu final.
Fonte: Prprio autor.

Como existem
diversas lnguas no
planeta e nem
todas elas utilizam
os mesmos
caracteres que ns,
como o e o ~,
temos o CHARSET,
que a codificao
de caracteres para
o documento.
Utilizamos a linha
mysqli_query($con
exao, "SET NAMES
'utf8';"); para dizer
ao MySQL que nos
envie os dados em
um formato que
possui os caracteres
especiais de nossa
lngua.

69

Linguagem de Programao para Web

Competncia 04
A Figura 81 mostra o resultado no navegador.

Existe uma forma


curta de imprimir o
contedo das
variveis. Ao invs
de <?php echo
$linha['titulo'] ?>
voc pode
substituir por esta
formatao que
utiliza o smbolo de
igual ( = ). Assim,
<?= $linha[titulo]
?>
Faa a substituio
para ver como
funciona.
Figura 81 Exibio do resultado no navegador.
Fonte: Prprio autor.

Este cdigo de exemplo exibiu apenas um valor para simplificar o exemplo,


mas voc pode pegar os outros valores das outras colunas do mesmo modo.
claro que voc ir precisar alterar a tabela HTML para possuir mais colunas e
exibir mais valores.
4.4 Incluindo Dados
Agora que podemos ver os dados no banco, vamos adicionar dados.
O processo muito parecido, mas antes teremos que receber dados do
usurio. Precisaremos de um formulrio que receber os valores dados pelo
usurio.
O modelo j contm um formulrio em HTML que vamos modific-lo para
nossas necessidades. Ele vai servir tanto para incluir como para alterar os
dados. O formulrio em HTML ir enviar os dados pelo mtodo post para a

Sempre falamos da
importncia da
produo dos
exemplos e das
atividades para o
aprendizado. Copiar
muito simples,
mas ser que voc
entendeu os
conceitos
apresentados? Para
testar, faa um
exerccio que
muito parecido com
este. Faa a
listagem dos dados
da tabela
funcionario.
Observe que os
campos so
diferentes da tabela
filme.

70

Tcnico em Informtica

Competncia 04
pgina inserir_filme.php que faremos mais a frente, ser nele que
conectaremos com o banco. Por agora, voc deve terminar a tag <form>,
incluindo os parmetros action e post. Observe o exemplo na Figura 82.

Figura 82 Pgina index.php com o formulrio HTML.


Fonte: Prprio autor.

Quando o usurio clica no boto de salvar, os dados so enviados para a


pgina inserir_filme.php, faremos ela do incio sem reaproveitar cdigo. Crie
a pgina e digite o cdigo da Figura 83. O cdigo possui comentrio em texto
verde para ajudar a entender.
Esta pgina se conecta ao banco e recebe os valores do formulrio pela
varivel $_POST. Pegamos com esta varivel os valores de cada campo do
formulrio pelo seu name. Em seguida usamos novamente a funo
mysqli_query() para enviar para o MySQL o comando de gravao.

71

Linguagem de Programao para Web

Competncia 04

O comando or die()
significa que se a
funo retornar um
erro, a execuo deve
parar imediatamente
e o texto do
argumento
apresentado.

Figura 83 Pgina inserir_filme.php.


Fonte: Prprio autor.

4.5 Excluindo Dados


Para excluir uma linha em nosso banco de dados, antes de tudo, devemos
receber qual ser esta linha. Perguntar ao usurio no seria prtico, j que ele
teria que decorar o cdigo do produto que gostaria de apagar. Ento,
anteriormente, implantamos nossa listagem com dois campos extras, um com
um boto de excluir e outro com o boto de editar.
A lgica simples, no link do boto vamos enviar pelo mtodo GET (sesso
4.2.1) o cdigo da linha que iremos apagar para a pgina responsvel por isto.
Depois de apagar no banco, faremos como antes e redirecionaremos para a
pgina de listagem para conferir se tudo foi feito a contento.
Vamos comear!
Primeiro iremos alterar nossa pgina de listagem um pouco. Preste bastante
ateno, porque ser necessrio repetir o processo para o boto alterar na
prxima sesso. A Figura 84 mostra o que ser alterado.

Observe que no final


redirecionamos para
outra pgina pela
funo header().
Dessa forma, depois
de acrescentar no
banco, listamos seu
contedo para nos
certificar de que est
l da forma correta.
Na ltima linha temos
um exit para encerar a
execuo daquela
pgina.

Chegamos a uma
parte muito
importante, o
exerccio. Agora, voc
deve usar o que foi
visto e implantar o
algoritmo para inserir
o funcionario. O
cdigo muito
parecido com este,
mas o formulrio e os
campos so outros.
Preste bastante
ateno e pense bem
para saber o que vai
mudar e o que vai ser
igual.

72

Tcnico em Informtica

Competncia 04

Figura 84 Alterao na pgina index.php. Construmos parte do link atravs do PHP, para inserir o cdigo
em cada boto.
Fonte: Prprio autor.

A tag <a> no HTML define um hiperlink. No campo href colocamos o nome


da pgina e, atravs do mtodo GET, completamos a URL com a varivel
codigo e concatenamos seu valor com o nmero da respectiva linha. Veja o
resultado na Figura 85, o destaque vermelho mostra como ficou a primeira
linha, devidamente enviando o cdigo do segundo item.

Figura 85 Resultado da alterao em index.php. Cada boto de excluir ao lado de um item, envia o
respectivo cdigo. Em destaque o segundo item. Fonte: Prprio autor.

Agora vamos criar a pgina excluir_filme.php. Ser muito parecido com o


inserir que fizemos antes.
O algoritmo da pgina excluir_filme.php est na Figura 86 com comentrio
explicativos com texto verde.

73

Linguagem de Programao para Web

Competncia 04

Figura 86 Pgina excluir_filme.php.


Fonte: Prprio autor.

A pgina excluir_filme.php recebe a varivel codigo pelo mtodo GET.


Montamos o pedido de excluso em SQL acrescentando o contedo da
varivel $codigo. Dessa forma, o MySQL saber qual linha excluir e no vai
apagar tudo. Enviamos o pedido pela conexo utilizando a funo
mysqli_query() e, se algo der errado, paramos o script e mostramos a
mensagem de erro. Depois de tudo feito corretamente, redirecionamos a
exibio da pgina para listar_filme.php.
O resultado ser a exibio da listagem sem a linha que foi apagada.
4.6 Alterando Dados
Assim como excluir um registro, ou linha, no banco, precisamos saber com
antecedncia qual registro vamos editar. Vamos utilizar a mesma ideia
utilizada na listagem para excluso. Na pgina index.php faa a modificao
destacada na Figura 87.

Agora a sua vez.


Faa a excluso de
funcionario.

74

Tcnico em Informtica

Competncia 04

Figura 87 Modificao na pgina index.php.


Fonte: Prprio autor.

Dessa forma, quando exibirmos cada item da listagem, ao lado teremos um


boto para sua edio. Esse boto envia pelo mtodo GET o id do registro.
Seria bom vermos os dados de um registro j preenchidos em um formulrio
para facilitar a alterao. Podemos fazer isto diretamente no formulrio, que
inclui que est em index.php. Ento, vamos aproveitar a pgina, enviando a
ela o codigo.
Abra a pgina index.php e modifique para exibir os campos para edio j
preenchidos. A Figura 88 mostra a pgina com a nova codificao com
comentrio em texto verde. Preste bem ateno, porque temos modificaes
no comeo do arquivo e no meio do formulrio HTML.

75

Linguagem de Programao para Web

Competncia 04

Figura 88 Pgina index.php modificada para incluir e atualizar.


Fonte: Prprio autor.

76

Tcnico em Informtica

Competncia 04
Como esta pgina vai servir tanto para inserir como para alterar os dados no
formulrio, criamos uma varivel $destino para guardar onde vo ser
enviados os dados do formulrio. Inicialmente os dados vo para
inserir_filme.php.
Depois verificamos se recebemos pelo mtodo GET algum codigo. O uso da
funo isset() verifica isto. Se recebermos a pgina servir para alterar e no
incluir. Devemos ento pegar os dados que sero alterados para mostrar para
o usurio.
Para isso, utilizamos a conexo com o banco e pegamos os dados da linha que
queremos alterar. Guardamos estes dados em $linhas, e depois pegamos a
primeira linha, pois s ela deve ter o registro, colocando em $linha.
Alteramos $destino para alterar_filme.php e guardamos em $oculto um
campo oculto em HTML que contm o cdigo. Dessa forma, a pgina
alterar_filme.php vai saber que registro deve alterar.
Acrescentamos no formulrio as variveis $destino e $oculto, assim como os
valores dos campos recuperados. Utilizamos a notao <?= para ser mais
simples para voc ver todo o cdigo e colocamos um @ na frente da varivel.
Este arroba @ faz com que o PHP ignore as mensagens de erro. Ele
necessrio porque caso no recebamos nenhum cdigo pelo mtodo GET. As
variveis de valores de formulrio no existiro, o que geraria um erro.
Ainda no terminou, mas como este cdigo mais complicado e junta muito
do que j vimos anteriormente, releia at entender tudo que foi ordenado no
cdigo para podermos prosseguir com a pgina alterar_filme.php.
A pgina alterar_filme.php muito semelhante pgina incluir_filme.php.
Esta pgina a que tem a responsabilidade de pedir ao MySQL para fazer a
alterao no registro onde o cdigo for igual ao recebido. Veja a Figura 89
com o cdigo pronto e comentado em texto verde.

77

Linguagem de Programao para Web

Competncia 04

Figura 89 - Pgina alterar_filme.php.


Fonte: Prprio autor.

O que esta pgina tem de diferente de incluir_filme.php que ela recebe


nosso campo oculto, o cdigo, e a $sql muda para o comando MySQL para
alterar um registro j gravado, nesse caso, o registro que corresponda ao
cdigo enviado. O resto igual pgina incluir_filme.php.
Para finalizar vamos linkar nos menus as pginas corretas. Abra o index.php
e encontre a marcao HTML do menu. Faa as alteraes destacadas na
Figura 90. Aproveite e faa um link para Funcionrios.

Observe que o
ttulo do formulrio
no muda. Sempre
permanece com
Incluir. Voc
conseguiria
modificar ele
quando fosse para
alterar? Tente.

Como sempre
temos um exerccio
muito importante
para a fixao. Com
o que voc
aprendeu faa o
sistema de
alterao de
funcionario.

Figura 90 Pgina index.php.


Fonte: Prprio autor.

Vamos utilizar este sistema como base para sua avaliao, ento treine nele
fazendo a parte do funcionrio.

78

Tcnico em Informtica

Competncia 05
5.COMPETNCIA 05 | PROJETO: EMISSO DE RELATRIOS
Atualmente o PHP muito poderoso. Com o apoio de suas bibliotecas
podemos editar imagens e at gerar relatrio em PDF.
PDF, Portable Document Format, um formato de arquivo que foi
desenvolvido pela Adobe System. Seu objetivo era fornecer uma
representao de documento que fosse independente de qual aplicativo,
hardware ou sistema operacional voc estivesse usando para visualizar.
Arquivos PDF podem conter texto, grficos e imagens que podem ser
visualizados em qualquer dispositivo de forma idntica.
Para que nossa aplicao PHP possa gerar relatrios em PHP, primeiramente
precisamos baixar a biblioteca que ir fazer o trabalho de transformar nossas
informaes para esse formato.
Voc pode baixar em www.fpdf.org/. A Figura 91 mostra a pgina do FPDF.

Figura 91 FPDF Library.


Fonte: Prprio autor.

79

Linguagem de Programao para Web

Competncia 05
Clique em Downloads e ir aparecer a pgina da Figura 92. A pgina oferece o
manual em portugus do Brasil e a verso mais atual da biblioteca. No
momento em que este caderno foi escrito temos disponvel a verso 1.7. A
Figura 93 destaca em vermelho os links para baixar o manual e a biblioteca.

Figura 92 Pgina de downloads do FPDF.


Fonte: Prprio autor.

Faa o download da biblioteca e descompacte os arquivos na pasta onde voc


est fazendo seu projeto at agora. Veja como ficou na Figura 93. Os arquivos
importantes so a biblioteca que o arquivo fpdf.php e a pasta font, que
contm as fontes necessrias para formatar o documento.

Figura 93 Pasta da biblioteca do FPDF no painel Project Explorer do


Aptana Studio 3.
Fonte: Prprio autor.

80

Tcnico em Informtica

Competncia 05
Agora que a biblioteca faz parte de nosso projeto, vamos construir dois
botes para gerar um relatrio cada. No primeiro teremos um relatrio
textual para mostrar algumas propriedades bsicas. No segundo vamos pegar
as informaes do banco de dados, montar uma tabela e gerar o arquivo PDF.
Primeiramente vamos colocar os dois botes de impresso de relatrio. Na
pgina index.php insira o cdigo destacado na Figura 94 perto do final do
arquivo. Atente para o local correto.

Figura 94 Pgina index.php e o cdigo HTML com botes para imprimir a ficha de um filme e outro
para imprimir uma lista de filmes.
Fonte: Prprio autor.

Os botes, o que est na listagem e o que aparece no final da tabela, vo para


a mesma pgina: imprimir_filme.php. S que nos botes dentro da tabela
passamos um cdigo. Assim, caso a varivel cdigo seja enviada com um
valor, vamos gerar um pdf com a ficha do filme, seno geramos um relatrio
completo com todos os filmes do banco.
Antes disso, temos duas observaes importantes.
Primeiro a biblioteca FPDF utiliza a notao de orientao de objetos, que
veremos no prximo mdulo. Mas no precisa se preocupar, ela parecida
com as funes. A segunda que o FPDF no totalmente preparado para os
caracteres especiais de nossa lngua, como os acentos, til e cedilha. Teremos

81

Linguagem de Programao para Web

Competncia 05
que utilizar uma funo bem pequena para fazer esta converso. Est funo
est logo no incio do arquivo.
O cdigo completo e comentado est na Figura 95. Logo aps, temos a Figura
96 com o resultado em PDF. Posteriormente, temos as instrues de cada
mtodo utilizado para compor o documento e suas possveis opes.
Tenha bastante ateno com a grafia correta de toda a codificao e, com a
ajuda da explicao abaixo, tente entender o que cada linha ordena.

82

Tcnico em Informtica

Competncia 05

Figura 95 Pgina relatorio.php.


Fonte: Prprio autor.

83

Linguagem de Programao para Web

Competncia 05
Primeiramente, inclumos a biblioteca fpdf.php. Uma particularidade desta
biblioteca o tratamento parcial para codificao UTF-8. Devido a isso, os
caracteres especiais devem ser tratados com outra funo, para isso criamos a
funo converte( ) que recebe como argumento o texto, trata e devolve j
recodificado adequadamente.
Criamos, ento, uma varivel $pdf, que ser nosso documento. Instanciamos
com new FPDF(P, pt, A4). Essas so as configuraes para o documento. O
primeiro argumento refere-se ao formato P. retrato, mas pode ser L para
paisagem; o segundo argumento para a unidade de medida, podendo ser
cm centmetro, pt pontos, mm milmetros e in polegadas; o terceiro
argumento o tamanho do papel, temos A3, A4, A5, letter e legal.
Agora chamamos os mtodos do objeto para configurar o documento.
Utilizamos o mtodo $pdf->AddPage(); para adicionar uma pgina e abaixo
adicionamos a imagem marca.png no PDF. Note que devemos fornecer o
endereo da imagem PATH ou URL. Outros parmetros que podemos inserir
so (na sequncia):
Image(string file [, float x [, float y [, float w [, float h [, string type]]]])

X: posio da imagem em relao ao eixo X.


Y: posio da imagem em relao ao eixo Y.
W: largura da imagem.
H: altura da imagem.
TYPE: tipo da imagem.

Ento, para cada linha temos a configurao de fonte com $pdf>SetFont('arial', '', 12). O primeiro argumento a fonte Arial. A string vazia
para configurar o efeito, se quiser negrito utilize B, e o 12 o tamanho em
pontos da fonte. Veja a pasta "/fpdf/font/" para verificar as fontes
suportadas.

84

Tcnico em Informtica

Competncia 05
S se consegue escrever no PDF dentro de uma cell ou multicell. Uma cell
como uma clula, um espao para escrever uma linha. O primeiro parmetro
a largura, o segundo a altura, o terceiro argumento o contedo (o texto), o
quarto argumento a borda (1 para sim e 0 para no), o quinto o
espaamento interno, o sexto para o alinhamento (L esquerda, R direita e C
centralizado). Quando o contedo possui caracteres especiais, chamaremos
nossa funo converte().
$pdf->Cell(0,20,"Rua Fulano de Tal, s/n, Bairro Industrial",0,1,'L');

Para dar um espaamento de 20 pontos entre uma linha e outra utilizamos


$pdf->ln(20);

Quando temos vrias linhas utilizamos multicell. Seus parmetros so iguais


aos do cell com a opo a mais de alinhamento J para justificado. Atente de
que j tratamos deste texto anteriormente.
$pdf->MultiCell(0, 20, texto de vrias linhas..., 0, 'J');

Agora temos que definir o contedo, que pode ser de duas maneiras. Se a
pgina receber um cdigo, o documento gera apenas a ficha do DVD. Se no
possuir nada, o documento gerado conter uma listagem de todos os DVDs
cadastrados. Para isso, definimos a string SQL que ser utilizada. Com isso, ou
selecionamos um DVD pelo cdigo ou todos, igual ao que fizemos na
index.php.
if (isset($_GET['codigo']) && $_GET['codigo']<>"") {
$codigo = $_GET['codigo'];
$sql = "SELECT * FROM filme WHERE codigo='$codigo';";
} else {
$sql = "SELECT * FROM filme;";
}

Depois que conseguirmos a listagem do banco, iniciamos uma estrutura while

85

Linguagem de Programao para Web

Competncia 05
para repetir o cdigo para cada linha. Abaixo, temos o cdigo inicial. A cada
iterao ele constri uma linha para a tabela, com os dados do DVD.
while($linha = mysqli_fetch_array($listagem)) {
// ttulo do filme
$pdf->SetFont('arial','B',12);
// Quando o texto tem ou pode ter acento utilizamos a funo converte
$pdf->Cell(70,20,converte("Cdigo: "),0,0,'L');
$pdf->setFont('arial','',12);
$pdf->Cell(0,20,$linha['codigo'],0,1,'L');

Na ltima linha temos o envio do documento atravs de


$pdf->Output('relatorio.pdf', 'I');

Os parmetros so dois: O nome do arquivo e o destino (I para a sada padro,


D para download, F para salvar localmente e S para retornar como string).
Observe o resultado na Figura 96.

Figura 96 Arquivo de relatrio geral em PDF criado pelo FPDF do cdigo de


exemplo.
Fonte: Prprio autor.

86

Tcnico em Informtica

Competncia 05

Esta codificao
complexa. Voc
precisa ler com
ateno e
reproduzir o
exemplo para
entender bem
todos eles. Utilize
outras opes para
ver como fica.

Figura 97 Arquivo de relatrio individual criado pelo relatorio.php.


Fonte: Prprio autor.

Agora, para
exercitar, faa da
mesma forma como
fizemos
anteriormente, s
que utilize a
entidade
funcionario. Voc
pode ser criativo e
tentar novas formas
de relatrios e
documentos.
Quanto mais fizer,
mais aprender.

87

Linguagem de Programao para Web

CONCLUSO
Com isto terminamos esta disciplina, mas entenda que voc viu a ponta do
iceberg, ou seja, apenas o comecinho. Existe muito mais conhecimento que
deve ser procurado e aprendido para se aperfeioar. Mas apenas ler ou
assistir uma aula no suficiente. Para aprender voc deve fazer, mais e mais.
A diferena de um iniciante para um profissional a experincia acumulada
com horas e horas de prtica.
Ento, pesquise mais sobre HTML, CSS, JavaScrip e PHP. Na internet voc
encontrar muito material interessante. E quanto mais cedo comear a
praticar, mais rpido se tornar um profissional competente.
Um grande abrao e at a prxima.

88

Tcnico em Informtica

REFERNCIAS
NIEDERAUER, Juliano. Desenvolvendo websites com PHP. So Paulo: Novatec,
2004.
CONVERSE, Tim; PARK, Joyce. PHP: a bblia. 2003.
DALLOGLIO, Pablo. PHP: programando com orientao a objetos. So Paulo:
Novatec, 2007.

89

Linguagem de Programao para Web

MINICURRCULO DO PROFESSOR

Ewerton Mendona formado em Sistemas de Informao pela UPE e Design


pela UFPE, com mestrado em Cincia da Computao pela UFPE. Atualmente
professor na Faculdade de Cincias e Letras de Caruaru e professor
substituto no IFPE. Possui experincia na rea de desenvolvimento WEB e
design grfico desde 1998.

90

Tcnico em Informtica

You might also like