Escolar Documentos
Profissional Documentos
Cultura Documentos
NDICE
NDICE .......................................................................................................................................... 2
INSTALANDO O WAMPSERVER. ............................................................................................... 3
PHP ............................................................................................................................................... 4
Parmetros ................................................................................................... 21
FORMULRIOS .......................................................................................................................... 22
ENVIO DE E-MAILS ................................................................................................................... 23
BANCOS DE DADOS ................................................................................................................. 25
INSTALANDO O WAMPSERVER.
Para podermos testar nossos cdigos em PHP necessria a utilizao de um
servidor com suporte a PHP. Caso ainda no possua um servio de
hospedagem, ou caso seu servio de hospedagem no de suporte
linguagem, voc pode testar suas pginas em PHP em um servidor local.
Vamos para dar andamento ao contedo da apostila usar o WAM Server, que
um pacote que j instala para voc o servidor internet local com suporte a PHP
e MySQL.
Basta ir clicando e avanando. Aps a instalao ser mostrado prximo ao
relgio o cone de seu servidor WEB.
Ao clicar sobre este cone voc ter acesso ao menu de opes de seu
servidor local.
PHP
PHP uma sigla recursiva que significa PHP HyperText Preprocessor. O
PHP uma linguagem de cdigo-fonte aberto, muito utilizada na Internet e
Sintaxe Bsica
Tags especiais indicam ao PHP onde esto os blocos de cdigo. A tag de
abertura formada por um sinal de menor que (<), um sinal de interrogao
(?) e a sigla php. A tag de fechamento formada por um ponto interrogao (?)
e sinal de maior que (>).
Ex:
<?php
...
?>
Monte o exemplo abaixo:
<body>
<?php
$a = 10;
$b = 15;
$c = $a + $b;
echo "$a mais $b igual a $c";
?>
</body>
Explicando, criamos as variveis a e b e atribumos a ela um valor, depois
criamos a varivel c e definimos a ela a soma de a e b, depois escrevemos
isso em tela com o comando echo.
Podemos adicionar isso ao prprio cdigo como comentrios de boco /* e */. de
apenas uma linha so obtidos atravs de //.
Variveis
Variveis armazenam valores. Pode-se referir a variveis para obter seu valor
ou para alterar seu contedo.
No PHP elas so representadas por um cifro ($) mais o nome da varivel. Os
nomes de variveis vlidos so iniciados por letras ou por um subscrito ( _ ).
Existe diferenciao entre nomes de variveis maisculas e minsculas.
Quando a varivel declarada dentro de uma funo, ela s estar disponvel
para o cdigo desta funo. O cdigo a seguir gera um erro devido a essa
caracterstica.
<?php
function soma($a){
$b = $a + 5;
}
soma(10);
echo "o valor de 'b' $b";
?>
Para evitar este tipo de problema, deve-se definir a varivel como global. O
cdigo a seguir resolve o problema do cdigo anterior. Compare os resultados
dos dois scripts.
<?php
function soma($a)
{
global $b;
$b = $a + 5;
}
soma(10);
echo "o valor de 'b' $b";
?>
Tipos de dados
O PHP suporta vrios tipos de dados:
Inteiro Nmeros inteiros (isto , nmeros sem ponto decimal)
Nmeros de dupla preciso Nmeros reais (isto , nmeros que
contm um ponto decimal)
String Texto entre aspas simples ( ) ou duplas ( )
Booleanos armazenam valores verdadeiros ou falsos, usados em
testes de condies
Array Grupo de elementos do mesmo tipo
Objeto Grupo de atributos e mtodos
Recurso Uma origem de dados externa
Nulo Nenhum valor
<?php
//dados boleanos
$a = True;
if ($a)
{
echo "Verdadeiro";
}
else
{
echo "Falso";
}
echo '<p>';
// dados com hexadecimais
Constantes
Constantes so identificadores para valores simples. O seu contedo no
muda durante a execuo do cdigo. Elas so criadas com a funo define e,
por conveno, so escritas com letras maisculas e no usam o cifro no
incio.
<?php
define("CONSTANTE", "Al mundo.");
echo CONSTANTE;
?>
Operadores
So usados para efetuarem operaes sobre as variveis e constantes. Os
operadores do PHP so:
+ soma
- subtrao
multiplicao
/ diviso
^ exponenciao
% mdulo, resto da diviso
++ acrescenta um a uma varivel
-- subtrai um de uma varivel
+= soma um valor a uma varivel e lhe atribui o resultado
<?php
$x = 2;
echo($x + 2);
echo "<br>";
$x = 2;
echo(5 - $x);
echo "<br>";
$x = 4;
echo($x * 5);
echo "<br>";
$x = 15;
echo($x / 5);
echo "<br>";
$x = 10;
echo($x % 8);
10
echo "<br>";
$x = 5;
$x++;
echo($x);
echo "<br>";
$x = 5;
$x--;
echo($x);
echo "<br>";
$x = 8;
echo($x);
echo "<br>";
$x = 8;
$x = $x + 10;
echo($x);
echo "<br>";
$x = 8;
$x += 10;
echo($x);
?>
H tambm os operadores de comparao. Uma comparao sempre gera um
dos dois valores possveis: vazio, que corresponde a falso, e 1, que
corresponde a verdadeiro.
= = igual a
! = no igual a
maior que
< menor que
>= maior ou igual a
<= menor ou igual a
<?php
$x = 5;
$resultado = ($x == 8);
11
if($resultado == 1)
{
echo "verdadeiro";
}
else
{
echo "falso";
}
echo "<br>";
$x = 5;
$resultado = ($x != 8);
if($resultado == 1)
{
echo "verdadeiro";
}
else
{
echo "falso";
}
echo "<br>";
$x = 5;
$resultado = ($x > 8);
if($resultado == 1)
{
echo "verdadeiro";
}
else
{
echo "falso";
}
echo "<br>";
$x = 5;
12
13
Operadores lgicos
and ou && - operador lgico e, apenas retornando verdadeiro quando as
duas condies envolvidas no teste forem verdadeiras or ou | | operador lgico
ou, retornando verdadeiro quando uma ou as duas condies envolvidas no
teste forem verdadeiras ! operador lgico no, invertendo o resultado de um
teste xor operador lgico ou exclusivo que determina se uma de duas
condies verdadeira mas no ambas. Se ambas forem verdadeiras, o teste
final ser falso.
<?php
$x = 6;
$y = 3;
$resultado = ($x < 10 && $y > 1);
if($resultado == 1)
{
echo "verdadeiro";
}
else
{
echo "falso";
}
echo "<br>";
$x = 6;
$y = 3;
$resultado = ($x == 5 || $y == 5);
if($resultado == 1)
{
echo "verdadeiro";
}
else
{
echo "falso";
}
14
echo "<br>";
$x = 6;
$y = 3;
$resultado = (!($x == $y));
if($resultado == 1)
{
echo "verdadeiro";
}
else
{
echo "falso";
}
?>
Estruturas de Controle
No PHP, as estruturas de controle so formadas por declaraes condicionais
e de looping:
if executa uma ao se uma condio for atendida. O bloco de comandos a
ser executado deve ser escrito entre chaves;
else pode-se colocar um conjunto de comandos alternativos caso o teste do if
seja negativo. A declarao else deve vir logo aps o bloco de cdigo
relacionado ao. O comando if tambm pode ser usado aps a declarao else
<body>
<?php
$x = 20;
if ($x > 10)
{
echo("O valor da varivel maior que 10.");
}
?>
</body>
Outro exemplo usando If e else
<body>
15
<?php
$cor = "branco";
if ($cor == "vermelho")
{
echo("A varivel contm o valor 'vermelho'.");
}
else if ($cor == "azul")
{
echo("A varivel contm o valor 'azul'.");
}
else if ($cor == "amarelo")
{
echo("A varivel contm o valor 'amarelo'.");
}
else
{
echo("O valor da varivel no foi identificado.");
}
?>
</body>
switch / case
Forma de testar uma dentre vrias possibilidades. A declarao default
executa caso nenhuma das opes for verdadeira. A declarao break faz com
que o restante do cdigo no seja executado caso o teste seja verdadeiro.
<body>
<?php
$d = getdate();
switch ($d['wday'])
{
case 5:
echo("Sexta-feira");
break;
16
case 6:
echo("Sbado");
break;
case 0:
echo("Domingo");
break;
default:
echo("Outro dia da semana");
}
?>
</body>
For
Estrutura de looping que executa um bloco de cdigo quantas vezes for
indicado em uma varivel. Deve-se definir a varivel que ser testada no
looping, uma condio de teste e o incremento (ou decremento) da varivel de
controle.
<body>
<?php
for ($i = 1; $i < 10; $i++)
{
echo("Linha $i <br>");
}
?>
</body>
While
Estrutura de looping que no necessita de um nmero determinado de
iteraes. Ele executado enquanto uma condio for verdadeira.
<body>
<?php
$i = 1;
17
do-while
Outra forma de looping que executa um bloco de cdigo, testa uma condio e
repete novamente o bloco de cdigo (ou no).
<?php
$i = 1;
do
{
echo ("Linha $i <br>");
$i++;
}
while ($i < 10)
?>
Matrizes
Matrizes so variveis que armazenam mais de um valor simultaneamente.
Uma matriz no PHP atualmente um mapa ordenado. Um mapa um tipo que
relaciona valores para chaves. Este tipo otimizado de vrias maneiras, ento
voc pode us-lo como um array real, ou uma lista (vetor), hashtable (que
uma implementao de mapa), dicionrio, coleo, pilha, fila, etc.
As referncias aos elementos da matriz podem ser declaradas como valores
numricos ou strings
<body>
<?php
$colaboradores = array(0 => "Marcos",
18
1 => "Eduardo",
2 => "Maria",
3 => "Srgio",
4 => "Rosangela");
echo "<b>Colaboradores</b>";
echo "<ul>";
echo "<li>" . $colaboradores[0];
echo "<li>" . $colaboradores[1];
echo "<li>" . $colaboradores[3];
echo "<li>" . $colaboradores[2];
echo "<li>" . $colaboradores[4];
echo "</ul>";
?>
</body>
INCLUSO DE ARQUIVOS
O comando include permite a incluso de outros arquivos php dentro do script
que est sendo executado. Pode-se criar uma funo que imprime a data atual
e pode-se reus-lo sem precisar reescrever o cdigo cada vez que for
necessrio. No exemplo a seguir, pode-se chamar o primeiro script de
topo.php e o prximo script o inclui atravs do comando include.
Cdigo do arquivo topo.php.
<body>
<?php
$meses = array(1 => "Janeiro",
2 => "Fevereiro",
3 => "Maro",
4 => "Abril",
5 => "Maio",
6 => "Junho",
7 => "Julho",
8 => "Agosto",
9 => "Setembro",
19
10 => "Outubro",
11 => "Novembro",
12 => "Dezembro");
$hoje = getdate();
$dia = $hoje["mday"];
$mes = $hoje["mon"];
$nomeMes = $meses[$mes];
$ano = $hoje["year"];
echo "Hoje dia $dia de $nomeMes de $ano."
?>
</body>
Para chamar o arquivo topo.php, usamos o seguinte cdigo em um novo
arquivo php.
<body>
<?php
include("topo.php");
?>
</body>
Este recurso pode ser bem interessante, para facilitar a atualizao de setores
do seu site, pois podemos importar arquivos no formato texto como, por
exemplo, arquivos em TXT , apenas necessrio salv-lo no formato UTF-8,
para que o navegador consiga interpretar corretamente a acentuao.
20
Parmetros
O uso de parmetros facilita a programao porque permite a passagem de
dados entre o browser e o script ou entre scripts. A passagem de parmetros
entre o browser e o script feita dentro da URL, por exemplo, e manipulada
pela funo $_GET.
Nesse exemplo a seguir, cada um dos links envia um valor diferente para a
pgina que aberta parametros.php. Para enviar um parmetro, a sintaxe
inclui um sinal de interrogao, o nome da varivel, um sinal de igual e o valor
da varivel.
<body>
<?php
if (isset($_GET["valor"]))
21
{
$valor = $_GET["valor"];
echo "Voc clicou no valor $valor <p>";
}
else
{
echo "Clique em um dos valores:<p>";
}
?>
<a href="parametros.php?valor=1">Valor01</a><br>
<a href="parametros.php?valor=2">Valor02</a><br>
<a href="parametros.php?valor=3">Valor03</a><br>
<a href="parametros.php?valor=4">Valor04</a><br>
<a href="parametros.php?valor=5">Valor05</a><br>
</body>
FORMULRIOS
Os valores enviados atravs de um formulrio podem ser recuperados pela
varivel predefinida $_POST. Atravs dela possvel obter os dados que foram
enviados atravs do mtodo POST do HTML, bastando indicar o nome do
campo do formulrio. No comando action do formulrio, deve-se indicar a
pgina PHP que ir receber os valores. O mesmo documento pode conter o
22
cdigo e o formulrio
<body>
<?php
if (isset($_POST["pnome"]) && isset($_POST["snome"]))
{
$pnome = $_POST["pnome"];
$snome = $_POST["snome"];
echo "Ol $pnome $snome.<p>";
}
else
{
echo "Digite o seu nome.<p>";
}
?>
<form method="post" action="formulario.php">
Nome: <input type="text" name="pnome">
<br>
Sobrenome: <input type="text" name="snome">
<br><br>
<input type="submit" value="Enviar">
</form>
</body>
ENVIO DE E-MAILS
O PHP permite que se enviem e-mails de forma automatizada. Para isso, devese ajustar o arquivo de configurao (php.ini) para se indicar o servidor SMTP:
[mail function]
SMTP = localhost ;for win32 only
sendmail_from = me@localhost.com ;for win32 only
;sendmail_path = ;for unix only, may supply
arguments as well (default is 'sendmail -t -i')
A opo SMTP indica o endereo ou nmero IP do servidor SMTP. A opo
sendmail_from indica o endereo do remetente da mensagem. necessrio
23
24
$nome = $_POST["nome"];
$email = $_POST["email"];
$assunto = $_POST["assunto"];
$mensagem=$_POST["mensagem"];
//Setando o restante das variveis para o disparo do email
$destinatario = "seuemail@provedor.com";
$formato = "\nContent-type: text/html\n";
//Incluindo os campos nome e email no corpo da mensagem.
$msg = "- Nome: ".$nome."<br>- Assunto: ".$assunto."<br>- Mensagem:
".$mensagem;
//Enviando o email
mail("$destinatario","$assunto","$msg","from: ".$email.$formato);
//Criando a mensagem de confirmao de envio de email.
echo "<div align=center>Mensagem enviada com sucesso! Aguarde um
retorno.
Clique
<a
href='index.php'>
<b>aqui</b>
</a>
para
retornar.</div>";
?>
BANCOS DE DADOS
O ponto de partida para a criao de um banco de dados o registro. Um
registro uma coleo de dados relacionados tratada como uma entidade
nica. Por exemplo: a ficha de funcionrio pode ser chamada de um registro:
ela contm o nome, fotografia, funo, salrio, etc. Empregando a terminologia
de banco de dados, cada um desses itens relacionados seria chamado de
campo: cada "registro" de ficha do funcionrio contm um campo de nome, um
campo de fotografia, um campo de funo etc.
Uma coleo de registros que compartilham os mesmos campos chamada de
tabela, porque esses tipos de informaes podem ser facilmente apresentados
no formato de tabela: cada coluna representa um campo e cada linha
representa um registro. Na verdade, a palavra coluna sinnima de campo e
linha sinnima de registro.
Um banco de dados pode conter mais de uma tabela, cada uma delas com um
nome exclusivo. Essas tabelas podem ser relacionadas ou independentes.
25
Introduo ao MySQL
O MySQL o gerenciador de banco de dados mais usado com o PHP. Existem
muitas funes pr-definidas para manipulao de conexes com bancos de
dados.
A funo mysql_connect tenta uma conexo com um servidor MySQL. Devese passar como parmetros: o nome do servidor (ou nmero IP) onde o MySQL
est sendo executado, o nome de usurio e a senha deste usurio. O comando
alternativo die trata um possvel fracasso na conexo.
A funo mysql_selectdb seleciona qual base ser selecionada dentro do
banco de dados que foi conectado. O comando alternativo die trata um possvel
fracasso na seleo da base, podendo ser includa uma mensagem
customizada.
A funo mysql_query faz consultas base previamente selecionada. Devese passar, como parmetros, os comandos SQL apropriados. Novamente, o
comando alternativo die pode tratar um no sucesso na consulta.
<body>
<?php
$link = mysql_connect("localhost", "root", "")
or die("No foi possvel conectar");
mysql_select_db("curso")
or die("No foi possvel selecionar o banco de dados");
$consulta = "SELECT * FROM Modulos";
$resultado = mysql_query($consulta)
or die("Falha na execuo da consulta");
echo "Consulta executada com sucesso";
?>
26
</body>
Embora seja possvel criar os Bancos de Dados, tabelas, etc. diretamente pelo
cdigo, este processo se torna mais fcil de forma visual, utilizando, por
exemplo, o PHPMyAdmin.
Pelo gerenciador do WAMP, selecione phpMyAdmin.
Caso
ele
no
abra
pgina
correta
mude
para:
27
Clique em Criar
Ser criado o Banco porm sem nenhuma tabela.
Na janela que voc havia feito para se logar ao banco de dados, pressione F5
e veja que agora ele mostra a mensagem de falha na consulta, pois temos o
Banco de dados.
28
29
Para o campo ID, vamos deix-lo como Auto Incremento e com atributo de
chave primria.
30
31
Exibio
Para que os registros da consulta sejam exibidos, deve-se usar a funo
mysql_fetch_assoc, que retorna uma matriz com a linha atual e move para a
prxima. Para se imprimir todos os resultados de uma query, necessria a
construo de uma estrutura de repetio (while) at que a funo
mysql_fetch_assoc no retorne nenhum valor (vazio).
Para melhorar a apresentao dos resultados, possvel usar tags HTML que
incluam os dados dentro de tabelas, por exemplo.
<body>
<?php
$link = mysql_connect("localhost", "root", "")
or die("No foi possvel conectar");
mysql_select_db("curso")
or die("No foi possvel selecionar o banco de dados");
$consulta = "SELECT * FROM modulos";
$resultado = mysql_query($consulta)
or die("Falha na execuo da consulta");
$linha = mysql_fetch_assoc($resultado);
$Nome = $linha["NOME"];
$Categoria = $linha["CATEGORIA"];
echo "<b>Nome do Mdulo:</b> $Nome<br>";
32
INSERT
UPDATE
DELETE
33
WHERE
Significado
Igual a
Diferente de
NOT LIKE
<
Menor que
>
Maior que
<=
Menor ou igual a
>=
Maior ou igual a
AND Ambas as condies devem ser atendidas, como Minas Gerais AND
Bahia
OR
Pelo menos uma das condies deve ser atendida, como Matos OR
Mattos
NOT Exclui a condio seguinte, como Paris NOT Frana
Se o item que estiver sendo comparado for texto, coloque-o entre aspas
simples, como no exemplo a seguir:
WHERE pais = 'Brasil'
O SQL pode ser utilizado para definir os conjuntos de registros de uma pgina.
Um conjunto de registros um subconjunto extrado de um banco de dados.
Esta a sintaxe SQL bsica para definir as colunas de um conjunto de
registros:
SELECT NomeDaColuna, NomeDaColuna2, NomeDaColuna3 FROM modulos
34
Por exemplo: suponha que voc esteja trabalhando com uma tabela
denominada funcionrios. Para extrair todas as colunas, digite a seguinte
instruo SELECT:
SELECT * FROM funcionarios
Suponha que voc necessite apenas dos dados contidos em duas colunas da
tabela funcionarios: nas colunas nome e cargo. Para criar um conjunto de
registros que contenha apenas os dados destas duas colunas, digite a seguinte
instruo SELECT:
SELECT nome, cargo
FROM funcionrios
35
nome
FROM
funcionarios
WHERE
quantidade_cursos
'NomeDaVariavel'
Marcos
Maria
Ronaldo
Beth
36
37
Marcos
Furlan
04
Maria
Furlan
04
Ronaldo
Franca
02
NomeDaColuna
BETWEEN
ValorDoParamentro
AND
ValorDoParamentro2
38
data_nascimento
BETWEEN
'NomeDaVariavel'
AND
'NomeDaVariavel2'
Furlan
30/04/73
Beth
Oliveira
12/05/1992
Se desejar que qualquer uma das condies seja verdadeira (true) para um
registro no conjunto de registros, utilize o operador OR da seguinte forma:
WHERE gols LIKE 'NomeDaVariavel' OR time LIKE 'NomeDaVariavel2'
Se desejar que uma condio seja verdadeira (true), mas no outra, utilize o
operador NOT da seguinte forma:
WHERE gols LIKE 'NomeDaVariavel' AND NOT time LIKE 'NomeDaVariavel2'
39
Para isso, crie uma unio especificando todas as tabelas a serem includas e
como se relacionam. Por exemplo:
SELECT nome, sobrenome, convenios, data_nascimento_convenio
FROM funcionarios, convenios
40
41
42
43
44
45
46
47
Clique em Test
48
Voc pode observar tambm que o Dreamweaver cria uma pasta chamada
Connections e dentro desta pasta ele vai criar um arquivo de configurao com
a nossa conexo.
49
Clique em Next
50
51
52
53
54
55
Clique em Executar.
Vamos inserir os seguintes campos:
1. cad_id responsvel pela identificao individual de cada cadastro
2. cad_nome responsvel pelo armazenamento do nome do cadastrado
3. cad_email responsvel pelo armazenamento do e-mail do cadastrado
Colocamos o tipo (Type) de dados para o campo cad_id, smallint com 5
caracteres. Isto significa que nosso sistema pode comportar mais de 65.000
cadastros. Quando selecionamos o atributo (Atributtes) UNSIGNED, estamos
garantindo que a numerao gerada ser a partir do zero e no incluir
56
Clique em salvar.
57
58
Clique em Ok e depois novamente em OK, observe que foi criada uma pasta
chamada Connections em seu projeto, abra esta pasta e abra este arquivo,
observe que ele criou toda a estrutura php para conectar-se ao seu Banco de
Dados.
59
Na tela que vai aparecer, vamos remover do formulrio o campo ID, pois ele
criado automaticamente.
60
Clique em OK.
Seu formulrio ser criado.
Se quiser pode configurar seu formulrio, como, por exemplo, mudar cores,
mudar texto do boto, etc.
Precisamos agora criar a pgina de confirmao a pgina cad_realizado.php,
Crie um novo arquivo PHP e salve-o com este nome.
Adicione um link chamado cadastros e direcione para uma pgina chamada
cadastros.php, crie tambm esta pgina.
Clique no painel Bindings e escolha RecordSet (Query).
61
Clique em OK.
62
Crie neste arquivo uma tabela com 2 linhas e 3 colunas, com largura de 700 px:
63
64
Caso isso ocorra abra o cdigo de seu formulrio e mude as linhas do looping
para pegar toda a linha.
65
Clique em Test.
66
Clique em OK
E vamos criar o formulrio de edio.
Clique em Data, Update Record, Record Update Form Wizard.
67
Na pagina cadastros.php, insira uma nova coluna, nesta nova coluna adicione
uma imagem.
68
Excluso de Registro
Crie mais uma coluna ao lado de editar na tabela que existe em cadastro.php e
adicione uma imagem para excluso.
69
70
align="center"><a
$row_rel_cadastros['cad_id'];
href="excluir.php?cad_id=<?php
?>"><img
src="excluir.jpg"
echo
alt="Excluir"
71
72
73
74
75
76