Anda di halaman 1dari 79

Contedo

1-

Curso de Programao Web com PHP Apresentao ..........................................................2

- O PHP ..............................................................................................................................................2
- O que voc vai precisar para acompanhar o curso.....................................................................3
2 - Curso de PHP Instalando o XAMPP no Windows Apache, MySQL, PHP e Perl................4
3 - Sintaxe e Marcadores de Comandos no PHP ...........................................................................17
4 - Tipos de Dados no PHP .............................................................................................................19
5 - Convertendo tipos no PHP ........................................................................................................26
6 - Declarando e usando Variveis em PHP ...............................................................................28
7 - Operadores Aritmticos e de Atribuio de valores em PHP ..............................................34
9 - Estruturas de Controle Condicional ..........................................................................................41
10 - Estrutura de Controle Switch ..................................................................................................45
11 - Estruturas de Repetio ..........................................................................................................47
12 - Estrutura de Repetio For .................................................................................................49
Estrutura de Repetio Foreach .................................................................................................51
13 - Instruo break ...................................................................................................................53
Instruo continue ......................................................................................................................54
14 - Declarando e Manipulando Arrays no PHP ............................................................................56
Criando um array ........................................................................................................................56
Manipulando os elementos de um Array ...................................................................................57
Removendo um array ou seus elementos ..................................................................................58
15 - Formulrios HTML ...................................................................................................................59
Mtodos GET e POST ..................................................................................................................59
Controles de Formulrios HTML ................................................................................................60
16 - Processando os dados recebidos de um formulrio HTML....................................................64
Arrays $_POST e $_GET ..............................................................................................................64
17 - Conexo a um Banco de Dados MySQL ..................................................................................69
Efetuando conexo ao banco de dados.....................................................................................70
Funo die() ................................................................................................................................73
18 - Efetuando uma consulta SQL no banco de dados e retornando dados pgina..................74
Criando e executando a consulta: consulta.php .........................................................................75
19 - Inserindo dados no Banco de Dados MySQL ..........................................................................76
Cdigo do script PHP ..................................................................................................................78

Pgina |2

1- Curso de Programao Web com PHP


Apresentao
O PHP, cuja sigla um acrnimo recursivo que significa PHP: Hypertext Preprocessor, uma
linguagem de programao de scripts que permite a criao de contedo dinmico para a Web
com conectividade a Bancos de Dados. Usamos o PHP para a criao de aplicaes de software
baseadas na Web, basicamente.
Para que voc possa acompanhar o Curso de PHP da Bson Treinamentos, importante preencher
alguns pr-requisitos. So eles:
Ter noes de Lgica de Programao
Conhecer um pouco sobre Bancos de Dados, incluindo a linguagem SQL do MySQL
Instalar alguns pacotes de software (basta seguir as orientaes das prximas aulas)
Caso voc no tenha nenhuma noo de Lgica de Programao e nem de Bancos de Dados com
MySQL, confira antes nossos cursos respectivos a partir dos links abaixo:
Curso de Lgica de Programao (em vdeo no YouTube)
Curso de Bancos de Dados com MySQL (tutoriais e vdeos)
O curso de PHP ser constitudo por artigos explicativos, com trechos de cdigo para voc testar
em seu ambiente (computador), e vdeos de nosso canal do YouTube para voc assistir s
explicaes sobre cada tpico. Os vdeos estaro disponveis nas prprias pginas das lies, no
sendo necessrio acessar o YouTube para assisti-los. A no ser, claro, que voc queira acessar
nosso vasto acervo com quase mil vdeos de aulas e tutoriais.
Dito isto, vamos a algumas consideraes sobre a linguagem PHP.

- O PHP
O PHP uma linguagem de script server-side, ou seja, que executada no lado do servidor Web,
criada em 1995. O cdigo PHP comumente incorporado no HTML de uma pgina Web, de modo a
permitir o gerenciamento de contedo dinmico e rastreamento de sesses, entre muitas outras
coisas. Tambm muito utilizado em conjunto com diversos frameworks Web, como o WordPress.
Trata-se de uma linguagem que agrega segurana, eficincia e simplicidade ao desenvolvimento
Web, alm de ser muito flexvel e relativamente fcil de aprender. O PHP utiliza uma sintaxe em
seus cdigo similar da linguagem C.

Pgina |3

possvel trabalhar com vrios sistemas gerenciadores de bancos de dados diferentes no PHP,
incluindo o popular MySQL (que utilizaremos neste curso), PostgreSQL, Oracle Database, e at o
Microsoft SQL Server.

Exemplo de cdigo em PHP


A seguir temos um exemplo de cdigo em PHP, o famoso Ol Mundo:
<?php
echo <strong>Ol Mundo!</strong>;
?>
O cdigo em PHP est inserido entre as tags <?php e ?>. H outras formas de inserir o PHP dentro
do arquivo, que sero detalhadas nas prximas aulas do curso. Note tambm que o cdigo PHP
aceita tags HTML incorporadas, como no exemplo onde usamos os comandosecho e a
tag <strong>.

- O que voc vai precisar para acompanhar o curso


Para que voc possa acompanhar o Curso de PHP da Bson Treinamentos, voc precisar de alguns
softwares instalados e configurados. Entre eles:
Servidor Web (Apache recomendado)
Sistema gerenciador de bancos de dados MySQL
O PHP
Um editor de textos (bloco de notas, Notepad++, gedit, vi, TextWrangler, etc)
Recomendamos o Notepad++

Pgina |4

Se voc tiver acesso a um web host que rode esses softwares, excelente! Caso contrrio, voc
deve instalar os programas necessrios em seu PC localmente. Recomendo fortemente usar
pacotes como o LAMP, WAMP, XAMPP ou MAMP, que trazem em uma instalao simplificada
todos os programas necessrios para comear a estudar PHP. Nos prximos artigos vou mostrar
como instalar esses pacotes no Linux, Windows e Mac OS X. A escolha de qual usar sua
qualquer um deles servir perfeitamente.

2 - Curso de PHP Instalando o XAMPP no Windows


Apache, MySQL, PHP e Perl
Nesta aula do curso de PHP vamos instalar o ambiente XAMPP (pronuncia-se ksamp) para que
voc possa rodar o PHP e testar os cdigos que ir aprender ao longo das aulas. Nos artigos
anteriores voc j aprender a instalar o LAMP (no Linux) e o WAMP (no Windows). O XAMPP um
pacote que traz a linguagem PHP, banco de dados MySQL e servidor Web Apache, entre outros
servios, e cross-platform, significando que ele pode funcionar em qualquer plataforma, tanto
Windows quanto Linux. No ser necessrio instal-lo se voc decidir usar um dos outros dois
ambientes apresentados, porm se quiser experimentar o XAMPP ir conhecer um ambiente de
uso muito fcil e configurao simplificada. Nesta aula vou mostrar como instalar o XAMPP no
Windows.
Para comear, entre no site oficial do projeto, que o www.apachefriends.org:

Pgina |5

Clique no link de Download para poder baixar o programa, e na pgina de download, escolha a
verso desejada. recomendamos baixar a verso mais recente, que a 5.6.8. Clique no boto
Download da verso desejada, e espere o programa ser baixado:

Aps baixar o XAMPP, abra o arquivo para iniciar o processo de instalao. Clique em Sim na janela
do Controle de Conta de Usurio:

Aparecer a caixa de dilogo a seguir, que fala justamente do UAC. O instalador recomenda instalar
o XAMPP em uma pasta que no seja a C:\Program Files, por conta de permisses. Clique em OK
para fech-la.

Pgina |6

Agora o Setup do XAMPP iniciado. Clique no boto Next:

Na prxima tela poderemos selecionar os componentes que sero instalados. Vou deixar todos
selecionados. Clique em Next para prosseguir:

Pgina |7

Na prxima janela, selecione a pasta onde o XAMPP ser instalado. Vou instalar o programa na
pasta c:\xampp:

Pgina |8

A janela seguinte fala a respeito do Bitnami, que um sistema que permite a instalao dos
sistemas de gerenciamento de contedo (CMS) Drupa, Joomla, WordPress e outros com muita
facilidade. No iremos trabalhar com isso nesse curso, portanto desmarque a caixa Learn more
about Bitnami for XAMPP e clique no boto Next.

Pgina |9

Pronto para instalar! Clique no boto Next para prosseguir:

P g i n a | 10

E aguarde enquanto o XAMPP instalado em seu computador:

Aps alguns minutos a instalao ser finalizada. Deixe marcada a caixa Do you want to start the
Control Panel now? para abrir o Painel de Controle do XAMPP imediatamente, e clique no
boto Finish para sair do instalador.

P g i n a | 11

Excelente! XAMPP instalado com sucesso. Veja a tela do Painel de Controle que se abriu
automaticamente. Com ele podemos iniciar, parar e administrar os diversos servios disponveis,
tais como o servidor Web Apache, banco de dados MySQL, servio de FTP Filezilla, Tomcat e
Mercury.

P g i n a | 12

Cliuqe no boto Start do servio do Apache. Note que o Alerta de Segurana do Windows poder
ser aberto perguntando se voc quer permitir acesso ao Apache HTTP a parir do Firewall do
Windows. Clique no boto Permitir Acesso:

P g i n a | 13

Faa o mesmo com o servio do MySQL para inici-lo. Veja os servios ativos no Painel de Controle
do XAMPP:

P g i n a | 14

Agora vamos testar a funcionalidade do pacote. Abra um navegador e digite o


endereohttp://localhost/xampp na barra de endereos. Pressione Enter e verifique se a pgina a
seguir carregada. Clique no link Portugus (Brasil) para carregar a pgina inicial em portugus:

P g i n a | 15

Ser aberta a pgina inicial de configuraes do XAMPP. Leia as informaes mostradas na pgina
para obter mais informaes:

Agora vamos rodar uma funo do PHP. No painel do lado esquerdo localize o link phpinfo() e
clique nele. Sero mostradas na pgina as configuraes atuais do PHP que o XAMPP est
utilizando:

P g i n a | 16

isso a! XAMPP instalado e configurado com sucesso! Para comear a us-lo, abra o Windows
Explorer e navegue at a pasta da instalao do XAMPP (em nosso exemplo, c:\xampp). L dentro
voc encontrar uma pasta de nome htdocs, que onde colocamos os arquivos que iremos criar ao
longo dos estudos. Recomendo que voc crie uma pasta para cada projeto que executar, dentro
dessa pasta htdocs. Por exemplo, voc pode criar uma pasta chamadaprojeto1 dentro de htdocs, e
criar nesta pasta um arquivo index.php para estudo. Para carregar esse arquivo em um navegador,
basta digitar na barra de endereos:
http://localhost/projeto1/index.php
E o arquivo dever ser carregado no browser.
Na prxima aula vamos iniciar nossos estudos de Programao em PHP. At l!
Incio Programao em PHP Curso de PHP Sintaxe e Marcadores de comandos

P g i n a | 17

3 - Sintaxe e Marcadores de Comandos no PHP


Vamos falar nesta aula sobre a sintaxe do PHP a forma correta de escrever seus
comandos e cdigos para que sejam executados sem problemas.
O cdigo PHP de seus scripts executado sempre no servidor, e ento um HTML
gerado enviado ao seu navegador para exibio das informaes processadas.
Podemos escrever os scripts PHP e inseri-los em qualquer parte de um documento, ou
ento gerar arquivos que contenham somente comandos do PHP e salv-los em
arquivos com a extenso .php

Scripts PHP
Um script em PHP (conjunto de comandos e cdigos) pode ser escrito usando a sintaxe
a seguir:
<?php
Cdigos PHP;
?>

Os cdigos PHP so inseridos entre as tags <?php e ?>. Por exemplo, crie um novo
documento de texto em um editor, insira o cdigo a seguir e salve-o como aula01.php.
Recomendo criar um diretrio especfico para salvar o arquivo, de modo a separar as
diversas lies de nosso curso. Vou usar um diretrio de nome aula01 que dever estar
localizado na pasta adequada, dependendo do pacote de software que voc vai utilizar
para realizar os testes (WAMP, LAMP, XAMPP, etc.):
<?php
echo Ol Mundo!;
?>

Teste em seu navegador, abrindo o endereo http://localhost/aula01/aula01.php


Veja o resultado a seguir:

P g i n a | 18

Os comandos em PHP terminam sempre em um ponto-e-vrgula (;), exceo do


ltimo comando de um bloco, que dispensa seu uso.
Tambm podemos delimitar os blocos de cdigo usando os formatos a seguir:
1. <? Cdigos; ?> Forma simplificada ou
2. <script language=PHP> Cdigos; </script> ou
3. <% Comandos; %> Estilo ASP

Para usarmos essas formas simplificadas e estilo ASP precisaremos alterar alguns
parmetros no arquivo de configurao php.ini presente no servidor. A localizao
desse arquivo vai depender um pouco da plataforma utilizada em seu sistema, e
trabalharemos com arquivos de configurao na parte avanada do curso. Os
parmetros a modificar so short_open_tagse asp_tags, trocando seus valores
de off para on. Em nosso curso, vamos usar o padro da sintaxe de marcadores PHP,
portanto no necessrio alterar o php.ini agora.

Comentrios no PHP
Podemos adicionar comentrios ao cdigo em PHP, como na maioria das linguagens. O
texto que vem aps os comentrios sempre ignorado pelo interpretador, e tambm
no aparecer no navegador ao carregar a pgina.
Usamos os comentrios para que outros programadores possam entender nossa
codificao, ou para lembrar a ns mesmos o que fizemos no cdigo, ao edit-lo
tempos depois de criado.
Podemos inserir comentrios de trs formas em um script:
// Comentrio de linha nica.
# Outra forma de escrever comentrios de linha nica
/* Bloco de comentrios

P g i n a | 19

que se estende por vrias linhas


diferentes */

Maisculas e Minsculas
No PHP, os nomes de variveis so case-sensitive, ou seja, diferenciam maisculas de
minsculas. Portanto, as variveis NOME e Nome so diferentes. Tome muito cuidado
com isso. Vamos estudar variveis em breve.
J os nomes de classes, funes e palavras-chave em geral (if, else, while, etc) no
diferenciam maisculas de minsculas. mas, de qualquer forma, recomendo criar um
padro para voc usar fica a seu critrio.

4 - Tipos de Dados no PHP


Nesta aula vamos estudar os tipos de dados usado em PHP para a definio de variveis.
O PHP possui oito tipos de dados disponveis, divididos em trs grupos:
1. Dados Simples ou Escalares
1. Inteiros
2.Ponto Flutuante
3. Strings
4. Lgico (booleano)
2. Dados Compostos
1. Objetos
2. Arrays
3. Dados Especiais Compostos
1. tipo Nulo
2. Recursos
Vamos estudar esses tipos separadamente, um a um. Porm, nesta aula, daremos nfase aos tipos
simples. Os tipos compostos sero estudados em um aula mais adiante.

P g i n a | 20

Tipo Inteiro
Um nmero inteiro um nmero que no apresenta as casas decimais, podendo ser positivo ou
negativo, e ainda ser representado em bases diferentes, como decimal, octal ou hexadecimal. O
formato padro o decimal, e o formato octal representado precedendo o nmero com um 0, ao
passo que o hexadecimal possui os caracteres 0x precedendo o nmero. Os inteiros so o tipo mais
simples em PHP.
O maior inteiro que podemos representar o valor 2.147.483.647, e o menor (mais negativo) o
nmero -2.147.483.647, pois os inteiros em PHP so representados por valores de 32 bits.
Veja alguns exemplos de atribuio de valores inteiros a variveis (estudaremos variveis afundo
na prxima aula):
<?php
$a = 15;
$b = -465;
$c = 019;
$d = 0xAF;
var_dump($a);
echo <br>;
var_dump($b);
echo <br>;
var_dump($c);
echo <br>;
var_dump($d);
?>
A funo var_dump() usada no exemplo acima retorna o tipo de uma varivel e seu respectivo
valor. J o cdigo echo <br>; usado para enviar o comando HTML <br> (quebra de linha) ao
navegador, para que os resultados apaream um em cada linha.

P g i n a | 21

Tipo de Ponto Flutuante (Double)


O tipo de ponto flutuante permite armazenar nmeros que possuam casas decimais, como 23,78
ou 12343,98. Ainda permite usar notao decimal para representar nmeros muito grandes (ou
muito pequenos). Veja os exemplos:
<?php
$a = 24.65;
$b = 6.02e23;
$c = 1.8E-18;
print(Nm.1: $a <br> Nm.2: $b <br> Nm. 3: $c <br>);
?>
Veja que representamos, nas variveis $b e $c, dois nmeros de ponto flutuante usando notao
decimal (letras e ou E, indiferentemente). O tamanho mximo de um nmero de pnto flutuante
depende da plataforma onde o programa executado. O limite em torno de 1.8e308, usando
uma preciso de 14 dgitos decimais (nmeros de 64 bits).
A funo print() foi usada para mostrar a sada formatada contendo os valores das variveis.
Tambm a estudaremos com mais detalhes nas prximas aulas.

Tipo Booleano (Lgico)


O tipo de dados booleano aceita apenas dois valores: True (verdadeiro) e False (falso).

P g i n a | 22

O tipo booleano no leva em considerao o caso, portanto voc pode escrever TRUE, true ou True
que no haver diferenas.
Caso o valor a ser analisado em uma expresso seja numrico, ser falso se for igual a zer e
verdadeiro se for outro nmero qualquer.
No caso de uma string, ser falso se a string estiver vazia (ou for o caractere 0), e verdadeiro nos
demais casos. O mesmo vale para arrays.
E os valores do tipo NULL so sempre falsos.
Veja exemplos de declarao e atribuio de valores lgicos no PHP:
<?php
$x = True;
$y = False;
if ($x==TRUE) {
echo Valor verdadeiro <br>;
}
if ($y==TRUE) {
echo Valor verdadeiro;
}
else {
echo Valor falso;
}
?>
No exemplo acima criamos duas variveis, x e y, e atribumos a elas os valores True e False,
respectivamente. Depois, realizamos um teste condicional lgico com o comando if para testar as
variveis e imprimir os resultados na tela com o comando echo. No se preocupe com esses
comandos, iremos estud-los a fundo em breve.

Tipo String

P g i n a | 23

Uma string uma sequncia (cadeia) de caracteres, como uma frase. No h limites para a
quantidade de caracteres que podemos colocar em uma varivel do tipo string, a no ser a prpria
memria RAM presente no computador.
Para definirmos uma string, colocamos os caracteres que a compe entre aspas, que podem ser
aspas simples ou duplas. H diferena na interpretao entre strings com aspas simples ou com
aspas duplas, como explicamos a seguir.

Strings com aspas simples


Uma string definida usando-se aspas simples tratada de forma literal, ou seja, o texto presente
nela ser impresso na tela exatamente da forma como foi escrito, incluindo nomes de variveis,
que sero impressos no lugar do contedo dessas variveis.

Strings com aspas duplas


Uma string definida com aspas duplas permite mostrar (expandir) o contedo das variveis
presentes na string (em vez de somente mostrar seus nomes), e tambm interpreta determinados
sequncias de caracteres (caracteres especiais ou de escape) que so precedidos por uma barra
invertida (\).
Veja os exemplos a seguir de atribuio de strings com aspas simples e duplas:
<?php
$nome = Fbio;
$sobrenome = dos Reis;
echo Meu nome $nome $sobrenome <br>;
echo Meu nome $nome $sobrenome <br>;
?>

P g i n a | 24

Na tabela a seguir temos os caracteres de escape (especiais) mais comuns que podem ser usado
em PHP:
Caractere

Significado

\n

Linefeed

\r

Carriage Return

\t

Tabulao (tab)

\\

Barra invertida

Aspas duplas

\$

Cifro

Sintaxe Here Doc


Existe ainda uma outra sintaxe que podemos usar para atribuir uma string a uma varivel. Trata-se
da sintaxe Here Document, que permite atribuir mltiplas linhas de texto a uma nica varivel de
texto, usando um caractere predefinido para delimitar a string.
Para isso, usamos os caracteres <<< e em seguida definimos o delimitador a ser utilizado para
indicar o fim da string. Pode ser qualquer coisa, como por exemplo a sequncia de caracteres EOL
(end of line) ou simplesmente uma palavra como FIM.
Veja um exemplo:
<?php
$texto = <<< FIM
Texto atribudo a uma varivel usando

P g i n a | 25

o formato de sintaxe <b>heredoc</b>, com a palavra


escolhida para ser o delimitador de final de string.
O delimitador deve aparecer na ltima linha, sozinho, sem espaos
e apenas com o ponto-e-vrgula para finalizar.
FIM;
echo <pre>$texto</pre>;
?>

Note que o delimitador, para finalizar a string, deve estar em uma linha sozinho e sem espaos nem
antes nem depois. Podemos tambm inserir caracteres especiais e comandos HTML na string,
como o <b></b> que usamos no exemplo para destacar a palavra heredoc.

Funo GetType()
A funo gettype() um comando que no permite saber o tipo de uma varivel qualquer,
retornando uma string com o tipo. Para us-la, siga a sintaxe abaixo:
gettype(varivel)
Exemplo:
<?php
$num = 10;
$preco = 23.89;
$nome = Fbio;
$resultado = True;

P g i n a | 26

echo $num . gettype($num). \n;


echo $preco . gettype($preco). \n;
echo $nome . gettype($nome). \n;
echo $resultado . gettype($resultado). \n;
?>
Veja o resultado abaixo:

Note que usamos um ponto (.) entre as strings. Este ponto um operador de concatenao, que
permite juntar duas ou mais strings e formar uma nova.
Na prxima aula vamos aprender a declarar e usar Variveis no PHP.

5 - Convertendo tipos no PHP


No PHP podemos converter uma varivel de um tipo em outro tipo de trs formas distintas:
1. Automaticamente
2. Explicitamente, com o uso de tapearia
3. Usando uma funo chamada de settype()
O PHP pode converter tipos automaticamente em alguns casos, quando ocorrem operaes
especficas entre dois valores que possuam tipos diferentes.

P g i n a | 27

Para que faamos a converso de tipos explicitamente usaremos os comandos de cast, de acordo
com a tabela a seguir:
Operador

Tipo

int ou integer

inteiro

real, double ou float

real com ponto flutuante

string

string (cadeia de caracteres)

array

vetor

object

objeto

Veja o exemplo a seguir, onde declaramos uma varivel do tipo ponto flutuante de nome var1 e
depois atribumos seu contedo a uma varivel de nome var2, do tipo inteiro. Vamos converter
explicitamente o tipo do dado:
$var1 = 40.55;
echo Ponto flutuante: $var1 <br />;
$var2 = (int)$var1;
echo Inteiro: $var2;

Podemos tambm usar a funo settype() para efetuar a converso de tipos no PHP. Essa funo
permite converter valores nos tipos integer, double, string, array ou object. Sua sintaxe a
seguinte:
settype(varivel,novo_tipo);
No exemplo a seguir declaramos uma varivel do tipo ponto flutuante e a convertemos para inteiro
com a funo settype():
$num = 2.5;
settype($num,integer);
echo Valor inteiro: $num;
TESTANDO O TIPO DE UMA VARIVEL
Podemos testar o tipo de uma varivel usando as funes a seguir:
is_int()
is_integer()
is_real()

P g i n a | 28

is_long()
is_float()
is_string()
is_array()
is_object()
Sintaxe:
is_TIPO($varivel)
Essas funes retornam o valor verdadeiro se a varivel testada for do tipo indicado, e falso em
caso contrrio.
Vejamos um exemplo. Vamos criar uma varivel de nome $num e atribuir-lhe um valor de ponto
flutuante. Depois, testaremos para ver se o valor contido na varivel do tipo inteiro com a
funo is_int():
$num = 23.8;
if(is_int($num)) {
echo Nmero inteiro;
}
else {
echo O valor da varivel no um nmero inteiro!;
}
Usamos um condicional if para realizar o teste. Se a varivel $num for do tipo inteiro a funo
is_int() retornar verdadeiro e ento a mensagem Nmero inteiro ser exibida; caso contrrio, a
funo retornar falso e a mensagem O valor da varivel no um nmero inteiro ser exibida.
Resultado:

6 - Declarando e usando Variveis em PHP


Uma varivel uma rea na memria RAM de um computador que reservada para armazenar
dados de programas em uso. Seu contedo destrudo aps a execuo do programa.
Definimos uma varivel no PHP usando a sintaxe a seguir:

P g i n a | 29

$nome_da_varivel = valor_da_variavel;
O sinal $ sempre precede o nome escolhido para a varivel, tanto na declarao quanto ao
atribuirmos valores ou lermos o contedo da varivel. Logo aps esse caractere podemos usar
apenas letras ou o sinal de undescore (_). Os demais caracteres devem seguir as regras abaixo:
Podem ser caracteres alfanumricos (letras e nmeros, alm do subscrito / underscore).
O primeiro caractere deve obrigatoriamente ser uma letra ou o smbolo de underscore.
No pode haver espaos em nomes de variveis compostos use um underline para ligar
as palavras ou use a notao CamelCase (palavras unidas, sem espaos, iniciadas com
letras maisculas)
As variveis no PHP so case-sensitive, ou seja, fazem distino entre letras maisculas e
minsculas. Fique atento a esse detalhe, pois isso fonte constante de erros!
Sempre crie nomes de variveis significativos, que permitam transmitir uma idia precisa
sobre o contedo que a varivel armazena.
Vamos declarar uma varivel e atribuir um valor a ela. Criaremos a varivel nome e atribuiremos a
ela a string Fbio. Com o comando echo podemos visualizar no browser o valor contido na varivel:
<?php
$nome = Fbio;
echo $nome;
?>
A varivel $nome foi criada e recebeu uma string como valor. Portanto, ela ser do tipo string. No
necessrio especificar o tipo da varivel no PHP, pois se trata de uma linguagem fracamente
tipada. O PHP seleciona o tipo da varivel baseado no tipo do dado atribudo a ela. Alm disso, uma
varivel pode receber um valor diretamente, como no exemplo anterior, receber uma cpia do
contedo de outra varivel, ou ainda referenciar outra varivel (atribuio por referncia).

ESCOPO DAS VARIVEIS


O escopo de uma varivel do respeito ao alcance dessa varivel no programa, o que significa que o
escopo define onde (contexto) a varivel visvel ou acessvel no script. O escopo varia de acordo
com o local onde a varivel foi criada.
As variveis podem ser locais ou globais.
Variveis locais

P g i n a | 30

So as variveis criadas dentro de funes e que s podem ser referenciadas por comandos que se
encontram dentro dessa mesma funo. No so vlidas fora da funo onde foram criadas, e so
destrudas assim que a funo encerrada.
Variveis Globais
Uma varivel global pode ser acessada em qualquer parte do programa, dentro e fora das funes.
Para criar uma varivel global usamos a palavra reservada global antes do nome da varivel
durante sua declarao.
Veja o exemplo a seguir, onde criamos uma varivel global dentro de uma funo e a utilizamos
fora da funo:
<?php
function quadrado() {
global $numero;
$numero = $numero * $numero;
}
$numero = 3;
quadrado();
echo O nmero ao quadrado $numero;
?>

Variveis estticas
Uma varivel esttica somente existe dentro do escopo de uma funo, e no destruda quando a
funo encerrada seu valor no perdido. Podemos utiliz-la novamente ao chamar a mesma
funo, e ela ainda possuir o valor que tinha anteriormente. As variveis estticas so visveis
apenas no escopo onde foram criadas.
Para criar uma varivel esttica usamos a palavra chave static antes do nome da varivel em sua
declarao.
Vejamos um exemplo.

P g i n a | 31

<?php
function incremento() {
static $num = 0;
$num= $num + 1;
echo o valor $num <br />;
}
incremento();
incremento();
incremento();
?>
Note que cada vez que chamamos a funo incremento(), o valor mostrado no navegador
incrementado em 1. Veja a sada abaixo:

Variveis Superglobais
O PHP possui algumas variveis especiais chamadas de variveis superglobais que permitem
fornecer informaes sobre o ambiente do script. Essas variveis no precisam ser declaradas, pois
esto disponveis automaticamente.
As variveis super globais so definidas em arrays, que so colees especiais de valores, os quais
estudaremos em uma aula posterior. A tabela a seguir mostra as principais variveis super globais
do PHP:
Nome da varivel super
global

Contedo da varivel

$_SERVER

Possui informaes sobre o ambiente do servidor web.


Possui informaes sobre as requisies GET (formulrios) variveis enviadas

$_GET

pelo mtodo GET


Possui informaes sobre as requisies POST (outro formulrio) variveis

$_POST

enviadas pelo mtodo POST

$_COOKIE

Contem informaes sobre cookies HTTP, gravados na mquina do usurio

P g i n a | 32

Possui informaes de uploads de arquivos POST, como fotos ou documentos


$_FILES

enviados por um formulrio.

$_ENV

Contem informaes sobre ambientes de script


Possui informaes de entradas de usurios. Possui o contedo de $_GET,

$_REQUEST

$_POST e $_COOKIES juntos

$_SESSION

Possui informaes sobre variveis registradas na sesso atual.


Retorna um array associativo que referencia todas as variveis disponveis no

$GLOBALS

escopo global do script.

PHP_SELF

Contm o nome do script em execuo

DOCUMENT_ROOT

O Diretrio Raiz do script em execuo

Vejamos um exemplo de uso de variveis super globais.


<?php
echo O nome deste arquivo . $_SERVER[PHP_SELF] . <br/>;
echo A pasta onde este arquivo se encontra . $_SERVER[DOCUMENT_ROOT];
?>
Neste comando usamos a varivel superglobal $_SERVER e pedimos para exibir no navegador o
contedo das variveis PHP_SELF e DOCUMENT_ROOT, contidas nela.
Ao longo do curso iremos referenciar essas variveis globais e entraremos em maiores detalhes
sobre cada uma conforme seja necessrio.

Variveis Dinmicas
a linguagem PHP nos oferece uma categoria muito interessante de variveis, chamadas de
Variveis Dinmicas, que so variveis cujos nomes podem mudar, dependendo do contedo de
outra varivel.. Para declararmos uma varivel dinmica devemos preceder seu nome com dois
cifres ($$), e o PHP ir referenciar o contedo dessa varivel como sendo uma nova varivel.
Exemplo:
<?php
// Declaramos uma varivel chamada $var e atribumos a string nome a ela
$var = nome;
/* Usando $$ criamos uma varivel dinmica, de modo que o contedo de $var seja o nome da
varivel (ser $nome), e seja atribudo a essa varivel a string Fbio.*/
$$var = Fbio;

P g i n a | 33

// Exibimos no navegador o contedo das variveis $nome e $var:


echo O nome armazenado $nome <br/>;
echo E o contedo de var $var;
?>

Referenciando variveis
Podemos criar uma referncia entre variveis, ou seja, fazer com que duas variveis distintas
apontem para a mesma rea de memria onde dados so armazenados. Isso diferente de copiar
o contedo de uma varivel para outro, pois realizarmos essa atribuio por referncia, ao
alterarmos o contedo de uma das variveis automaticamente teremos o contedo alterado
aparecendo na outra tambm.
Para atribuir um valor por referncia a uma varivel, devemos preceder o nome da varivel com o
smbolo &. Veja o exemplo a seguir:
Exemplo:
<?php
$x = 50;
$y = $x;
$z = &$x;
// Alterando o valor de x:
$x = 80;
// Verificando o contedo das variveis:
echo x vale $x <br/>;
echo y vale $y <br/>;
echo z vale $z <br/>;
?>
Atribumos o valor 50 varivel $x, e depois atribumos $X s variveis $y e $z, porm de duas
formas distintas: atribuio comum a $y (cpia de valores) e atribuio por referncia a $z
(referncia de endereos).
Aps alterarmos o valor de $x para 80, o valor de $y permanece o mesmo (50), e o valor de $z
tambm passa a ser 80, pois aponta para a mesma rea de memria que $x. Veja o resultado
abaixo:

P g i n a | 34

7 - Operadores Aritmticos e de Atribuio de valores


em PHP
Um operador permite realizar uma transformao sobre um ou mais valores de dados, gerando um
novo valor que pode, por exemplo, ser armazenado em uma varivel, ou ser utilizado como
entrada para outras operaes.
Os operadores podem ser unrios, que operam sobre um nico valor, binrios, que operam sobre
dois valores ou expresses gerando um terceiro valor, e ternrio, que retorna um valor entre dois
possveis, dependendo do resultado de um terceiro valor ou expresso.
Vamos trabalhar nesta aula com duas classes de operadores em PHP: operadores de atribuio e
operadores aritmticos. Na prxima aula estudaremos os operadores relacionais, bit a bit e lgicos.
Operadores de atribuio
Os operadores de atribuio so usados quando precisamos atribuir um valor a uma varivel. Existe
um operador bsico de atribuio e vrios outros derivados dele. Veja na tabela abaixo os
operadores de atribuio que podemos usar em PHP:
Operador

Significado

atribuio simples (recebe)

+=

atribuio com soma

-=

atribuio com subtrao

*=

atribuio com multiplicao

/=

atribuio com diviso

%=

atribuio com mdulo (resto da diviso)

.=

atribuio com concatenao

P g i n a | 35

=&

atribuio por referncia

Vejamos alguns exemplos. Teste o cdigo a seguir em seu sistema:


$x = 10; //atribui o valor 10 varivel $x.
$x += 5; //equivale a $x = $x + 5;
echo $x <br/>;
$x /= 2; //equivale a $x = $x / 2;
echo $x;
Os resultados sero 15 e 7.5.
Operadores aritmticos
Os operadores aritmticos so usados para realizar clculos simples, como soma, subtrao ou
diviso. Devem ser utilizados somente com variveis de tipos numricos, ou convertendo-se os
tipos com as funes de converso comuns, caso contrrio o PHP tentar fazer uma converso
automtica dos tipos.
Na tabela a seguir esto os operadores aritmticos usados no PHP.
Operador

Significado

soma

subtrao (ou sinal de negativo)

multiplicao

diviso comum

mdulo (resto da diviso inteira)

O operador de diviso (/) retorna sempre um valor de ponto flutuante, mesmo que os nmeros
envolvidos na operao no o sejam.
Alm desses operadores temos tambm os operadores aritmticos unrios de incremento e
decremento, que podem ser vistos na tabela a seguir:

P g i n a | 36

Operador

Significado

++

incremento

decremento

Estes dois operadores podem ser usados antes ou depois das variveis. Se forem utilizados depois,
retornam o valor da varivel antes de realizar o incremento ou decremento. Mas se forem usados
antes das variveis, retornam o valor da varivel j com o incremento (ou decremento).
Vamos a alguns exemplos:
<?php
$x = 30; // atribui o valor 30 varivel $x
$y = $x * 3;
$z = $y % $x;
echo $x <br/>;
echo $y <br/>;
echo $z <br/>;
$k = $z++; // atribui a $k o valor de $z e ento incrementa $z.
echo $k <br/>;
$k = $z; // atribui a $k o valor de $z, agora j incrementado.
echo $k;
?>
Veja o resultado dessas operaes:

Ordem de Precedncia dos Operadores Aritmticos

P g i n a | 37

Na tabela abaixo vemos a ordem de precedncia dos operadores aritmticos, da mais alta para a
mais baixa:
++,
(sinal de negativo)
*, /, %
+,

Podemos subverter a ordem de precedncia dos operadores com o uso de parnteses, sendo que
as expresses dentro dos parnteses sempre sero avaliadas antes, mesmo que os operadores
envolvidos tenham menor prioridade do que os operadores fora dos parnteses.
Vejamos um exemplo:
<?php
$a = 3 + 5 * 4;
$b = (3 + 5) * 4;
echo Valor da expresso sem parnteses: $a <br/>;
echo Valor da expresso com parnteses: $b <br/>;
?>

Sem o uso de parnteses a expresso retorna o valor 23 e com parnteses, 32. O valor correto
depende da frmula que se quer avaliar.

8 - Operadores Lgicos, Bit a Bit (bitwise) e Relacionais.


Os operadores Bitwise, tambm conhecidos como operadores bit a bit ou de manipulao de bits,
so utilizados para realizar operaes em nmeros inteiros que representam valores booleanos (0
e 1), ou em strings caractere a caractere, e podem ser aplicados a qualquer tipo de dados.

P g i n a | 38

Na tabela a seguir temos os operadores lgicos e seus significados.


Operador

Significado

& ou AND

| ou OR

OU

NO

XOR (OU exclusivo)

Vejamos alguns exemplos de aplicao desses operadores. Vamos usar o operador AND (&) para
calcular o resultado da operao bit a bit entre os nmeros 172 e 248. Esse clculo empregado
para determinar o endereo de uma rede, onde uma mscara de subrede aplicada sobre os
octetos de um endereo IP, um a um, com a operao E :
<?php
$octeto = 172;
$mascara = 248;
$valor = $octeto & $mascara;
echo Aplicando a operao AND entre a mscara e o octeto obtemos o valor $valor;
?>
Em uma aula futura vamos criar um programa que permite fazer diversos clculos de rede usando
o PHP, e para isso faremos uso extensivo desse tipo de operador.

Operadores de deslocamento de bits


Existem operadores que podem se utilizados para deslocar bits de um valor para esquerda ou para
a direita, o que significa multiplicar nmero por dois ou dividir o nmero por dois,
respectivamente, a cada deslocamento. Funcionam como multiplicadores e divisores de nmeros.
Veja na tabela abaixo os operadores de deslocamento de bits disponveis em PHP:
Operador

Significado

>>

Deslocamento para a direita (divide por dois)

<<

Deslocamento para a esquerda (multilplica por 2)

Por exemplo, 5 << 2 = 20 (5 * 2 * 2), e 10 >> 1 = 5 (10 / 2).


Veja um exemplo do uso de operadores de deslocamento de bits no PHP:
<?php
$num = 32;

P g i n a | 39

$valor1 = $num << 2; // equivale a 32 * 2 * 2 = 128


$valor2 = $num >> 2; // equivale a 32 / 2 / 2 = 8
echo $valor1 <br/>;
echo $valor2;
?>

Operadores Relacionais
Os operadores relacionais (ou de comparao) permitem efetuar comparaes entre valores
contidos em variveis ou constantes entre si, resultando sempre em um valor booleano (lgico, 0
ou 1, verdadeiro ou falso).
Valores diferentes de zero so considerados como valores verdadeiros e o valor zero considerado
como valor falso.
Na tabela a seguir temos os operadores relacionais usados em PHP:
Operador

Significado

==

Igual a

!=

Diferente de

===

Idntico a (valores iguais e do mesmo tipo)

!==

No idntico a

>

Maior do que

>=

Maior ou igual a

<

Menor do que

<=

Menor ou igual a

Vejamos um exemplo do uso de operadores relacionais:


<?php
$valor = 10;
if ($valor == 15) { // testa se $valor igual a 15
echo Valor 15;
}
elseif ($valor >= 10) { //verifica se $valor maior ou igual a 10
echo Valor maior ou igual a 10;
}
else {
echo Valor menor que 10;
}

P g i n a | 40

?>

Operadores Lgicos
Os operadores lgicos permitem realizar comparaes entre expresses, retornando como
resultado um valor verdadeiro (1) ou um valor falso (0). Quando usamos operadores relacionais
podemos tambm combinar suas operaes com operadores lgicos. Os operadores lgicos
disponveis em PHP esto listados na tabela abaixo:
Operador

Significado

AND

OR

OU

XOR

OU Exclusivo

&&

||

OU

Negao (NOT)

Vamos a alguns exemplos do uso de operadores lgicos:


<?php
$a = 10;
$b = 20;
echo ($a == 10) && ($b == 20);
echo <br/>;
if (($a == 10) && ($b == 20)) {
echo Ambos os valores esto corretos <br/>;
}
if (($a == 20) || ($b == 20)) {
echo Um dos valores est correto <br/>;
}
if (($a == 10) XOR ($b == 10)) {
echo Um dos valores est errado;
}
?>
Os operadores AND e OR so avaliados ANTES dos operadores de atribuio; j os operadores && e
|| so avaliados DEPOIS na ordem de prioridade de operadores.

P g i n a | 41

Ordem de precedncia dos operadores relacionais


Na tabela a seguir podemos ver a ordem de precedncia dos operadores relacionais nas
expresses, da maior para a menor prioridade:
> >= < <=
==
!=
&&
||
Lembre-se de que voc sempre pode alterar a ordem de precedncia dos operadores em uma
expresso com o uso de parnteses.

Operador de Concatenao de Strings


Concatenar significa unir duas strings (cadeias de caracteres) de modo a formar uma nova string.
Existe apenas um operador de concatenao em PHP, que o ponto (.) e ele, naturalmente, se
aplica somente a operaes realizadas com strings.
Vamos ver um exemplo do operador de concatenao juntando duas strings.
<?php
$k = Fbio;
$nome = $k . dos Reis;
echo $nome;
?>
Se voc concatenar uma string com um dado de outro tipo, o resultado tambm ser uma string.

9 - Estruturas de Controle Condicional


Uma estrutura de controle condicional permite controlar o fluxo de execuo de um programa,
para que seja possvel efetuar decises como executar um determinado comando ou trecho de
cdigo de acordo com uma condio, ou executar um trecho de cdigo diferente caso a condio
seja diferente.
Vamos estudar a estrutura de controle condicional if .. elseif .. else, dividindo o estudo em Controle
Condicional Simples, Composto e Aninhado.

P g i n a | 42

Controle Condicional Simples


Permite verificar se uma condio verdadeira e, em caso afirmativo, executar um comando ou
conjunto de comandos associados. Se a condio for falsa, nada executado
Sintaxe:
if (teste_condicional) {
comandos
}

Se o (teste_condicional) retornar verdadeiro, os comandos sero executados.


Exemplo:
<?php
$num = 10;
if ($num < 20) {
echo O nmero menor que 20;
}
?>
As expresses (teste_condicional) so sempre avaliadas como verdadeiro ou falso (valores
booleanos). Sempre use as chaves aps o teste condicional. Caso apenas uma instruo seja
executada na sequncia, as chaves so dispensveis, porm uma boa prtica de programao
sempre us-las para evitar problemas futuros com alterao e adio de cdigo.
Note que em nosso exemplo a mensagem foi exibida na sada, pois a expresso retornou
verdadeiro. Se retornasse falso, nada seria exibido.
Podemos tratar a expresso condicional quando falsa com o uso do condicional composto, que
utiliza a palavra reservada else.
Condicional Composto

P g i n a | 43

Com o condicional composto, podemos ter blocos de cdigo a serem executados tanto para o caso
da expresso condicional retornar verdadeiro, como para o caso da expresso condicional retornar
falso:
Sintaxe:
if (teste_condicional) {
comandos se teste verdadeiro
}
else {
comandos se teste falso
}
Vamos a um exemplo:
<?php
$num = 30;
if ($num < 20) {
echo O nmero menor que 20;
}
else {
echo O nmero no menor que 20;
}
?>
Neste segundo exemplo, alteramos o valor da varivel $num para 30, e acrescentamos o else
estrutura condicional, para que seja possvel avaliar o valor se falso.
Podemos tambm avaliar condies mais complexas, com mais de um teste condicional sequencial,
com o uso de elseif.
Controle Condicional Aninhado
Caso tenhamos a necessidade de avaliar mltiplas condies em um programa, podemos fazer uso
de um condicional aninhado, que permite encadear vrias instrues if. Se o primeiro if retorna

P g i n a | 44

verdadeiro, seus comandos associados so executados, e o condicional finalizado. Porm, se


o if retorna falso, o prximo condicional, dado por elseif ser avaliado, e se retornar verdadeiro
seus comandos associados sero executados. Caso retorne falso, o prximo elseif ser avaliado, e
assim sucessivamente at encontrar um valor verdadeiro, ou executar os comandos associados ao
else final, que obrigatrio, e somente so executados quando todos os testes condicionais
retornarem o valor falso.
Sintaxe:
if (teste_condicional_01) {
comandos se teste condicional 01 for verdadeiro
}
elseif (teste_condicional_02) {
comandos se teste condicional 02 for verdadeiro
}
elseif (teste_condicional_03) {
comandos se teste condicional 03 for verdadeiro
}
else {
comandos se todos os testes anteriores tiverem retornado falso.
}
Vamos a um exemplo:
<?php
$num = 30;
if ($num < 20) {
echo O nmero menor que 20;
}
elseif ($num > 20) {
echo O nmero maior que 20;

P g i n a | 45

}
else {
echo O nmero exatamente igual a 20;
}
?>
Neste exemplo o primeiro teste condicional resulta em falso, ento o segundo teste condicional, no
elseif, avaliado, resultando em verdadeiro; assim, a mensagem O nmero maior que 20
exibida no navegador.

10 - Estrutura de Controle Switch


A estrutura de controle switch permite substituir uma srie de estruturas if encadeadas, testando
vrios valores para uma mesma varivel ou expresso informada. Desta forma, temos um cdigo
mais organizado e fcil de manter e entender.
Se voc nunca estudou ou no conhece a funcionalidade da estrutura Switch (comando caso),
clique no link a seguir para assistir a um vdeo da Bson Treinamentos sobre o assunto (e aproveite
para revisar a lista de reproduo de Lgica de Programao):
Estrutura Switch / Case Comando Caso

Vamos sintaxe em PHP:


Sintaxe:
switch (varivel ou expresso a testar) {
case valor01:
comandos
break;
case valor01:
comandos
break;

P g i n a | 46

default:
comandos
}

A varivel (ou expresso) ser comparada com cada um dos valores informados nas
clusulascase at que seja encontrado um valor que corresponda. Neste caso, os comandos
associados ao case sero executados, at chegar clusula break, que encerra a estrutura de
controle.
Se nenhum case corresponder ao valor da varivel ou expresso testada, sero executados os
coamandos associados Ao clusula default (padro). Esta clusula opcional, porm.
A clusula break tambm opcional, mas na maioria dos casos voc ir utiliz-la, pois sem o break
todos os comandos a partir da correspondncia de valores so executados at a ltima clusula
case que contenha um break, ou at o final da estrutura case e nao somente os comandos do
case correspondente varivel ou expresso testada.
Exemplo:
<?php
$diaSemana = 5;
switch ($diaSemana) {
case 1:
print (Domingo);
break;
case 2:
print (Segunda-feira);
break;
case 3:
print (Tera-feira);
break;

P g i n a | 47

case 4:
print (Quarta-feira);
break;
case 5:
print (Quinta-feira);
break;
case 6:
print (Sexta-feira);
break;
case 7:
print (Sbado);
break;
default:
echo Dia errado informado;
}
?>

Ser mostrado no navegador o dia Quinta-feira, pois o case de valor 5, contido na varivel
testada ($diaSemana).
No prximo artigo trataremos sobre a instruo break mais detalhadamente.

11 - Estruturas de Repetio
Uma estrutura de repetio permite repetir um comando ou bloco de comandos diversas vezes,
automaticamente, de modo a permitir que cdigo seja reutilizado e eliminando a necessidade de
reescrever diversas vezes os mesmos comandos que precisam ser repetidos.

P g i n a | 48

Nesta aula vamos estudar as estruturas de repetio While e Do .. While. Nas prximas aulas
vamos abordar as estruturas de repetio For e Foreach.
Estrutura de Repetio While
A estrutura de repetio while permite executar repetidas vezes um bloco de comandos enquanto
uma condio testada retorna verdadeiro. Quando a condio testada retorna falso, a repetio
dos comandos (chamada de loop) encerrada e o programa segue seu fluxo normal de execuo.
Sintaxe:
While (expresso_testada) {
Bloco de comandos
}
Exemplo: Vamos criar um programa que imprima na tela os nmeros de 1 a 20:
<?php
$num = 1;
while ($num < 31) {
echo $num <br/>;
$num++;
}
?>
Note o uso da instruo $num++, que usada para incrementar o valor da varivel testada. Caso
no utilizemos essa instruo de incremento, o valor da varivel permanecer sempre em 1 (valor
inicial dela), e o programa nunca encerrar, pois a condio testada sempre retornar verdadeiro.
Teremos ento o famoso loop infinito, que na maioria dos casos um erro de programao.
Fique atento a esse detalhe!
Estrutura de Repetio Do .. While
A estrutura do .. while difere da estrutura while apenas pelo fato de que a estrutura do .. while
sempre executar o bloco de comandos associado ao menos uma vez, enquanto a estrutura while
executa o bloco de comandos zero ou mais vezes se logo no primeiro teste condicional ele j
retornar falso, nenhum comando executado.

P g i n a | 49

Ento, caso voc precise que o bloco de comandos seja executado ao menos uma vez em uma
estrutura de repetio, use o comando do .. while.
Sintaxe:
do {
Comandos
} while (expresso_testada);
Exemplo:
<?php
$num = 10;
while ($num < 10) {
echo Executado pelo while: $num <br/>;
$num++;
}
do {
echo Executado pelo do..while: $num <br/>;
} while ($num < 10);
?>
Neste exemplo, ao testarmos o valor da varivel $num, que vale 10, com o comando while, temos
um valor falso logo de incio, e portanto o bloco de comandos associado no ser executado.
Porm, ao testarmos a mesma varivel com do .. while, o bloco de comandos executado a
primeira vez e s ento a expresso ser avaliada, retornando falso e interrompendo o loop.
Na prxima aula veremos as estruturas de repetio for e foreach.

12 - Estrutura de Repetio For


Na aula passada estudamos as estruturas de repetio While e Do..While. Vamos agora abordar o
uso da estrutura de repetio For (lao for).

P g i n a | 50

A estrutura for realiza a repetio do bloco de comandos de forma mais refinada do que as
estruturas while, permitindo que o desenvolvedor programe a estrutura para que efetue o loop um
nmero pr-definido de vezes, e alm disso tambm permite que se escolha um valor de
incremento diferente na prpria declarao da estrutura, sem a necessidade de implementar esses
parmetros dentro do bloco de cdigos.
Sintaxe:
for (var_controle; teste_varivel; incremento) {
Bloco de comandos
}
Em que:
Var_controle uma varivel que possui um valor inicial, o qual ser avaliado apenas uma vez. o
ponto de partida da contagem de loops a serem realizados. Geralmente inicializamos essa varivel
dentro da prpria estrutura do for.
Teste_varivel um teste a ser realizado a cada iterao do loop, e caso retorne falso, o loop
encerrado. Geralmente um valor limite para a varivel de controle, o qual ao ser atingido aps
incrementos ou decrementos sucessivos, encerra o loop.
Incremento o valor que deve ser adicionado ou subtrtado da varivel de controle para que ela,
aps um nmero determinado de iteraes, possa atingir o valor limite que testado no parmetro
teste_varivel.
Vamos a um exemplo. Queremos imprimir na tela os nmeros de 1 a 15, um em cada linha:
<?php
for ($num = 1; $num <=15; $num++) {
print ($num <br/>);
}
?>

Note que nesse caso no precisamos declarar e atribuir a varivel antes de usar a estrutura for
(claro que podemos faz-lo se necessrio!). O comando print() ser executado 15 vezes, pois a
varivel $num inicializada com 1 e incrementada de 1 em 1 at chegar em 15.

P g i n a | 51

Estrutura de Repetio Foreach


A estrutura foreach nos permite realizar uma varredura completa em um array, retornando seus
valores e / ou chaves ou executando operaes sobre esses valores. H duas sintaxes disponveis
para esse comando:
Sintaxe 1: Retornar apenas os valores do array:
foreach (array as varivel) {
Comandos
}
Sintaxe 2: Retornar os valores e suas respectivas chaves:
foreach (array as varivel-chave => varivel-valor) {
Comandos
}
Vamos a alguns exemplos:
Exemplo 01: Criamos um array simples e visualizamos seu contedo com o comando foreach:
<?php
// criando um array para testes:
$vetor = array(SP,RJ,PE,AM,GO,SC);
// Visualizando o contedo do array:
foreach($vetor as $valores){
print($valores <br/>);
}
?>

P g i n a | 52

Exemplo 02: Vamos criar outro array e visualizar seus valores e chaves com o comando foreach:
<?php
// criando um array para testes:
$vetor = array(SP => So Paulo,RJ => Rio de Janeiro,PE => Recife,
AM => Manaus,GO => Goinia,SC => Florianpolis);
// Visualizando o contedo do array e suas chaves:
foreach ($vetor as $estado => $capital) {
print(A capital de $estado $capital <br/>);
}
?>
Veja o resultado abaixo:

Se o array passado para o comando foreach for multidimensional, o contedo retornado tambm
ser um array. Veremos como tratar esse caso ao estudarmos mais a fundo os arrays em PHP.

P g i n a | 53

13 - Instruo break
A instruo break permite interromper a execuo dos
comandos for, foreach, while,do..while e switch em qualquer ponto do bloco de comandos. Desta
forma, podemos avaliar uma expresso e de acordo com o seu resultado, encerrar o loop
imediatamente.
Vamos a um exemplo de seu uso. Neste exemplo, o lao for tenta imprimir os nmeros de 1 a 50 na
tela, porm ao chegar no nmero 35 o loop interrompido pelo uso da instruo break.:
<?php
for ($x=1; $x <= 30; $x++) {
print(O valor de x $x <br/>);
if ($x == 15) {
break;
}
}
?>

P g i n a | 54

Se houverem estruturas de controle aninhadas em seu cdigo, podemos passar para a instruo
break um valor que indicar quantos nveis devem ser encerrados. Veja o exemplo a seguir:
<?php
for ($y=1; $y <=10; $y++) {
for ($x=1; $x <= 10; $x++) {
if ($y == 5) {
print (Loop encerrado);
break 2;
}
print($x);
if ($x % 10 == 0){
print (<br/>);
}
}
}
?>
Resultado:

Instruo continue
A instruo continue, assim como a instruo break, permite que a execuo do loop seja
interrompida. Porm, diferentemente do que acontece com a instruo break, o loop no
encerrado apenas a iterao atual interrompida, a partir do ponto onde se encontra a
instruo, e o loop prossegue na prxima iterao.
Exemplo:
<?php
for ($x=1; $x <= 10; $x++) {
if (($x == 4) || ($x == 6)) {

P g i n a | 55

continue;
}
print(O valor de x $x <br/>);
}
?>

Da mesma forma que ocorre com a instruo break, se houverem estruturas de controle aninhadas
em seu cdigo, podemos passar para a instruo continue um valor que indicar quantos nveis
devem ser afetados. Veja o exemplo a seguir:
<?php
for ($y=1; $y <=10; $y++) {
for ($x=1; $x <= 10; $x++) {
if ($y == 5) {
print (Nesta linha no so mostrados os nmeros <br/>);
continue 2;
}
print($x);
if ($x % 10 == 0){
print (<br/>);
}
}
}
?>
Veja o resultado a seguir :

P g i n a | 56

14 - Declarando e Manipulando Arrays no PHP


Um array uma estrutura de dados muito comum, presente em praticamente todas aslinguagens
de programao. Tambm conhecido como Vetor, um array pode conter elementos de qualquer
tipo no PHP (inteiro, string, ponto flutuante, etc.), o que no acontece com a maioria das demais
linguagens, que exigem que o array possua apenas elementos de mesmo tipo.
Podemos criar arrays de uma dimenso ou de vrias dimenses. Por exemplo, um array
bidimensional tambm conhecido pelo nome de Matriz.
No PHP, os elementos de um array podem ser acessados por meio de ndices numricos (0,1,2,3)
ou ainda por chaves associativas (nome, altura, placa, etc).
Vamos aprender a criar arrays agora.

Criando um array
Podemos criar arrays usando dois mtodos distintos no PHP: com o construtor Array() e por criao
implcita.
Usando o construtor Array():
<?php
// Criando um array vazio:
$vetor = Array();// Criando um array unidimensional:
$vetor2 =Array(Fbio,28,12,150.60);//Criando um array de duas dimenses (matriz):
$matriz = Array(1=>Array(a,b,c),2=>Array(d,e,f),3=>Array(g,h,i));
?>

Por meio de criao implcita:

P g i n a | 57

Quando criamos arrays implicitamente, no declaramos o array antes de us-lo. Assim, o array
criado automaticamente quando referenciado. Usamos neste caso os caracteres [] (colchetes) em
vez dos parnteses:
<?php
$vetor[] = Fbio;
$vetor2[5] = Azul;
$vetor3[] = Array(1,2,3);
?>

Manipulando os elementos de um Array


Podemos acessar os elementos em um array usando o nome da varivel seguido de colchetes e o
ndice (ou a chave associativa) do elemento que desejamos acessar. Caso no seja informado
nenhum desses parmetros, o PHP ir assumir que voc deseja inserir um novo elemento no array,
em vez de acessar elementos existentes.
Os arrays so indexados a partir do ndice 0 (zero), como comum em muitas linguagens de
programao. Assim, um array de 10 posies possui na verdade os ndices de 0 a 9.
Vejamos alguns exemplos.
<?php
// Criando um array vazio:
$_vetor = Array();
// Atribuindo um valor ao array criado:
$_vetor[] = Fbio;
// Visualizando o valor armazenado:
print($_vetor[0] . <br>);
// Atribuindo mais um valor ao array:
$_vetor[] = Mnica;
// Atribuindo um valor posio 4 do array (as posies 2 e 3 tero o valor NULL):
$_vetor[4] = Renata;
// Visualizando todos os elementos do array com a funo print_r():
print_r($_vetor);
// Substituindo um dos valores do array:
$_vetor[1] = Ana;
// Visualizando todos os elementos do array com a funo print_r():
echo <br>;
print_r($_vetor);
?>

P g i n a | 58

Nos exemplos acima, usamos a funo print_r() do PHP, a qual permite mostrar todos os
elementos do array e seus respectivos ndices, de uma s vez.

Removendo um array ou seus elementos


Podemos remover um ou mais elementos de um array, ou ainda remover o prprio array com o
comando unset(). Para remover apenas um elemento, basta informar qual elemento deve ser
excludo. Caso queira excluir o array todo, informe apenas o nome do array, sem ndices:
<?php
// Criando um array e atribuindo quatro elementos:
$_vetor = Array(Fbio, Rita,Joo,Sandra);
// Visualizando todos os elementos do array com a funo print_r():
print_r($_vetor);
// Excluindo o elemento 1 do array (Rita):
unset($_vetor[1]);
// Visualizando todos os elementos do array novamente:
echo <br>;
print_r($_vetor);
// Removendo o array todo:
echo <br>;
unset($_vetor);
// Visualizando todos os elementos do array (agora haver um erro):
print_r($_vetor);
?>

Note que ao tentarmos acessar o array aps ter sido removido foi gerado um erro na sada da tela:

isso a! Na prxima lio vamos falar especificamente de Arrays Associativos. At!

P g i n a | 59

15 - Formulrios HTML
Um formulrio web uma pgina (ou parte de uma pgina) que contm elementos usados para
coletar informaes fornecidas pelo usurio, como caixas de texto, listas de seleo de opes,
checkboxes e botes de ao.
Um formulrio delimitado pelos marcadores <form> e </form>. Abaixo temos a sintaxe bsica
para criao de um formulrio HTML simples:
<form name=NOME action=scriptmethod=mtodo_envio enctype=tipo>
elementos do formulrio
</form>

Onde:
name o nome do formulrio, que pode ser usado para referenci-lo em una funo, por
exemplo.
action indica o script que dever efetuar o processamento dos dados inseridos no
formulrio. Em nosso caso, ser um script em PHP.
method o mtodo de envio dos dados para o servidor web onde est o script de
processamento. Pode ser GET ou POST.
enctype permite definir o formato com que os dados sero codificados antes de serem
enviados ao servidor http. Somente vlido quando o mtodo de envio for POST.

Mtodos GET e POST


H duas formas que o navegador do cliente pode usar para enviar os dados do formulrio ao
servidor: GET e POST. Ao enviar as informaes, o navegador as codifica usando um esquema
denominado Codificao de URL (URL Encoding). Nesse esquema, os dados a serem enviados so
agrupados em pares contendo um nome e um valor, separados por um caractere &. Por exemplo,
ao enviar dados de nome, sobrenome e idade de um usurio coletados de um formulrio, esses
dados seriam agrupados assim:
nome=Fabio&sobrenome=dos+Reis&idade=38
Note que usado um caractere + no lugar do espao entre as palavras dos e Reis; outros
caracteres especiais so substitudos por valores hexadecimais. Aps essa codificao, a
informao ento enviada ao servidor usando um dos mtodos citados.
O mtodo de envio GET limitado a 1024 caracteres no envio de dados, e o mtodo POST no
possui limite. Alm disso, o mtodo GET envia os dados anexados ao nome do script que foi
passado para o parmetro ACTION, sendo que esses dados (campos e valores) so posicionados

P g i n a | 60

aps um caractere ? na barra de endereos do navegador, seguindo o nome do script. Claramente


esse mtodo no muito seguro, pois pode expor dados dos usurios durante o envio por
exemplo, uma senha pode ficar claramente visvel ao usar esse mtodo. J no mtodo POST os
dados so enviados cabealhos HTTP da mensagem e, portanto, mais seguro e o mtodo
recomendado.
O PHP fornece um array associativo de nome $_POST que permite acessar os dados enviados
usando o mtodo POST.

Controles de Formulrios HTML


Seguindo a tag <form> indicamos os dados que o usurio deve fornecer e o tipo de cada
informao. Os dados so inseridos em elementos do formulrio (controles), com o uso da
tag<input>. A sintaxe para uso da tag <input> a seguinte:
<input type=tipo name=nome value=valor_inicial size=tamanhomaxlength=caracteres
checked>
Os parmetros da tag input so os seguintes:
name: Identificao do campo.
value: valor iniccial do campo; opcional, exceto para os tipos CHECKBOX e RADIO
size: tamanho do controle; para os tipos TEXT e PASSWORD indica o n de caracteres que
aparecem no campo
maxlength: nmero mximo de caracteres que podem ser digitados no campo; vlido
somente para TEXT e PASSWORD.
checked: define se um campo deve estar marcado inicialmente, sendo vlido para os tipos
CHECKBOX e RADIO.
type: O parmetro type define o tipo de campo a ser utilizado para entrada de dados.
Os principais tipos de controles so descritos a seguir:
text: controle de texto de linha nica
password: caixa de senha.
textarea: controle de texto multilinhas (multiline)
checkbox: campo que permite escolher opes clicando em caixas de verificao
radio: campo que permite escolher uma entre vrias opes clicando em um boto de
rdio
hidden: campo que no visvel para o usurio, e que usado para o envio de dados para
o servidor sem que o usurio interfira
submit: Boto de envio do formulrio
reset: Boto para zerar o formulrio, limpando todos os campos e restaurando seus
valores iniciais

P g i n a | 61

file: Campo usado para o envio de arquivos.


select: Caixa de listagem drop-down que permite listar vrias opes, das quais o usurio
pode selecionar uma ou mais.
Vamos ver alguns exemplos do uso desses controles em um formulrio HTML:
<!DOCTYPE html>
<html>
<head>
<title>Formulrios Web e PHP</title>
</head>
<body>
<form name=cadastro action=processa.php method=POST accept-charset=UTF-8>
<label>Nome:</label>
<input type=text name=nome size=30 placeholder=Digite seu nome aqui autofocus/><br/>
<label>Sobrenome:</label>
<input type=text name=sobrenome size=50 placeholder=Digite seu sobrenome aqui/><br/>
<br/>
<label>Senha:</label>
<input type=password name=senha size=15 required><br/>
<br/>
Sexo: <br/>
<input type=radio name=sexo value=M> Masculino<br/>
<input type=radio name=sexo value=F> Feminino<br/>
<input type=radio name=sexo value=N> No Declarado<br/>
<br/>
Marque as opes de seu interesse:<br/>
<input type=checkbox name=linguagens[] value=ASP> ASP.NET<br/>
<input type=checkbox name=linguagens[] value=JavaScript> Javascript<br/>
<input type=checkbox name=linguagens[] value=PHP> PHP<br/>
<input type=checkbox name=linguagens[] value=Python> Python<br/>
<br/>
Entre com seus comentrios na caixa a seguir:<br/>
<textarea rows=8 cols=50 name=comentarios>
</textarea>
<br/>
Selecione as tecnologias que deseja aprender: (Segure a tecla Ctrl para selecionar mais de uma
tecnologia)<br/>
<select name=tecnologias[] multiple>
<option value=ASP>ASP.NET</option>
<option value=C selected>Linguagem C</option>

P g i n a | 62

<option value=C++>C++</option>
<option value=Java>Java</option>
<option value=PHP>PHP</option>
<option value=Python>Python</option>
<option value=Ruby>Ruby</option>
</select><br/>
<br/>
Selecione um arquivo de seu computador para upload:<br/>
<input type=file name=arquivo/><br/>
<br/>
<input type=submit name=submit value=Enviar /><br/>
<input type=reset name=reset value=Resetar /><br/>
</form>
</body>
</html>
O cdigo anterior produz a seguinte pgina web:

P g i n a | 63

Ao clicarmos no boto Enviar os dados do formulrio so enviados para processamento pelo script
indicado no parmetro ACTION da tag <form>. Em nosso exemplo, a pgina apresentar um erro,
pois ainda no codificamos o script, de nome processa.php, mas possvel ver na barra de
endereos do navegador o script sendo chamado:

isso a! Nesta lio revisamos a criao de formulrios web simples para coleta de informaes
fornecidas pelo usurio. Na prxima lio vamos aprender a codificar o script PHP que vai
receber essas informaes e process-las no servidor.
At mais!

P g i n a | 64

16 - Processando os dados recebidos de um formulrio


HTML
Na lio anterior revisamos a criao de um formulrio HTML simples para envio de dados ao
servidor, contendo diversos elementos como caixas de texto, botes, caixa de seleo e de
listagem. Aps os dados terem sido recebidos pelo servidor, eles devem ser processados, o que
significa que podem ser realizados clculos, exibidos resultados no navegador, armazenados em
bancos de dados ou ento outras aes podem ser disparadas.
Quem ir realizar tais aes o script PHP que foi referenciado no parmetro ACTIONdo
formulrio, contido na tag <form>. Esse script deve estar presente no servidor e ir conter a
codificao PHP necessria para realizar as tarefas desejadas.
Agora iremos mostrar como criar esse script. O primeiro passo criar um arquivo no servidor de
nome processa.php, e salv-lo no mesmo diretrio onde est o arquivo html do formulrio (pode
ser em outro diretrio, basta referenciar o caminho corretamente na tag <form>, e o nome pode
ser diferente tambm, caso queira). Vamos codificar esse arquivo.

Arrays $_POST e $_GET


Quando os dados so enviados ao servidor, so transformados pelo PHP em elementos de um array
associativo de nome $_POST ou $_GET, de acordo com o mtodo de envio utilizado. As chaves do
array so os nomes escolhidos para os campos no formulrio, e seus valores, os dados que os
usurios inseriram nesses campos. Ou seja, quando o usurio submete o formulrio, os dados que
foram inseridos nos campos so armazenados no array ($_POST ou$_GET), o qual repassar esses
dados ao script PHP para processamento.
Esses arrays so variveis superglobais, o que significa que esto disponveis em todos os escopos
pelo script, sendo acessveis dentro de todas as funes e mtodos.
Cada elemento dentro do array usado corresponde a uma informao de um campo no formulrio.
Assim, para acessar o contedo de um campo especfico, basta usar o nome do array com a chave
correspondente. O nome da chave o mesmo valor do parmetro name usado no formulrio
para cada campo.
Dessa forma, caso queiramos acessar o contedo do campo Nome do formulrio, cujo parmetro
name=nome, basta ento acessar a chave correspondente no $_POST, da forma a seguir:
$_POST[nome];
Com o nome do campo entre aspas simples, e dentro dos colchetes. Assim, podemos atribuir esse
valor (que contm o dado digitado pelo usurio) a uma varivel, a uma funo, ou ainda imprimir

P g i n a | 65

na tela ou gravar em um banco de dados. Por exemplo, para atribuir esse valor a uma varivel
chamada nome no script:
$nome = $_POST[nome];
Cuidado para no se confundir: $nome uma varivel criada no script de processamento,
enome o nome do campo criado no formulrio, que contm a informao transmitida ao
servidor, via superglobal $_POST.
No caso dos checkboxes e caixas de seleo, que nos do a opo de selecionar mais de um item ao
mesmo tempo, precisamos utilizar um loop para varrer seu contedo e resgatar os dados
presentes. O exemplo abaixo mostra como obter os dados das linguagens de programao
selecionadas pelo usurio ao clicar nos checkboxes correspondentes:
// Verificando se os checkboxes foram selecionados
if(isset($_POST[linguagens])) {
echo As linguagens de programao escolhidas foram:<br/>;
// Efetuar loop pelo array de linguagens:
foreach($_POST[linguagens] as $linguagem) {
echo $linguagem . <br/>;
}
}
else {
echo Nenhuma linguagem de programao escolhida!<br/>;
}

Usamos a funo isset() para verificar se a varivel em questo foi definida isto ,
selinguagens[] foi criada quando o formulrio foi enviado, retornando o valor verdadeiro caso essa
varivel exista. Caso o usurio no tenha clicado em nenhum checkbox, linguagens[] no ser
definida e a funo isset() retornar falso. Note que no precisamos incluir os colchetes [] ao
avaliar a varivel com isset().
Se a varivel foi definida, ento podemos utilizar um lao foreach() para varrer seu contedo (pois
linguagens[] um array tambm) e retornar cada item individualmente. Desta forma:
foreach($_POST[linguagens] as $linguagem) {
echo $linguagem . <br/>;

P g i n a | 66

}
Assim, retornamos os elementos individuais presentes em linguagens[], que so as linguagens
selecionadas pelo usurio ao clicar nos checkboxes. Usamos a mesma tcnica para retornar os
dados enviados a partir do campo SELECT do formulrio:

if(isset($_POST[tecnologias])) {
echo Voc selecionou as seguintes tecnologias:<br/>;
// Loop foreach para retornar as tecnologias selecionadas:
foreach($_POST[tecnologias] as $tecnologia) {
echo $tecnologia . <br/>;
}
}
else {
echo Nenhuma tecnologia selecionada. Que pena! <br/>;
}
Se voc quiser visualizar os dados presentes no array (por exemplo, para debugar o script), pode
usar a funo print_r():
print_r($_POST);
Veja o resultado retornado aps preencher o formulrio e envi-lo:

Entre colchetes esto os nomes dos campos do formulrio, e associados a eles seus respectivos
valores (informados pelo usurio). Note que os campos linguagens e tecnologias tambm so
arrays, podendo carregar mais de uma informao em cada um.
Na caixa a seguir voc pode ver a listagem completa do cdigo do script processa.php, usado em
nossos exemplos:
<!doctype html>
<html lang=pt=br>
<head>
<title>Acesso</title>

P g i n a | 67

</head>
<body>

<?php
$nome = $_POST[nome];
$sobrenome = $_POST[sobrenome];
$sexo = $_POST[sexo];
$comentarios = $_POST[comentarios];
$senha = $_POST[senha];
echo Seu nome . $nome . . $sobrenome . <br/>;
echo O sexo informado foi . $sexo . <br/>;
echo A senha digitada . $senha . <br/>;
echo Voc comentou o seguinte: <br> . $comentarios . <br/>;
// Verificando os checkboxes
if(isset($_POST[linguagens])) {
echo As linguagens de programao escolhidas foram:<br/>;
// Efetuar loop pelo array de linguagens:
foreach($_POST[linguagens] as $linguagem) {
echo $linguagem . <br/>;
}
}
else {
echo Nenhuma linguagem de programao escolhida!<br/>;
}
//
// Verificando as tecnologias do campo SELECT:
if(isset($_POST[tecnologias])) {
echo Voc selecionou as seguintes tecnologias:<br/>;
// Loop foreach para retornar as tecnologias selecionadas:
foreach($_POST[tecnologias] as $tecnologia) {
echo $tecnologia . <br/>;

P g i n a | 68

}
}
else {
echo Nenhuma tecnologia selecionada. Que pena! <br/>;
}
//
// Mostrando todos os itens do array associativo $_POST:
print_r($_POST);
?>
</body>
</html>

Aps entrar com dados no formulrio e clicar em Enviar, os dados so enviados ao servidor e ento
processados, e o resultado pode ser visto abaixo (nenhum arquivo foi selecionado):

isso a! Na prxima lio iremos estudar mais algumas funes muito teis em PHP. At l!

P g i n a | 69

17 - Conexo a um Banco de Dados MySQL


Nesta lio vamos mostrar os procedimentos necessrios para realizar a conexo do script PHP a
um banco de dados MySQL, e executaremos uma insero de dados para testar a conexo criada.
Vamos usar dois documentos: uma pgina HTML contendo um formulrio de cadastro de clientes,
e um documento PHP contendo as rotinas para tratamento dos dados recebidos da pgina do
formulrio.
Na caixa a seguir temos o cdigo usado para a criao da pgina com o formulrio de cadastro:
<html>
<head>
<title> Testando conexo ao banco de dados </title>
</head>
<body>
<h3>Formulrio de Cadastro de Clientes</h3><br>
<form name=Cadastro action=processa.php method=POST>
<label>Nome do Cliente: </label><input type=text name=NomeCliente size=30><br>
<label>Sobrenome do Cliente: </label><input type=text name=SobrenomeCliente size=45><br>
<label>Sexo do Cliente: </label><select name=Sexo>
<option value=M>Masculino</option>
<option value=F>Feminino</option>
<option value=N>No Declarado</option>
</select><br>
<input type=submit name=enviar value=Enviar>
</form>
</body>
E logo abaixo uma visualizao do formulrio criado:

P g i n a | 70

Vamos precisar tambm de um banco de dados criado no MySQL para nossos testes. Vamos criar
um banco de nome banco_teste, e um usurio de nome fabio, que ser utilizado para efetuar a
conexo ao banco criado. Tambm iremos dar permisso total a esse usurio sobre o banco de
dados. Para tal, conecte-se ao MySQL pelo prompt de comandos (ou terminal, se estiver no Linux),
e execute a sequncia de comandos a seguir:
CREATE DATABASE banco_teste;
USE banco_teste;
CREATE TABLE Cadastro (NomeCliente VARCHAR (20), SobrenomeCliente VARCHAR (30), SEXO CHAR(1));
CREATE USER fabio@localhost;
GRANT ALL ON banco_teste.* TO fabio@localhost;
SET PASSWORD FOR fabio@localhost = PASSWORD(123);
Dados necessrios para a criao do script de processamento em PHP:
IP ou hostname do servidor MySQL;
Nome do Banco de Dados a acessar;
Nome de usurio do banco de dados;
Senha do usurio.
Vejamos agora como efetuar a conexo ao banco de dados criado. Para isso crie um novo
documento PHP, que salvaremos com o nome de processa.php, e ento siga os procedimentos a
seguir para criar o cdigo deste arquivo.

Efetuando conexo ao banco de dados


Passo 1: Primeiramente criaremos uma string de conexo com a funo mysqli_connect() no
arquivo processa.php
Funo msqli_connect(): Permite abrir uma conexo a um banco de dados MySQL, de acordo com
os dados fornecidos.
Sintaxe:
mysqli_connect(servidor, usurio, senha, banco);
Essa funo retorna uma string de conexo, que deve ser armazenada em uma varivel para uso
posterior, quando formos executar as declaraes SQL no banco de dados. Vejamos um exemplo.

P g i n a | 71

Vamos criar a string de conexo e armazen-la em uma varivel de nome $strcon, usando os dados
a seguir:
Hostname do servidor MySQL: localhost
Nome do Banco de Dados a acessar: banco_teste
Nome de usurio do banco de dados: fabio
Senha do usurio: 123
Cdigo:
$strcon = mysqli_connect(localhost,fabio,123,banco_teste) or die(Erro ao conectar ao
banco de dados requisitado);
Aps executar essa instruo, a varivel $strcon deve conter os dados necessrios para conexo ao
banco de dados. Usamos a funo die() que ser executada caso haja algum erro durante a
execuo de mysqli_connect(), exibindo a mensagem No foi possvel conectar ao MySQL como
aviso.
Veja como ficar o cdigo no arquivo processa.php para a realizao de nosso primeiro teste, que
a conexo ao banco de dados criado:
<?php
$nome = $_POST[NomeCliente];
$sobrenome = $_POST[SobrenomeCliente];
$sexo = $_POST[Sexo];
$strcon = mysqli_connect(localhost,fabio,123,banco_teste);
if (!$strcon) {
die(No foi possvel conectar ao MySQL);
}
echo Conexo realizada com sucesso!;
mysqli_close($strcon);
?>
Aps criar os documentos (formulrio e arquivo processa.php), teste-os abrindo o formulrio em
um navegador, preenchendo os dados e clicando no boto Enviar Se a conexo tiver xito, voc
ver a mensagem Conexo realizada com sucesso na pgina. Vamos agora modificar o cdigo
para que possamos inserir dados no banco de dados criado.
Passo 2: Vamos criar a declarao SQL que ser executada no servidor, e armazen-la em uma
varivel. Como exemplo, vou inserir um registro novo na tabela Cadastro do banco de dados (que
contm as colunas NomeCliente, SobrenomeCliente e Sexo ), a partir de informaes coletadas

P g i n a | 72

dos campos nome, sobrenome e sexo de um formulrio, armazenando a declarao SQL na


varivel $sql (o nome pode ser diferente, fica a seu critrio):
$sql = INSERT INTO Cadastro(NomeCliente, SobrenomeCliente, Sexo) VALUES
($nome,$sobrenome,$sexo);
As variveis $nome, $sobrenome e $sexo contm os dados enviados com o uso do array$_POST.
Passo 3: Executar a declarao SQL no banco de dados. Para isso vamos utilizar a
funomysqli_query().
Funo mysqli_query(): Executa uma declarao SQL no banco de dados.
Sintaxe:
mysqli_query(string_conexo,cdigo_SQL,modo_resultado)
string_conexo a string de conexo que foi gerada anteriormente com a funo
mysqli_connect()
cdigo_SQL a declarao SQL armazenada na varivel $sql criada
modo_resultado pode ser:
MYSQLI_USE_RESULT (Caso precisemos retornar uma quantidade enorme de
dados)
MYSQLI_STORE_RESULT (Modo padro)
modo_resultado opcional.
Exemplo: Vamos agora executar a insero dos dados coletados do formulrio no banco de dados
efetivamente:
$resultado = mysqli_query($strcon,$sql) or die(Erro ao executar a insero de dados);
A varivel $resultado armazenar o resultado da execuo da declarao, que pode ser (para o
INSERT): TRUE, FALSE ou Failure, dependendo do xito ou no do processo. opcional, caso no
seja necessrio retornar nenhuma informao.
Passo 4: Encerrar a conexo ao banco de dados. Para isso utilize a funo msqli_close():
Funo mysqli_close(): Fecha uma conexo a um banco de dados aberta previamente.
Sintaxe:
mysqli_close(string_conexo);

P g i n a | 73

string_conexo a string criada com a funo mysqli_connect() no incio do


procedimento.
Exemplo: Fechando a conexo usada durante a insero do registro no banco de dados:
mysqli_close($strcon);
O cdigo completo do script alterado para insero de dados no banco de dados pode ser visto no
box abaixo:
<?php
$nome = $_POST[NomeCliente];
$sobrenome = $_POST[SobrenomeCliente];
$sexo = $_POST[Sexo];
$strcon = mysqli_connect(localhost,fabio,123,banco_teste);
if (!$strcon) {
die(No foi possvel conectar ao MySQL);
}
// Criando a declarao SQL:
$sql = INSERT INTO Cadastro(NomeCLiente, SobrenomeCLiente, Sexo)
VALUES ($nome,$sobrenome,$sexo);
// Executando a declarao no banco de dados:
$resultado = mysqli_query($strcon,$sql) or die(Erro ao executar a insero dos dados);
echo Registro inserido com sucesso;
mysqli_close($strcon);
?>
Aps a conexo ter sido fechada, o processo est finalizado e o novo registro do inserido no banco
de dados com xito. Efetue uma consulta ao banco de dados (pelo terminal ou usando o
phpMyAdmin), usando a declarao SELECT * FROM Cadastro, para constatar que o registro foi
includo com sucesso. Veja o resultado da execuo do script aps o cadastro do registro Fabio
dos Reis usando o formulrio criado:

Funo die()

P g i n a | 74

Essa funo executada caso haja algum problema na execuo das funes mostradas
anteriormente, exibindo uma mensagem de erro, e finalizando o script PHP naquele ponto. Passe
como parmetro para esta funo a mensagem a ser exibida.
isso a! Na prxima lio vamos aprender a realizar consultas no banco de dados. At!

18 - Efetuando uma consulta SQL no banco de dados e


retornando dados pgina
Nas lies anteriores aprendemos a criar uma string de conexo e a executar um cdigo SQL no
banco de dados. Tambm mostramos como inserir dados no banco de dados, cadastrando um
cliente a partir do preenchimento de um formulrio HTML.
Vamos agora aprender a realizar uma consulta ao banco de dados para que seja possvel conferir se
os dados foram inseridos corretamente. A consulta deve ser inserida no script PHP de
processamento dos dados.
Primeiramente, vamos executar uma consulta que retorna todos os registros armazenados no
banco de dados. Vamos usar o formulrio a seguir, que contm apenas um boto de consulta:

Segue o cdigo HTML da pgina que contm este formulrio:


<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="utf-8">
<title> Testando conexo ao banco de dados </title>
</head>
<body>
<h3>Formulrio de Consulta de Clientes Completo</h3><br>
<form name="Cadastro" action="consulta.php" method="POST">
<label>Consulta a Banco de Dados completo:</label>
<input type="submit" name="consulta-completa" value="Consultar">
</form>
</body>

P g i n a | 75

Criando e executando a consulta: consulta.php


Funo mysqli_fetch_array(): Permite obter os resultados de uma consulta SQL.
Uso:
$registro = mysqli_fetch_array($resultado);
A varivel $resultado que utilizada para armazenar o retorno da funo mysqli_query() no
contm dados; ela contm na verdade um nmero de identificao de um recurso MySQL, que
pode ser utilizado para acessar os resultados de uma consulta SQL com a
funomysqli_fetch_array(), uma linha (registro) de cada vez.
J a varivel $registro um array que armazena a primeira linha do resultado da consulta. Cada vez
que a instruo executada, uma linha de dados dos resultados da consulta armazenada no array
$registro.
Para obter todos os resultados, basta executar repetidamente a instruo, em loop, at que todos
os dados tenham sido retornados.
Sero exibidos na pgina os registros armazenados na tabela do banco de dados, em cada campo,
como pode ser visto na tela a seguir:

Abaixo voc pode ver o script completo do arquivo consulta.php, que recebe os dados a serem
consultados de um formulrio e executa a consulta requisitada:
<?php
// Criando tabela e cabealho de dados:
echo "<table border=1>";
echo "<tr>";
echo "<th>NOME</th>";
echo "<th>SOBRENOME</th>";
echo "<th>SEXO</th>";
echo "</tr>";
// Conectando ao banco de dados:

P g i n a | 76

$strcon = mysqli_connect('localhost','fabio','123','banco_teste') or die('Erro ao conectar ao banco


de dados');
$sql = "SELECT * FROM cadastro";
$resultado = mysqli_query($strcon,$sql) or die("Erro ao retornar dados");
// Obtendo os dados por meio de um loop while
while ($registro = mysqli_fetch_array($resultado))
{
$nome = $registro['NomeCliente'];
$sobrenome = $registro['SobrenomeCliente'];
$sexo = $registro['Sexo'];
echo "<tr>";
echo "<td>".$nome."</td>";
echo "<td>".$sobrenome."</td>";
echo "<td>".$sexo."</td>";
echo "</tr>";
}
mysqli_close($strcon);
echo "</table>";
?>
Na prxima lio vamos aprender a criar uma consulta com pesquisa, que nos permitir aplicar
filtros para que sejam retornados apenas os dados que nos interessam do banco, em vez de
retornar a tabela completa.

19 - Inserindo dados no Banco de Dados MySQL


Nesta lio vamos aprender a inserir dados (cadastrar) no banco de dados. Trata-se de uma
operao extremamente comum e importante, e ns vamos inserir no banco dados provenientes
de um formulrio HTML.
Usando nosso banco de dados de exemplo das lies anteriores, vamos efetuar o cadastro
de dados a partir dos valores inseridos no Formulrio de Cadastro de Clientes, cujos dados sero
inseridos na tabela cadastro do banco de dadosbanco_teste, que possui os campos NomeCliente,
SobrenomeCliente e Sexo.

Campos da tabela cadastro

P g i n a | 77

Usaremos o comando SQL a seguir:


INSERT INTO cadastro (NomeCliente, SobrenomeCliente, Sexo) VALUES $nome, $sobrenome,
$sexo;
Onde $nome, $sobrenome e $sexo so os valores obtidos a partir do formulrio de cadastro de
nossa pgina de exemplo:

A seguir temos o cdigo da pgina que contm o formulrio de cadastro de clientes, conforme
exibida na figura anterior:
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="utf-8">
<title> Testando conexo ao banco de dados </title>
</head>
<body>
<h3>Formulrio de Cadastro de Clientes</h3><br>
<form name="Cadastro" action="cadastrar.php" method="POST">
<label>Nome do Cliente: </label>
<input type="text" name="NomeCliente" size="30"><br>
<label>Sobrenome do Cliente: </label>
<input type="text" name="SobrenomeCliente" size="45"><br>
<label>Sexo do Cliente: </label>
<select name="Sexo">
<option value="M">Masculino</option>
<option value="F">Feminino</option>
<option value="N">No Declarado</option>
</select><br>
<input type="submit" name="enviar" value="Enviar">
</form>
</body>
</html>

P g i n a | 78

Ao clicar no boto Enviar, os dados so enviados para processamento por um script PHP que
batizaremos de cadastrar.php para execuo do cadastro.
Vamos ao cdigo exemplo do script cadastrar.php:

Cdigo do script PHP


Crie um novo script de nome cadastrar.php e insira o cdigo a seguir nele. Logo aps salve-o:
<?php
$nome = $_POST['NomeCliente'];
$sobrenome = $_POST['SobrenomeCliente'];
$sexo = $_POST['Sexo'];
$strcon = mysqli_connect('localhost','fabio','123','banco_teste') or die('Erro ao conectar ao banco
de dados');
$sql = "INSERT INTO cadastro VALUES ";
$sql .= "('$nome', '$sobrenome', '$sexo')";
mysqli_query($strcon,$sql) or die("Erro ao tentar cadastrar registro");
mysqli_close($strcon);
echo "Cliente cadastrado com sucesso!";
?>
Nesse script ns:
1. Capturamos os dados provenientes do formulrio HTML por meio da varivel $_POST
2. Abrimos a conexo com o banco usando mysqli_connect()
3. Criamos a declarao sql
4. Executamos o comando sql no banco usando mysqli_query()
5. Fechamos a conexo com mysqli_close()
Vamos incluir um registro no banco de dados a partir de nosso formulrio. Veja o form da pgina
preenchido a seguir:

Aps preencher o cadastro e clicar no boto enviar, os dados sero enviados do formulrio para o
script cadastra.php, e se no houver nenhum problema, sero gravados no banco de dados, e a
seguinte mensagem ser mostrada na pgina:

P g i n a | 79

Excelente! Temos agora um script que pode ser utilizado para cadastrar dados em um banco de
dados MySQL. Esse script pode ser bem refinado ainda, com a incluso de testes de validao de
campos, verificao de erros diversos de conexo e gravao no banco, e outras melhorias que
vamos mostrar nos prximos tutoriais.
Porm, no momento o mais importante aprender a realizar consultas no banco de dados, a fim
de verificar os dados que foram gravados e obter informaes especficas armazenadas no MySQL.
Esse o assunto de nossa prxima lio.

Anda mungkin juga menyukai