ApostilaPHP - Parte 1
ApostilaPHP - Parte 1
ApostilaPHP - Parte 1
Apostila de PHP
-1-
Apostila de PHP
1. 1.Introduo ............................................................................................................................7
2. Exemplos de Scripts ................................................................................................................9
3. O que PHP pode fazer ? ........................................................................................................11
4. Sintaxe Bsica .......................................................................................................................14
5. Palavras-chave do PHP .........................................................................................................17
6. Variveis ...............................................................................................................................18
7. Tipos de dados ......................................................................................................................22
8. Operadores ............................................................................................................................25
Operadores Matemticos...........................................................................................................................................................................................................25
Operadores Relacionais.............................................................................................................................................................................................................25
Operadores Lgicos...................................................................................................................................................................................................................26
9. Formatao de nmeros.........................................................................................................27
Formatao para nmero inteiro................................................................................................................................................................................................27
Formatao para nmero monetrio..........................................................................................................................................................................................27
Formatao para nmero inteiro com espaamento a cada 3 casas...........................................................................................................................................27
Formatao para nmero em reais com decimal 99..................................................................................................................................................................28
Formatao para nmero em reais com decimal 00..................................................................................................................................................................28
Formatao para nmero em reais sem decimal........................................................................................................................................................................28
10. Estruturas de Controle...........................................................................................................29
Desvio Condicional Simples......................................................................................................................................................................................................29
Desvio Condicional Composto..................................................................................................................................................................................................29
Desvio Condicional Encadeado.................................................................................................................................................................................................30
11. Constantes .............................................................................................................................34
12. Estruturas de Repetio - Loopings.......................................................................................36
switch / case...............................................................................................................................................................................................................................36
for...............................................................................................................................................................................................................................................38
while .........................................................................................................................................................................................................................................39
do-while.....................................................................................................................................................................................................................................40
13. MySQL .................................................................................................................................43
14. ..............................................................................................................................................44
15. A base de dados que iremos criar ter a seguinte configurao:...........................................45
16. Informe o nome do banco e clique no boto ........................................................................46
17. Informe o nome da tabela e a quantidade de campos da mesma:..........................................47
18. Em seguida defina os campos da tabela Clientes: ................................................................48
19. Nome do campo: Geralmente colocamos um nome que lembre o que desejamos armazenar.49
20. Tipo do campo: Nessa parte voc escolhe qual tipo de dados deseja armazenar, os mais usados so:.............................................................................49
21. Int inteiro, para guardar nmeros (1, 2, 4, 67, 89, 105)......................................................49
22. Varchar variveis com caracteres, ou seja, texto e no nmero. Voc pode guardar nmeros tambm no varchar, mas eles no sero reconhecidos
como nmeros e sim como caracteres quaisquer...................................................................49
-2-
Apostila de PHP
23. Text para guardar grandes quantidades de texto, geralmente utilizamos para guardar mensagem de e-mail ou textos tipo carta, no banco de dados
(como campos memo)............................................................................................................49
24. Date para guardar datas, ai voc pensa porque no guardo a data num varchar? Voc tem que guardar datas no tipo DATE para voc conseguir
manipular datas com o banco dados, por exemplo: Exibir apenas o registros deste ms......49
25. Hora para guardar hora na tabela .......................................................................................49
26. Tamanho do campo: tamanho que seu registro ir ter, por exemplo no campo Estado ele est com o tamanho 2, ou seja, ele s poder alcanar o
tamanho mximo de 2 caracteres. Ex: SP. No campo NomeDoContato ele s aceitar um nome de at 30 caracteres...................................................49
27. Extra: auto_increment informa que o campo vai ser automaticamente auto incrementado toda vez que registrar um novo registro, ou seja se o valor
atual do campo for 1 e for registrado um novo valor ele ficar com 2 .................................49
28. Primria: temos que informar ao banco de dados qual o campo principal, ento marcamos ele como primrio, no nosso caso o CodigoDoCliente.....49
29. .............................................................................................................................................49
BD-Inserir.html..........................................................................................................................................................................................................................51
30. <html>....................................................................................................................................51
31. <head>.................................................................................................................................52
32. <title>Formulrio para inserir dados no BD Teste</title>................................................52
33. </head>................................................................................................................................52
34. <body>.................................................................................................................................52
35. <form action="Inserindo.php" method="post" name="Clientes" >..................................52
36.
<table width="450" border="1" cellspacing="1" cellpadding="3">...............................52
37.
<tr colspan=2 align="top"><div align="center">.........................................................52
38.
<H2>Atualizao do Banco de Dados Teste </H2> </div>.......................................52
39.
</tr>...............................................................................................................................52
40.
<tr>................................................................................................................................52
41.
<td width="111"><div align="right"> Cd do Cliente:</div> </td>..........................52
42.
<td width ="339"> <input name="CodigoDoCliente" type="text" size="6" ................52
43.
maxlength="5"></td>...........................................................................52
44.
</tr>...............................................................................................................................52
45.
<tr>................................................................................................................................52
46.
<td valign="top"><div align="right"> Empresa: </div></td>....................................52
47.
<td width ="339"> <input name="NomeDaEmpresa" type="text" size="31" ...........52
48.
maxlength="30"></td>.......................................................................52
49.
</tr>...............................................................................................................................53
50.
<tr>................................................................................................................................53
51.
<td valign="top"><div align="right"> Contato: </div></td>.....................................53
52.
<td width ="339"> <input name="NomeDoContato" type="text" size="31" ............53
53.
maxlength="30"></td>.......................................................................53
54.
</tr>...............................................................................................................................53
55.
<tr>................................................................................................................................53
56.
<td valign="top"><div align="right"> Cidade: </div></td>.......................................53
-3-
Apostila de PHP
57.
<td width ="339"> <input name="Cidade" type="text" size="16"
.....................53
58.
maxlength="15"></td>.......................................................................53
59.
</tr>...............................................................................................................................53
60.
<tr>................................................................................................................................53
61.
<td valign="top"><div align="right"> Estado: </div></td>.......................................53
62.
<td width ="339"> <input name="Estado" type="text" size="3" ..............................53
63.
maxlength="2"></td>.........................................................................53
64.
</tr>...............................................................................................................................53
65.
<tr>................................................................................................................................53
66.
<td valign="top"><div align="right"> Telefone: </div></td>....................................53
67.
<td width ="339"> <input name="Telefone" type="text" size="16" .........................53
68.
maxlength="15"></td>.......................................................................53
69.
</tr>...............................................................................................................................54
70.
<tr>................................................................................................................................54
71.
<td height="29" colspan="2" valign="top"><div align="center">.............................54
72.
<input type="submit" name="Submit" value="Inserir no banco de dados">...........54
73.
<input type="reset" name="Reset" value="Limpar">...............................................54
74.
</div>.........................................................................................................................54
75.
</td>.............................................................................................................................54
76.
</tr>..................................................................................................................................54
77. Nesse formulrio o action chama o Inserindo.php, programa que realmente gravar os dados digitados na tabela Clientes, salve com o nome BDInserir.htm..............................................................................................................................54
78.
</table>............................................................................................................................54
79. </form>..............................................................................................................................54
80. </body>................................................................................................................................54
81. </html>..................................................................................................................................54
Conectdb.php.............................................................................................................................................................................................................................54
82. <HTML>................................................................................................................................54
83. <HEAD>...............................................................................................................................54
84. <TITLE>Inserindo PHP</TITLE>....................................................................................54
85. </HEAD>..............................................................................................................................54
86. <BODY>................................................................................................................................54
87. <?php....................................................................................................................................54
88. /*Local que esta rodando o php */.......................................................................................54
89. $hostname="127.0.0.1";......................................................................................................55
90. /* Nome do usurio que tem acesso */................................................................................55
91. $username="root";...............................................................................................................55
92. /* Senha do usurio, no exemplo esta em branco */............................................................55
93. $senha="";............................................................................................................................55
-4-
Apostila de PHP
Apostila de PHP
132............................................................................................................................................ ?>.......................................................................................57
133................................................................................................................................... </body>.......................................................................................57
134......................................................................................................................................</html>.......................................................................................57
Cdigo com conexo a um banco de dados MySQL ................................................................................................................................................................58
Exibio ....................................................................................................................................................................................................................................59
Consulta e Ordenao ...............................................................................................................................................................................................................63
Incluso e Atualizao ..............................................................................................................................................................................................................67
Excluso ....................................................................................................................................................................................................................................71
Referncias Bibliogrficas ........................................................................................................................................................................................................72
Site Oficial do PHP....................................................................................................................................................................................................................72
Scripts, programas e tutoriais....................................................................................................................................................................................................72
-6-
Apostila de PHP
1. Introduo
PHP HyperText Preprocessor.
O PHP uma linguagem de cdigo-fonte aberto, muito utilizada na Internet e especialmente criada
para o desenvolvimento de aplicativos Web.
Escrevemos um arquivo HTML com algum cdigo inserido para fazer alguma coisa.
O cdigo PHP delimitado por tags iniciais e finais que lhe permitem pular pra dentro e pra fora do
modo PHP.
Para testar scripts PHP necessrio um servidor com suporte a esta tecnologia. Normalmente, o
mais utilizado o Apache.
O banco de dados mais utilizado com os scripts PHP o MySQL.
Um exemplo de pacote pronto para execuo de um ambiente Apache + PHP + MySQL o
EasyPHP (http://www.easyphp.org).
Qualquer editor de textos pode ser usado para escrever os scripts PHP ( ex. Bloco de Notas ou a
ferramenta PHP Editor 2.22 Beta 2 (www.phpeditor.kit.net).
As pginas PHP devem ser salvas no diretrio raiz do servidor. Para testes locais com o EasyPHP,
essa pasta c:\Arquivos de programas\EasyPHP\www.
Para acessar a pgina, deve-se ativar o EasyPHP, abrir o browser Internet Explorer e digitar-se o
nome do domnio (http://127.0.0.1) e o nome da pgina com extenso .php. Quando o EasyPHP
est sendo executado, aparece um cone com uma letra e ao lado do relgio do Windows.
-7-
Apostila de PHP
-8-
Apostila de PHP
Exemplos de Scripts
Exemplo 1.1
Para criar o primeiro exemplo, digite o seguinte cdigo-fonte no seu editor e salve com o nome de Teste1.1.php dentro do diretrio raiz do servidor.
<html>
<head>
<title>Teste-1.1 PHP</title>
</head>
<body>
<?php echo "<p> Curso de PHP </p>"; ?>
</body>
</html>
No browser, digite o endereo http://127.0.0.1/Teste-1.1.php e veja o resultado.
Veja tambm o cdigo fonte da pgina (Exibir Cdigo fonte). interessante notar que os comandos PHP
no aparecem porque o servidor interpreta todos os scripts antes de enviar a pgina para o browser.
-9-
Apostila de PHP
Exemplo 1.2
Digite o script abaixo e salve-o com o nome Acao.php, na pasta do servidor Apache.
Oi <?php echo $_POST["nome"]; ?>.
Voc tem <?php echo $_POST["idade"]; ?> anos.
Digite o seguinte cdigo-fonte (um formulrio HTML simples) e salve-o com o nome Teste-1.2.php, na
pasta do servidor Apache.
<html>
<head>
<title>Teste-1.2 PHP</title>
</head>
<body>
<form action="acao.php" method="POST">
Seu nome: <input type="text" name="nome" /><br>
Sua idade: <input type="text" name="idade" />
<input type="submit">
</form>
</body>
</html>
No browser, digite o endereo http://127.0.0.1/Teste-1.2.php e veja o resultado.
As variveis $_POST["nome"] e $_POST["idade"] so automaticamente criadas para voc pelo PHP.
- 10 -
Apostila de PHP
Script no lado do servidor (server-side). Este o mais tradicional e principal campo de atuao do PHP. Voc
precisa de trs coisas para seu trabalho. O interpretador do PHP (como CGI ou mdulo), um servidor web e um
browser. Basta rodar o servidor web conectado a um PHP instalado. Voc pode acessar os resultados de seu
programa PHP com um browser, visualizando a pgina PHP atravs do servidor web.
Script de linha de comando. Voc pode fazer um script PHP funcionar sem um servidor web ou browser. A nica
coisa necessria o interpretador. Esse tipo de uso ideal para script executados usando o cron ou o Agendador de
Tarefas (no Windows). Esses scripts podem ser usados tambm para rotinas de processamento de texto.
Escrevendo aplicaes GUI (Graphical User Interface ) no lado do cliente (client-side). O PHP no
(provavelmente) a melhor linguagem para produo de aplicaes com interfaces em janelas, mas o PHP faz isso
muito bem, e se voc deseja usar alguns recursos avanados do PHP em aplicaes no lado do cliente poder utilizar
o PHP-GTK para escrever esses programas. E programas escritos desta forma ainda sero independentes de
plataforma. O PHP-GTK uma extenso do PHP, no disponvel na distribuio oficial. Se voc est interessado no
PHP-GTK, visite o site http://gtk.php.net.
O PHP pode ser utilizado na maioria dos sistemas operacionais, incluindo Linux, vrias variantes Unix
(incluindo HP-UX, Solaris e OpenBSD), Microsoft Windows, Mac OS X, RISC OS, e provavelmente outros. O PHP
tambm suportado pela maioria dos servidores web atuais, incluindo Apache, Microsoft Internet Information Server,
Personal Web Server, Netscape and iPlanet Servers, Oreilly Website Pro Server, Caudium, Xitami, OmniHTTPd, e
muitos outros. O PHP pode ser configurado como mdulo para a maioria dos servidores, e para os outros como um
CGI comum.
- 11 -
Apostila de PHP
Voc pode escolher entre utilizar programao estrutural ou programao orientada a objeto, ou ainda uma
mistura deles. Mesmo no desenvolvendo nenhum recurso padro de OOP (Object Oriented Programming,
Programao Orientada a Objetos) na verso atual do PHP, muitas bibliotecas de cdigo e grandes aplicaes
(incluindo a biblioteca PEAR) foram escritos somente utilizando OOP.
Com PHP voc no est limitado a gerar somente HTML. As habilidades do PHP incluem gerao de imagens,
arquivos PDF e animaes Flash (utilizando libswf ou Ming) criados dinamicamente. Voc pode facilmente criar
qualquer padro texto, como XHTML e outros arquivos XML. O PHP pode gerar esses padres e os salvar no sistema
de arquivos, em vez de imprimi-los, formando um cache dinmico de suas informaes no lado do servidor.
Talvez a mais forte e mais significativa caracterstica do PHP seu suporte a uma ampla variedade de banco de
dados. Escrever uma pgina que consulte um banco de dados incrivelmente simples. Os seguintes bancos de
dados so atualmente suportados:
Adabas D
dBase
Empress
FilePro (read-only)
Hyperwave
IBM DB2
Ingres
InterBase
FrontBase
mSQL
Direct
MySQL
Informix
ODBC
Unix dbm
Adicionalmente, o PHP suporta ODBC (Open Database Connection, ou Padro Aberto de Conexo com Bancos de
Dados), permitindo que voc utilize qualquer outro banco de dados que suporte esse padro mundial.
O PHP tambm tem suporte para comunicao com outros servios utilizando protocolos como LDAP, IMAP, SNMP,
NNTP, POP3, HTTP, COM (em Windows) e incontveis outros. Voc pode abrir sockets de rede e interagir diretamente
com qualquer protocolo. O PHP tambm suporta o intercmbio de dados complexos WDDX, utilizado em virtualmente
todas as linguagens de programao para web. Falando de comunicao, o PHP implementa a instanciao de objetos
Java e os utiliza transparentemente como objetos PHP. Voc ainda pode usar sua extenso CORBA para acessar
objetos remotos.
O PHP extremamente til em recursos de processamento de texto, do POSIX Estendido ou expresses regulares Perl
at como interpretador para documentos XML. Para acessar e processar documentos XML, so suportados os padres
SAX e DOM. Voc ainda pode usar nossa extenso XSLT para transformar documentos XML.
- 12 -
Apostila de PHP
Utilizando o PHP no campo do e-commerce, voc poder usar as funes especficas para Cybescash, CyberMUT,
Verysign Payflow Pro e CCVS, prticos sistemas de pagamento online.
Por ltimo mas longe de terminar, temos tambm outras extenses interessantes: funes para o search engine
mnoGoSearch, funes para Gateway IRC, vrios utilitrios de compresso (gzip, bz2), calendrio e converses de
datas, traduo, etc.
- 13 -
Apostila de PHP
Sintaxe Bsica
Delimitao do cdigo PHP
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
comandos
?>
<script language=php>
comandos
</script>
- 14 -
Apostila de PHP
Separao de instrues
No final de cada linha deve haver um ponto-e-vrgula ( ; ) indicando o final de um comando.
Linhas de comando, de controle de flux ( if ), no precisam de ponto e vrgula.
Exerccio: digite o cdigo do abaixo e salve no diretrio raiz do servidor Apache. Veja o resultado da
pgina atravs de seu carregamento no browser.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$a = 10;
$b = 15;
$c = $a + $b;
echo "$a mais $b igual a $c";
?>
</body>
</html>
- 15 -
Apostila de PHP
Comentrios
Os comentrios de mais de uma linha no PHP so obtidos atravs de /* e */.
Os comentrios de apenas uma linha podem ser feitos utilizando-se // ou #.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
/*
O cdigo abaixo soma duas variveis
e exibe o valor encontrado
*/
$a = 10; //A varivel $a recebe o valor 10
$b = 15; //A varivel $b recebe o valor 15
$c = $a + $b;
#O resultado obtido exibido
echo "$a mais $b igual a $c";
?>
</body>
</html>
Os comentrios no aparecem no browser.
Tudo o que for colocado na rea de comentrio ser ignorado pelo interpretador.
- 16 -
Apostila de PHP
Palavras-chave do PHP
and
break
case
class
continue
default
do
else
elseif
extends
false
for
foreach
function
global
if
include
list
new
not
or
require
return
static
switch
this
true
var
virtual
xor
while
- 17 -
Apostila de PHP
Variveis
Variveis armazenam valores. Pode-se referir a variveis para obter seu valor ou para
alterar seu contedo.
Nomes das variveis
No PHP elas so iniciadas por um cifro ($) mais o nome da varivel.
Os nomes de variveis vlidos so iniciados por letras ou por um underline ( _ ).
Existe diferenciao entre nomes de variveis maisculas e minsculas (case sensitive). Portanto,
$num diferente de $NUM .
bom evitar os nomes em maisculas, pois como veremos mais adiante, o PHP j possui alguma
variveis pr-definidas cujos nomes so formados por letras maisculas.
O tipo da varivel geralmente no configurado pelo programador: isto decidido em tempo de
execuo pelo PHP, dependendo do contexto no qual a varivel usada.
Ex: $num, $_NUM , $_num.
- 18 -
Apostila de PHP
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$a = 10;
$A = 20;
echo "O valor de 'a' $a e o de 'A' $A";
?>
</body>
</html>
- 19 -
Apostila de PHP
- 20 -
Apostila de PHP
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.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
function soma($a)
{
global $b;
$b = $a + 5;
}
soma(10);
echo "o valor de 'b' $b";
?>
</body>
</html>
Declarao de varivel global
- 21 -
Apostila de PHP
Tipos de dados
O PHP suporta vrios tipos de dados:
Inteiro int, integer ou long: nmeros inteiros (isto , nmeros sem ponto decimal). O tamanho de
um inteiro dependente de plataforma, sendo um nmero aproximado a 2 bilhes (+/- 2.15e+9 =
2^31 - nmero de 32 bits com sinal).
$php = 1234; # inteiro positivo na base decimal
$php = 234; # inteiro negativo na base decimal
$php = 0234; # inteiro na base octalsimbolizado pelo 0 (equivale a 156 decimal)
$php = 0x34; # inteiro na base hexadecimal (simbolizado # pelo 0x) equivale a 52 decimal.
Ponto Flutuante double ou float: nmeros reais (isto , nmeros que contm um ponto decimal).
O tamanho de um nmero de ponto flutuante dependente de plataforma, sendo o mximo de
~1.8e308 com uma preciso de 14 decimais digitais um valor comum (nmero de 64 bits no formato
IEEE).
$php = 1.234;
$php = 23e4; # equivale a 230.000
String Texto entre apstrofos ( ) ou aspas ( ). Utiliza-se uma barra invertida para o escape, ex.:
Arnold disse: \Eu voltarei um dia\
Exibir: Arnold disse: "Eu voltarei um dia".
Booleanos armazenam valores verdadeiros (true) ou falsos (false), usados em testes de
condies.
- 22 -
Apostila de PHP
- 23 -
Apostila de PHP
- 24 -
Apostila de PHP
Operadores
Os operadores do PHP so:
Operadores Matemticos
So usados para efetuarem operaes sobre as variveis e constantes.
+
*
/
%
pow(valor, expoente)
sqrt (valor)
++
-+=
soma
subtrao
multiplicao
diviso
mdulo, resto da diviso
exponenciao
raiz quadrada
acrescenta um a uma varivel
subtrai um de uma varivel
soma um valor a uma varivel e lhe
atribui o resultado
Operadores Relacionais
Uma comparao sempre gera um dos dois valores possveis: vazio, que corresponde a falso, e 1, que
corresponde a verdadeiro.
==
!=
>
<
>=
<=
igual a
diferente de
maior que
menor que
maior ou igual a
menor ou igual a
- 25 -
Apostila de PHP
Operadores Lgicos
So utilizado em conjunto com os Operadores Relacionais para completar as possibilidades de testes de
condies.
&&
(and)
||
(or)
!
(not)
xor
- 26 -
Apostila de PHP
Formatao de nmeros
Formatao para nmero inteiro
<?php
// Formatao para numero inteiro
$number = "1234567890000000";
$number=number_format($number,0,'.','.');
echo $number;
// resultado 1.234.567.890.000.000
?>
Formatao para nmero monetrio
<?php
// Formatao para numero monetrio
$number = "1234567890000000";
$number=number_format($number,2,',','.');
echo $number;
// resultado 1.234.567.890.000.000,00
?>
Formatao para nmero inteiro com espaamento a cada 3 casas
<?php
// Formatao para numero inteiro com espaamento a cada 3 casas
$number = "1234567890000000";
$number=number_format($number,0,'.',chr(0xA0));
echo $number;
// resultado 1 234 567 890 000 000
- 27 -
Apostila de PHP
?>
Formatao para nmero em reais com decimal 99
<?php
// Formatao para numero em reais com decimal 99
$number = "2229346.99";
echo "R$" .number_format($number, 2, ',', '.');
// resultado R$2.229.346,99
?>
Formatao para nmero em reais com decimal 00
<?php
// Formatao para nmero em reais com decimal 00
$number = "222934699";
echo "R$" .number_format($number, 2, ',', '.');
// resultado R$222.934.699,00
?>
Formatao para nmero em reais sem decimal
<?php
// Formatao para nmero em reais sem decimal
$number = "222934699";
echo "R$" .number_format($number, 0, ',', '.');
// resultado R$222.934.699
?>
- 28 -
Apostila de PHP
Estruturas de Controle
Desvio Condicional Simples
if (condio)
{
comando para condio verdadeira;
}
- 29 -
Apostila de PHP
- 30 -
Apostila de PHP
Exemplos
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$a = True;
if ($a)
{
echo "Verdadeiro";
}
else
{
echo "Falso";
}
?>
</body>
</html>
Cdigo com dados booleanos
Teste o cdigo anterior alterando o valor da varivel para False.
- 31 -
Apostila de PHP
- 32 -
Apostila de PHP
- 33 -
Apostila de PHP
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.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
define("CONSTANTE", "Al mundo.");
echo CONSTANTE;
?>
</body>
</html>
Cdigo com constante
- 34 -
Apostila de PHP
Exerccios:
1. Fazer um programa em PHP que leia trs valores. Verificar se eles podem ser lados de um tringulo
(um lado no pode ser maior que a soma dos outros dois). Em caso afirmativo, informar qual o tipo
de tringulo formado [escaleno (quando possui todos os lados diferentes), eqiltero (todos os
lados iguais) ou issceles (dois lados iguais e um diferente)]. Caso no formem um tringulo,
informar com a mensagem No formam um tringulo.
2. Fazer um programa em PHP que leia duas notas de um aluno e calcule a mdia aritmtica. Se a
mdia for maior ou igual a 7,0 o aluno est aprovado. Se a mdia for menor do que 4,0 o aluno est
reprovado. Se o aluno estiver no intervalo de 4,0 a 7,0, ele estar de exame. Informar a mdia e a
situao do aluno aps os clculos.
3. Fazer um programa em PHP que efetue o clculo do reajuste de salrio de um funcionrio.
Considere que o funcionrio dever receber um reajuste de 15% caso o seu salrio seja menor que
700,00. Se o salrio for maior ou igual a 700,00 mas menor ou igual a 1200,00, o reajuste ser de
10%. Caso o salrio seja maior que 1200,00, o reajuste ser de 5%. Informar no final o novo salrio.
4. Fazer um programa em PHP que leia as 3 notas de um estudante e seus respectivos pesos ( N1:
peso 1 - N2: peso 2 N3: peso 3 ). Calcule e exiba a mdia final (mdia ponderada: ( mp =
(n1*p1+n2*p2+n3*p3) / (p1+p2+p3) ) e o conceito final desse estudante. Os conceitos seguem a
tabela abaixo:
Mdia final (ponderada)
8.0 || 10.0
7.0 | 8.0
6.0 | 7.0
5.0 | 6.0
< 5.0
inclusive | exclusive
Conceito
A
B
C
D
E
- 35 -
Apostila de PHP
<body>
<?php
$d = getdate();
switch ($d['wday'])
{
case 5:
echo("Finalmente Sexta");
break;
case 6:
echo("Super Sbado");
break;
case 0:
echo("Domingo Sonolento");
break;
default:
echo("Estou esperando pelo fim da semana");
}
?>
Apostila de PHP
</body>
</html>
- 37 -
Apostila de PHP
for
Estrutura de looping que executa um bloco de cdigo quantas vezes for indicado em uma varivel. Devese definir a varivel que ser testada no looping, uma condio de teste e o incremento (ou decremento)
da varivel de controle.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
for ($i = 1; $i < 10; $i++)
{
echo("Linha $i <br>");
}
?>
</body>
</html>
Cdigo com looping definido pelo comando if
- 38 -
Apostila de PHP
while
Esta estrutura de looping caracteriza-se por efetuar um teste lgico no incio de um looping, verificando se
permitido executar o trecho de instrues subordinados a este.
.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$i = 1;
while ($i < 10000)
{
echo($i);
$i *= 2;
echo(" vezes 2 igual a $i <br>");
}
?>
</body>
</html>
Cdigo com declarao condicional while
- 39 -
Apostila de PHP
do-while
Caracteriza-se por efetuar um teste lgico no final de um looping
Este tipo de looping ir efetuar a execuo de um conjunto de instrues pelo menos uma vez antes de
verificar a validade de uma determinada condio.
Diferente da estrutura while que somente executa um conjunto de instrues, se uma determinada
condio verdadeira.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$i = 1;
do
{
echo ("Linha $i <br>");
$i++;
}
while ($i < 10);
?>
</body>
</html>
Cdigo com declarao condicional do-while
- 40 -
Apostila de PHP
Exerccios
Desenvolva os respectivos programas para os problemas abaixo indicados. Usar na resoluo dos
problemas as estruturas de loopings: while e for (o exerccio 4 no poder ser resolvido com for):
1. Apresentar todos os valores numricos inteiros mpares situados na faixa de 0 a 20. Para verificar se
o nmero mpar efetuar dentro da malha, a verificao lgica desta condio com a instruo if,
perguntando se o nmero mpar; sendo, mostre-o, no sendo, passe para o prximo passo.
2. Apresentar o total da soma obtido dos cem primeiros nmeros inteiros
+2+3+4+5+6+7+...97+98+99+100).
(1
- 41 -
Apostila de PHP
Dicas
if ( num % 2 == 1 ) - verifica se um nmero impar;
if ( num % 4 == 0 ) - verifica se um nmero divisvel por 4;
- 42 -
Apostila de PHP
MySQL
O MySQL o gerenciador de banco de dados mais usado com o PHP. Existem muitas funes prdefinidas para manipulao de conexes com bancos de dados.
A funo mysql_connect tenta uma conexo com um servidor MySQL. Deve-se 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. Deve-se passar, como
parmetros, os comandos SQL apropriados. Novamente, o comando alternativo die pode tratar um no
sucesso na consulta.
Aps ter iniciado os servidores Apache e MySQL, clique com o boto direito do mouse sobre o cone do
EasyPHP, que aparece na Barra de Tarefas (system tray), e escolha a opo Administrao. Em
seguida, na tela do EasyPHP clique em PHPMyAdmin Manage Database.
- 43 -
Apostila de PHP
- 44 -
Apostila de PHP
- 45 -
Apostila de PHP
- 46 -
Apostila de PHP
- 47 -
Apostila de PHP
- 48 -
Apostila de PHP
Nome do campo: Geralmente colocamos um nome que lembre o que desejamos armazenar.
Tipo do campo: Nessa parte voc escolhe qual tipo de dados deseja armazenar, os mais usados so:
Int inteiro, para guardar nmeros (1, 2, 4, 67, 89, 105)
Varchar variveis com caracteres, ou seja, texto e no nmero. Voc pode guardar nmeros
tambm no varchar, mas eles no sero reconhecidos como nmeros e sim como caracteres
quaisquer.
Text para guardar grandes quantidades de texto, geralmente utilizamos para guardar mensagem
de e-mail ou textos tipo carta, no banco de dados (como campos memo).
Date para guardar datas, ai voc pensa porque no guardo a data num varchar? Voc tem que
guardar datas no tipo DATE para voc conseguir manipular datas com o banco dados, por exemplo:
Exibir apenas o registros deste ms.
Hora para guardar hora na tabela
Tamanho do campo: tamanho que seu registro ir ter, por exemplo no campo Estado ele est com o
tamanho 2, ou seja, ele s poder alcanar o tamanho mximo de 2 caracteres. Ex: SP. No campo
NomeDoContato ele s aceitar um nome de at 30 caracteres.
Extra: auto_increment informa que o campo vai ser automaticamente auto incrementado toda vez que
registrar um novo registro, ou seja se o valor atual do campo for 1 e for registrado um novo valor ele
ficar com 2 .
Primria: temos que informar ao banco de dados qual o campo principal, ento marcamos ele como
primrio, no nosso caso o CodigoDoCliente.
- 49 -
Nome do Banco de
Dados.
Nome do Banco de
Dados.
Estrutura da tabela.
<html>
BD-Inserir.html
Html necessrio para o usurio inserir os dados que sero registrados na tabela Clientes.
<head>
<title>Formulrio para inserir dados no BD Teste</title>
</head>
<body>
<form action="Inserindo.php" method="post" name="Clientes" >
<table width="450" border="1" cellspacing="1" cellpadding="3">
<tr colspan=2 align="top"><div align="center">
<H2>Atualizao do Banco de Dados Teste </H2> </div>
</tr>
<tr>
<td width="111"><div align="right"> Cd do Cliente:</div> </td>
<td width ="339"> <input name="CodigoDoCliente" type="text" size="6"
maxlength="5"></td>
</tr>
<tr>
<td valign="top"><div align="right"> Empresa: </div></td>
<td width ="339"> <input name="NomeDaEmpresa" type="text" size="31"
maxlength="30"></td>
</tr>
<tr>
<td valign="top"><div align="right"> Contato: </div></td>
<td width ="339"> <input name="NomeDoContato" type="text" size="31"
maxlength="30"></td>
</tr>
<tr>
<td valign="top"><div align="right"> Cidade: </div></td>
<td width ="339"> <input name="Cidade" type="text" size="16"
maxlength="15"></td>
</tr>
<tr>
<td valign="top"><div align="right"> Estado: </div></td>
<td width ="339"> <input name="Estado" type="text" size="3"
maxlength="2"></td>
</tr>
<tr>
<td valign="top"><div align="right"> Telefone: </div></td>
<td width ="339"> <input name="Telefone" type="text" size="16"
maxlength="15"></td>
</tr>
<tr>
<td height="29" colspan="2" valign="top"><div align="center">
<input type="submit" name="Submit" value="Inserir no banco de dados">
<input type="reset" name="Reset" value="Limpar">
</div>
</td>
</tr>
</table>
</form>
</body>
</html>
Conectdb.php
<HTML>
<HEAD>
<TITLE>Inserindo PHP</TITLE>
</HEAD>
<BODY>
<?php
/*Local que esta rodando o php */
$hostname="127.0.0.1";
/* Nome do usurio que tem acesso */
$username="root";
/* Senha do usurio, no exemplo esta em branco */
$senha="";
/*Banco de dados desejado */
$banco="teste";
/*mysql_connect - Abre uma conexo com o servidor MySQL */
$db =mysql_connect ($hostname, $username, $senha);
/* mysql_select_db - Seleciona um banco de dados MySQL */
mysql_select_db($banco, $db);
?>
</BODY>
</HTML>
Inserindo.php
<html>
<head>
<title>Inserir no BD</title>
</head>
<body>
<?php
/* Programa para conectar ao banco de dados */
require("Conectdb.php");
/* Recebendo os dados do formulrio */
$CodigoDoCliente = $_POST["CodigoDoCliente"];
$NomeDaEmpresa = $_POST["NomeDaEmpresa"];
$NomeDoContato = $_POST["NomeDoContato"];
$Cidade = $_POST["Cidade"];
$Estado = $_POST["Estado"];
$Telefone = $_POST["Telefone"];
/* Inserindo os valores das variveis nos campos da tabela Clientes */
$sqlinsert = "INSERT INTO Clientes (CodigoDoCliente, NomeDaEmpresa,
NomeDoContato,Cidade,Estado, Telefone)
VALUES ('$CodigoDoCliente', '$NomeDaEmpresa', '$NomeDoContato',
'$Cidade', '$Estado', '$Telefone')";
Cdigo com conexo a um banco de dados MySQL e seleo de uma base Teste e acesso tabela Clientes
</html>
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 aponta para a prxima. Para 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.
BD-Exibir1.php
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
$link = mysql_connect("127.0.0.1", "root", "")
or die("No foi possvel conectar");
mysql_select_db("Teste", $link)
or die("No foi possvel selecionar o banco de dados");
$consulta = "SELECT * FROM Clientes";
$resultado = mysql_query($consulta)
or die("Falha na execuo da consulta");
$linha = mysql_fetch_assoc($resultado);
$CodigoDoCliente = $linha["CodigoDoCliente"];
$NomeDaEmpresa = $linha["NomeDaEmpresa"];
$NomeDoContato = $linha["NomeDoContato"];
echo "<b>Codigo do Cliente:</b> $CodigoDoCliente<br>";
echo "<b>Nome da empresa:</b> $NomeDaEmpresa<br>";
echo "<b>Nome do contato:</b> $NomeDoContato";
?>
</body>
</html>
Cdigo com exibio de um registro a partir de uma consulta
Exibir-Todos.php
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
$link = mysql_connect("127.0.0.1", "root", "")
or die("No foi possvel conectar");
mysql_select_db("Teste")
or die("No foi possvel selecionar o banco de dados");
$consulta = "SELECT * FROM Clientes";
$resultado = mysql_query($consulta)
or die("Falha na execuo da consulta");
/* Retorna uma matriz associativa de strings que corresponde a linha obtida, ou FALSE se no houverem mais
linhas.*/
Consulta e Ordenao
Pode-se fazer consultas atendendo a certos critrios, que vo fazer com que a consulta seja refinada. No
prximo exemplo, desejamos selecionar apenas os clientes de So Paulo.
Nesse caso, a clusula que deve ser alterada a que faz a consulta SQL.
Seleciona.php
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
$link = mysql_connect("127.0.0.1", "root", "")
or die("No foi possvel conectar");
mysql_select_db("Teste")
or die("No foi possvel selecionar o banco de dados");
$consulta = "SELECT NomeDaEmpresa, NomeDoContato
FROM Clientes
WHERE Cidade = 'So Paulo'";
$resultado = mysql_query($consulta)
or die("Falha na execuo da consulta");
while ($linha = mysql_fetch_assoc($resultado))
{
$CodigoDoCliente = $linha["CodigoDoCliente"];
$NomeDaEmpresa = $linha["NomeDaEmpresa"];
$NomeDoContato = $linha["NomeDoContato"];
echo "<b>Cdigo do Cliente:</b> $CodigoDoCliente<br>";
echo "<b>Nome da empresa:</b> $NomeDaEmpresa<br>";
echo "<b>Nome do contato:</b> $NomeDoContato<p>";
}
?>
</body>
</html>
Cdigo com impresso de determinados registros que satisfazem uma condio (select ...
from ... where ...)
Incluso e Atualizao
Para se incluir dados em uma tabela MySQL, deve-se usar o comando INSERT. No exemplo a seguir, a
incluso de dados esttica. Para se criar um aplicativo que permita incluso, seria necessrio adaptar o
script para receber dados via formulrio e inclu-los no banco de dados.
BD- Inclusao.php
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
$link = mysql_connect("127.0.0.1", "root", "")
or die("No foi possvel conectar");
mysql_select_db("Teste",$link)
or die("No foi possvel selecionar o banco de dados");
$CodigoDoCliente = "12347";
$NomeDaEmpresa = "Editora Europa";
$NomeDoContato = "Rodolfo Melo";
$Cidade = "So Paulo";
$Estado = "SP";
$PaisRegiao = "Brasil";
$Telefone = "(011) 3333-2222;
$consulta = "INSERT INTO Clientes
(CodigoDoCliente, NomeDaEmpresa,
NomeDoContato, Cidade, Estado,
PaisRegiao, Telefone)
VALUES
('$CodigoDoCliente', '$NomeDaEmpresa',
'$NomeDoContato', '$Cidade', '$Estado',
'$PaisRegiao', '$Telefone' )";
$resultado = mysql_query($consulta)
or die("Falha na execuo da consulta");
echo "Dados adicionados com sucesso";
?>
</body>
</html>
Cdigo com incluso de um registro em uma tabela do banco de dados
O comando UPDATE altera um registro de uma tabela. No exemplo a seguir, o registro cujo cdigo
EELTD passa a ter o nome Robinson Melgar.
BD-Atualiza.php
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
$link = mysql_connect("127.0.0.1", "root", "")
or die("No foi possvel conectar");
mysql_select_db("Teste")
or die("No foi possvel selecionar o banco de dados");
$CodigoDoCliente = "12347";
$NomeDoContato = "Robinson Melgar";
$consulta = "UPDATE Clientes
SET NomeDoContato = '$NomeDoContato'
WHERE CdigoDoCliente = '$CodigoDoCliente'";
$resultado = mysql_query($consulta)
or die("Falha na execuo da consulta");
echo "Dados alterados com sucesso";
?>
</body>
</html>
Cdigo com alterao de dados via comando update
Excluso
O comando SQL DELETE remove um registro de uma tabela. A clusula WHERE delimita a condio
para que a remoo seja executada.
BD-Apaga.php
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
$link = mysql_connect("127.0.0.1", "root", "")
or die("No foi possvel conectar");
mysql_select_db("Teste")
or die("No foi possvel selecionar o banco de dados");
$CodigoDoCliente = "12345";
$consulta = "DELETE FROM Clientes
WHERE CdigoDoCliente = '$CodigoDoCliente'";
$resultado = mysql_query($consulta)
or die("Falha na execuo da consulta");
echo "Registro excludo com sucesso";
?>
</body>
</html>
Cdigo com remoo de registros
Referncias Bibliogrficas
NIEDERAUER, Juliano PHP Para Quem Conhece PHP Editora Novatec
BAKKEN, S. S. et al. - PHP Manual. Disponvel em:
<http://br.php.net/get/php_manual_pt_BR.chm/from/this/mirror>. Acesso em: 21 out. 2003.
EDITORA Europa. Curso de PHP. www.com.br, So Paulo, n. 40, set. 2003. CD-ROM.
Site Oficial do PHP
http://www.php.net