Você está na página 1de 69

UPE - POLI - Engenharia Eletrnica

PROGRAMANDO PARA WEB COM


PHP/MySQL

autor: Fred Cox Junior

Agosto/2000

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

CAPTULO I - INTRODUO .............................


1.
2.
3.
4.
5.
6.

CLIENT-SIDE SCRIPTS ...............................1


SERVER-SIDE SCRIPTS ...............................1
O QUE PHP ......................................2
UMA BREVE HISTRIA DO PHP.......................3
ASP X PHP.......................................3
INSTALAO EM AMBIENTE WINDOWS..................4
6.1 SERVIDOR APACHE.............................4
6.2 PHP3 .......................................5
6.3 MYSQL ......................................7

CAPTULO II - MYSQL ..................................


1.O BANCO DE DADOS MYSQL ...........................8
2. CARACTERSTICAS DO MYSQL........................9
3. HABILITANDO O MYSQL PARA CONEXES...............9
4. SISTEMA DE SEGURANA DO MYSQL..................10
5. GUIA DE REFERNCIA DO MYSQL....................12
5.1 MYSQL MONITOR .............................12
5.2 COMO ESCREVER STRINGS E NMEROS ...........13
5.3 TIPOS DE COLUNAS SUPORTADOS PELO MYSQL ....14
5.4 OPERADORES ................................16
5.5 COMANDOS ..................................18
5.6 CRIANDO USURIOS NO MYSQL .................22

CAPTULO III - A LINGUAGEM HTML ......................


1. INTRODUO.....................................26
2. CRIANDO DOCUMENTOS HTML........................26
2.1 HTML MNIMO ...............................26
2.2 MARCAES BSICAS .........................27
3. INTERLIGANDO DOCUMENTOS........................29
4. INTERLIGANDO DOCUMENTOS EM OUTRO DIRETRIO.....29
5. FORMULRIOS HTML...............................31
5.1 CODIFICAO BSICA ..........................32
5.2 ENTRADA DE TEXTO COMUM -TEXT ................33
5.3 ENTRADA DE TEXTO PROTEGIDO - PASSWORD .......34
5.4 ENTRADA DE VRIAS LINHAS DE TEXTO - TEXTAREA 35
5.5 LISTBOX E COMBO BOX .........................36
5.6 CHECKBOX ....................................37
5.7 RADIO BUTTON ................................39
5.8 SUBMIT BUTTON E RESET BUTTONX ...............40
5.9 CONCLUSO ...................................41

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


CAPTULO IV - A LINGUAGEM PHP ........................
1.
2.
3.
4.

SINTAXE BSICA.................................42
VARIVEIS......................................43
COMENTRIOS....................................43
TIPOS DE DADOS.................................43
4.1 INTEGER ...................................43
4.2 FLOATING-POINT ............................43
4.3 ARRAY .....................................44
4.4 STRING ....................................44
4.5 CONSTANTES ................................44
4.6 OPERADORES ................................45
4.6.1 ARITMTICOS ........................45
4.6.2 STRINGS ............................45
4.6.3 LGICOS ............................45
4.6.4 COMPARAO .........................46
5. ESTRUTURAS DE CONTROLE.........................46
5.1 IF AND ELSE ...............................46
5.2 LAO WHILE ................................47
5.3 LAO FOR ..................................47
5.4 COMANDO BREAK .............................48
5.5 SWITCH ....................................48
6. FUNES........................................49
7. GRAVANDO COOKIES...............................50
8. RECUPERANDO COOKIES............................51
9. HEADER(LOCATION...)............................51
10. MYSQL FUNES.................................51
10.1 MYSQL_CONNECT()..........................52
10.2 MYSQL_SELECT_DB()........................52
10.3 MYSQL_QUERY()............................53
10.4 MYSQL_NUM_ROWS().........................53
10.5 MYSQL_FETCH_ARRAY()......................54
11. TRABALHANDO COM ARQUIVOS......................54
11.1 ABRINDO ARQUIVOS.........................55
11.2 LENDO ARQUIVOS...........................56
11.3 GRAVANDO DADOS...........................56
BIBLIOGRAFIA......................................58
APNDICE A - FUNES MATEMTICAS DO MYSQL.........59
APNDICE B - FUNES DE STRING DO MYSQL...........61
APNDICE C - FUNES DE DATA E HORA DO MYSQL......63
APNDICE D - OUTRAS FUNES IMPORTANTES DO MYSQL ..64
....................................................
....................................................

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

NOTAS DO AUTOR

Na maior parte do tempo, escrever um livro desafiante, frustrante,


tedioso, excitante e muito trabalhoso, tudo simultaneamente. Mas a criao
de

Programando

para

Web

com

PHP/MySQL

teve

um

componente

quase

que

intangvel. Eu assumi a responsabilidade de criar uma fonte de referncia


para o programador que deseja migrar para tecnologias Intranet.

Este livro foi escrito para um pblico principiante, com o mnimo de


conhecimento

necessrio

para programar em PHP. Saber como funciona a

linguagem html e possuir noes de lgica de programao de fundamental


importncia para a compreenso dos captulos.

Procurei resumir o contedo, da melhor forma possvel, descartando tudo


que for desnecessrio, tornando assim, uma leitura
assimilao e entendimento.

Crticas, dvidas e sugestes sero bem-vindas.

O autor

meu email:

fredcox@ig.com.br

minhas URLs:

http://membros.option-line.com/fredcox

Programando para Web com PHP/MySQL

acessvel e de rpida

UPE - POLI - Engenharia Eletrnica

AGRADECIMENTOS

Inicialmente gostaria de agradecer a Maria


Jos, minha me, pelo incentivo publicao
dessa obra.
Sinceros agradecimentos a todos da lista de
discusso php-pt (http://br.egroups.com/group/php-pt).

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

No se mede o valor de um homem


Pelas suas roupas
Ou pelos bens que possui.
O verdadeiro valor de um homem
o seu carter,
Suas idias
E a nobreza do seus ideais.
Charles Chaplin

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

I N T R O D U O

1. Client-Side Scripts

So responsveis pelas aes executadas no browser, sem contato com o


servidor. Os exemplos mais comuns de aplicaes client-side so imagens e
textos que mudam com o passar do mouse e os java scripts.
Os

scripts

formulrios

client-side
sem

so

utilizar

muito

teis

processamento

do

para

fazer

servidor,

validaes
com

isso

de
no

provocando trfego na rede.

2. Server-Side Scripts

So responsveis pelas aes executadas no servidor. Os exemplos mais


comuns de aplicaes server-side so os scripts cgis e php.
No momento em que o usurio solicita uma URL, o servidor apresentar no
browser um cdigo html dinmico, isto muito til para construes de
aplicaes baseadas em informaes on-line.

Cliente-Side Scripts
Requisio = URL

Cliente

Servidor (www)
Retorno = html
Server-Side Scripts
Requisio = URL

Servidor (www)
processamento

Cliente

Retorno = html dinmico

(Figura 1)

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


3. O QUE PHP

PHP (Hipertext PreProcessor) uma linguagem de programao

server-

side scripts para criar sites dinmicos. Sites dinmicos so aqueles que
retornam para o cliente uma pgina criada em tempo real. Um exemplo de
server-side

scripts

so

os

sistemas

de

busca

(www.yahoo.com,

www.cade.com.br, etc...); nele, quando voc digita a palavra chave da


busca e clica no boto pesquisar o resultado da busca processado online; outro exemplo so as salas de chat; nelas, quando voc digita e
clica

no

boto

conjuntamente

enviar,

com

as

dos

informaes

outros

so

usurios,

processadas
resultando

em

num

tempo

real

cdigo

HTML

dinmico gerado do servidor para o cliente.

Um exemplo de um script PHP

(Figura 2)

Utilizando a linguagem PHP voc permite a interao direta do usurio com


o site, atravs de formulrios, contadores de acesso, estatsticas do
site, ou criar aplicaes para uma rede local baseadas numa Intranet.

Aplicaes em PHP so geradas com excelente performace e automaticamente


pelo servidor. O usurio no v o cdigo PHP, somente o HTML; isto muito
importante quando se est lidando com senhas.
Cliente
Requisio
(formulrio HTML)

Servidor
Processamento do Script
(pgina de resuldado HTML )

(Figura 3)

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


O PHP suporta as seguintes bases de dados:

Adabas

Sybase

Solid

Dbase

MSQL

Interbase

MySQL

Oracle

Unix DBM

Informix

PostgreeSQL

FilePro

4. UMA BREVE HISTRIA DO PHP

O PHP foi concebido no outono (l nos EUA, aqui no Brasil seria primavera)
de 1994 por Rasmus Lerdorf. As primeiras verses foram usadas na sua
homepage para saber quem estava consultando o currculo online. A primeira
verso, utilizada por outras pessoas, foi disponibilizada em meados de
1995, e era conhecida como Personal Home Page Tools (Ferramentas para
Homepages Pessoais).
Ela consistia num motor de interpretao bem simples, que entendia algumas
macros especiais e alguns utilitrios de uso comum nas homepages de ento.
Um livro de visitas, um contador e outras coisas. Em meados de 1995, o
interpretador foi reescrito e batizado de PHP/FI Version 2. O sufixo FI
veio de um outro pacote escrito por Ramus, que interpretava dados de
formulrio html. Ele combinou os scripts das Ferramentas para Homepages
Pessoais com o Interpretador de Formulrio e adicionou o suporte ao mSQL;
o PHP/FI estava criado. O PHP/FI cresceu num ritmo incrvel e as pessoas
comearam a adicionar-lhe cdigo.
muito difcil estimar corretamente, mas, em fins de 1996, o PHP/FI
estava sendo usado em pelo menos 15,000 web sites pelo mundo afora. Na
metade de 1997, este nmero havia aumentado para mais de 50,000. Nesta
poca, o desenvolvimento do PHP tambm sofreu mudanas. De um projeto de
estimao de Rasmus, com contribuies de um pequeno grupo de pessoas, se
tornou um esforo de uma equipe mais organizada. O interpretador foi
reescrito

do

interpretador

zero
foi

por
a

base

Zeev
para

Suraski
o

PHP

Andi

Verso

Gutmans,
3.

Programando para Web com PHP/MySQL

Muito

e
do

este

novo

cdigo

dos

UPE - POLI - Engenharia Eletrnica


utilitrios do PHP/FI foi portado para o PHP3, e muito desse cdigo foi
totalmente reescrito.
J na metade de 1999 PHP/FI e PHP3 eram oferecidos juntos com vrios
produtos comerciais, como o webserver StrongHold da C2 e o RedHat Linux.
Uma estimativa conservadora baseada na estrapolao dos nmeros fornecidos
pela NetCraft diz que o PHP est em uso em mais de 150,000 sites em todo o
mundo. Para se ter uma idia do que isso significa, esse nmero maior do
que a quantidade de sites que rodam o Enterprise server da Netscape na
Internet.

5. ASP x PHP

Enquanto o ASP, s executado em plataformas micro$oft, o PHP suporta a


maioria das plataformas que provem acesso e servios da internet,

distribudo sobre GPL (Licena Pblica Geral), ou seja, no se precisa


pagar para usar o PHP.

6. INSTALAO EM AMBIENTE WINDOWS

servidor http, a ser utilizado neste curso, o Apache, que est

disponvel

para

download

em

http://www.apache.org.

Para

instalar

servidor de web siga os passos abaixo:

6.1 - Servidor Apache 1.3.X

Execute o utilitrio de instalao (apache1.3.1.exe) e siga os passos de


instalao normalmente.
Quando o programa de instalao solicitar o diretrio de destino, clique o
boto browse e digite C:\Apache na janela PATH. Isto garantir uma
performance

considervel

no

acesso

ao

diretrio

htdocs

(onde

ficaro

armazenadas as pginas html e php reconhecidas pelo apache), visto que,


por default, o Apache ser instalado em: C:\Arquivos de Programas\Apache
Group\Apache\.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


O prximo passo a configurao do servidor de pginas www.

Comeando

pelo arquivo httpd.conf que fica localizado em C:\Apache\conf, edite


este arquivo com qualquer editor de textos de escrita rpida (Edit do DOS
ou Bloco de Notas).
Adicione as seguintes linhas no final do arquivo

httpd.conf.

ServerName localhost
ScriptAlias /php3/ "c:/php3/"
AddType application/x-httpd-php3 .php3 .php
Action application/x-httpd-php3 "/php3/php.exe"

A primeira linha informa ao apache o nome do servidor. No caso localhost


porque

cada

estao

no

decorrer

servidor de web independente.

do

curso

estar

funcionando

como

um

A segunda linha informa ao apache que

execute scripts php. A terceira informa as extenses dos scripts php que
sero executados pelo servidor de web, ou seja, qualquer arquivo com
extenso .php3 ou php ativar o client side script. A quarta linha informa
o caminho path do PHP.

6.2 Instalao do PHP3

3.1 - Crie uma pasta:

C:\php3

3.2 - Descompacte o arquivo php-3.0.16-win32.zip neste diretrio.


3.3 Copie o arquivo php3.ini.dist.txt para o diretrio C:\Windows ,
renomeando-o para php3.ini.
3.4 Procure pela linha extension_dir no arquivo php3.ini e inclua o
seguinte parmetro: c:\php3

Veja o trecho do arquivo abaixo como deve ficar:

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
include_path=; UNIX: "/path1:/path2"

Windows: "\path1;\path2"

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


doc_root=; the root of the php pages, used only if nonempty
user_dir=;

the

directory

under

which

php

opens

the

script

using

/~username, used only if nonempty


;upload_tmp_dir=; temporary directory for HTTP uploaded files (will use
system default if not specified)
upload_max_filesize=2097152
extension_dir=C:\PHP3

; 2 Meg default limit on file uploads

./
Este o parmetro
que deve ser
adicionado!!!

3.5 Procure pelo trecho Dynamic Extensions

no arquivo de configurao

do PHP3 e descomente as linhas. Obs:

descomentar s apagar o ponto e

vrgula

parmetro

que

antece

cada

de

configurao.

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
; if you wish to have an extension loaded automaticly, use the
; following syntax:

extension=modulename.extension

; for example, on windows,


; extension=msql.dll
; or under UNIX,
; extension=msql.so
; Note that it should be the name of the module only, no directory
information
; needs to go here.

Specify the location of the extension with the

extension_dir directive above.

;Windows Extensions
extension=php3_mysql.dll
extension=php3_calendar.dll
extension=php3_dbase.dll
extension=php3_gd.dll
extension=php3_dbm.dll

Retirar o ponto e vrgula


dessas do incio de cada
linha

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


extension=php3_mssql.dll
extension=php3_zlib.dll
extension=php3_filepro.dll
extension=php3_imap4r1.dll
extension=php3_ldap.dll
extension=php3_crypt.dll
extension=php3_msql2.dll
extension=php3_odbc.dll

Obs: Para testar se o Apache

est corretamente instalado, execute o

Apache Server no menu iniciar, carregue o browser e digite o endereo:


http://localhost. Se o endereo carregar porque o seu servidor de web
est instalado corretamente; caso contrrio, repita os passos acima.

6.3 MySQL

A verso do MySQL, que ser utilizada neste curso, a 3.23.11-alpha. O


MySQL um robusto Servidor

Banco de Dados, multiusurio, multitarefa que

opera com a linguagem SQL (Structured


consulta estruturada.

Query Language), linguagem de

O acesso e manipulao de dados no servidor MySQL

ser discutido posteriormente.


Este

servidor

de

banco

de

dados

pode

ser

facilmente

conseguido

pelo

endereo http://www.tcx.se .

3.1 Crie uma pasta temporria; por exemplo : c:\tempo


3.2

Descompacte

MySQL

para

win32

neste

diretrio

utilitrio de instalao normalmente.

Programando para Web com PHP/MySQL

execute

UPE - POLI - Engenharia Eletrnica

M y S Q L

1. O Banco de Dados MySQL

MySQL

servidor

de

banco

de

dados

multiusurio,

multitarefa

que

trabalha com uma das linguagens de manipulao de dados mais popularizadas


do mundo.
SQL uma linguagem simples, em que voc facilmente pode gravar, alterar e
recuperar

informaes

num

web

site

com

segurana

rapidez.

Ela

foi

desenvolvida pelo Departamento de Pesquisas da IBM como forma de interface


para o Sistema de Banco de Dados Relacionais SYSTEM R, no incio dos anos
70; em 1996, a American National Institute (ANSI) publicou um padro SQL.
A SQL estabeleceu-se como linguagem padro de Banco de Dados Relacional.
A

linguagem

SQL

tem

como

grande

virtude

sua

capacidade

de

gerenciar

ndices sem a necessidade de controle individualizado de ndice corrente,


algo muito comum nos Sistemas Gerenciadores de Arquivos, o Dbase por
exemplo. Nunca trabalhe com arquivos do Dbase (*.DBF)! Esses falsos bancos
de

dados

no

oferecem

integridade

alguma

para

os

dados;

uma

simples

recuperao de dados resulta num cdigo complicado e extenso, visto que


consiste numa busca de registro a registro, alm de no passar de uma
simples e frgil gravao sequencial de strings. Voc foi avisado!

MySQL

foi

originalmente

desenvolvido

pela

empresa

sueca

TCX

que

necessitava de um servidor de banco de dados que operasse com grandes


escalas

de

dados

rapidamente

sem

exigir

carssimas

plataformas

de

hardware. A TCX opera desde 1996 com 40 bancos de dados, contendo 10.000
tabelas, sendo 500 delas com mais de 10 milhes de linhas.

2. Caractersticas do MySQL

suporta

diferentes

plataformas:

Win32,

Linux,

FreeBSD,

Programando para Web com PHP/MySQL

Unix,

UPE - POLI - Engenharia Eletrnica


etc...
Suporte

APIs

das

Seguintes

linguagens:

PHP,

Perl,

C,C++,Java, Pynthon, etc...


Suporte a mltiplos processadores
Um

sofisticado

sistema

de

senhas

criptografadas

flexvel

Seguro.
Suporte ODBC, voc pode facilmente conectar o Access a um
banco de dados do MySQL
Suporta at 16 indices por tabela
Cdigo fonte escrito em C e C++ e testado com uma variedade de
diferentes compiladores
O Cliente conecta no MySQL atravs de conexes TCP/IP.
Nenhum problema com o Y2K, visto que o MySQL

usa o relgio do

Unix que no apresentar problemas at 2069

3. Habilitando o MySQL para conexes

Para efetuar qualquer conexo com o MySQL necessrio que o daemon


(demnio), programa que roda em standallone, esteja carregado na memria;
para isso, execute o binrio mysqld-shareware.exe pelo prompt do ms-dos.
Veja figura abaixo e siga o esquema:

Pronto! O MySQL est habilitado para receber solicitaes TCP/IP.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


4. Sistema de segurana do MySQL

O MySQL possui um avanado sistema de segurana, a ser tratado neste


captulo.
Quando voc se conecta a um MySQL Server, normalmente solicitada uma
senha de usurio. Esta informao poder ser lida no momento em que ela
passar do cliente para o servidor. O ideal instalar o servidor de web
com um protocolo de compresso e criptografia, o Apache web server para o
Red Hat 6.1 j vem com mod_ssh e mod_ssl; com isto, a conexo TCP/IP entre
o cliente e o servidor estar sendo uma transao criptografada.
O

MySQL

criptografa

as

senhas

dos

usurios

atravs

de

um

algoritmo

semelhante ao processo de autenticao de login do Unix


Quando se instala o MySQL para win32 pela primeira vez, ele por padro,
vem com dois usurios: um superusurio (root) e outro usurio padro.
Para trocar a senha do root (superusurio) e apagar o usurio padro, siga
os passos a seguir, supondo que o daemon (mysqld-shareware.exe) j est
ativado na memria:
No prompt do MS-DOS

digite os comandos abaixo:

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


Voc acabou de se logar como root (superusurio) no MySQL monitor; neste
ambiente que voc ir criar banco de dados, tabelas e usurios. H outros
tipos de ambientes com interfaces GUIs que no so abordados neste curso,
ficando a critrio do aluno a escolha. Vamos agora definir a senha do
root: para isso, digite os comandos abaixo no MySQL monitor:

Voc apagou o usurio padro e definiu a senha do root ('sua_senha'). No


se

preocupe

quanto

sintaxe

SQL;

isto

ser

amplamente

discutido

no

captulo seguinte.

5. GUIA DE REFERNCIA DO MySQL

5.1 - MySQL MONITOR

O MySQL monitor o cliente que vem no pacote do MySQL para win32. Atravs
dele

podemos

criar

tabelas,

bancos

de

dados,

usurios

critrios de segurana para usurios.

Programando para Web com PHP/MySQL

estabelecer

UPE - POLI - Engenharia Eletrnica


Para acessar o MySQL voc precisa acessar o prompt do ms-dos na pasta
c:\mysql\bin>, e digitar os seguintes comandos.

c:\mysql\bin>mysql -u usuario -p banco_de_dados


ou
c:\mysql>bin>mysql -u usuario -psenha banco_de_dados
Veja figura abaixo:

O primeiro processo mais seguro, visto que o MySQL Server solicitar a


digitao da senha (ver figura). extremamente necessrio acessar o MySQL
monitor para efetuar as consultas da linguagem SQL.

5.2 - COMO ESCREVER STRINGS E NMEROS

Strings
Qualquer sequncia de caracteres delimitados por ' ' ou " ".
Exemplo:
'um string'
"outro string"

Nmeros
Inteiros so representados por uma sequncia de dgitos e ponto flutuante
utiliza-se ' . ' como separador decimal.

Exemplos de nmeros inteiros vlidos


1543

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


0
-48

Exemplos de nmeros ponto flutuante vlidos


294.42
-32032.6809e+10
148.00

5.3 - TIPO DE COLUNAS SUPORTADOS PELO MySQL

O MySQL suporta uma ampla variedade de colunas. Esta seo descreve os


tipos disponveis.

Os tipos de dados suportados pelo MySQL esto listados abaixo. O cdigo


das letras usado nas descries o seguinte:

M - indica o tamanho mximo. O mximo valor que M pode assumir 255

utilizado

para

ponto

flutuante,

indicando

nmero

de

casas

[ZEROFILL],

MySQL

decimais. O valor mximo para D 30.

[] - indica um valor opcional.

Note

que

se

for

especificado

um

parmetro

automaticamente atribui UNSIGNED para a coluna.

TINYINT[(M)] [UNSIGNED] [ZEROFILL]


Nmeros inteiros muito pequenos. Pode assumir intervalo de valores entre 128 to 127. O intervalo de valores para

unsigned

de 0 a 255.

SMALLINT[(M)] [UNSIGNED] [ZEROFILL]


Nmeros inteiros pequenos. Intervalos de valores entre -32768 to 32767. O
intervalo de valores para

unsigned

de 0 a 65535.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
Nmeros inteiros de tamanho mdio. O intervalo de valores est entre
8388608 a 8388607. O intervalo de valores para

unsigned

de 0 a

16777215.

INT[(M)] [UNSIGNED] [ZEROFILL]


Inteiros

de

tamanho

normal.

intervalo

2147483648 a 2147483647. Valores para

de

unsigned

valores

est

entre

de 0 a 4294967295

BIGINT[(M)] [UNSIGNED] [ZEROFILL]


Inteiros

de

tamanho

grande.

Assume

intervalo

de

valores

entre

9223372036854775808 a 9223372036854775807. Valores para unsigned est


entre

0 a 18446744073709551615.

FLOAT[(M,D)] [ZEROFILL]
Nmeros ponto flutuante pequenos (simples-preciso) . Assume valores
entre

-----3.402823466E+38

corresponde ao tamanho e D

-1.175494351E-38

valor

de

ao nmero de casas decimais.

'DOUBLE[(M,D)] [ZEROFILL]'

Nmeros

ponto

flutuante de tamanho normal. Valores assumidos entre -

1.7976931348623157E+308'

`-2.2250738585072014E-308',

valor

de

corresponde ao tamanho e D ao nmero de casas decimais.

`DATE'
Para armazenar valores de data.

Assume valores entre`'1000-01-01'' a

`'9999-12-31''.
Os *MySQL* so gravados no formato `'YYYY-MM-DD', porm h funes gravar
e recuperar dados de data e hora que sero discutidas posteriormente.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


`DATETIME'

Uma combinao de data e hora. Suporta valores entre`'1000-01-01


00:00:00'' a `'9999-12-31 23:59:59''.

`TIME'

Para

armazenar

valores

hora.

Assume

intervalo

de

valores

entre

838:59:59'' a `'838:59:59''.

`CHAR(M) [BINARY]'

Valores de String. O valor de `M' indica o comprimento do campo string.

5.4 - OPERADORES

ARITMTRICOS

`+'
Adio
mysql> select 3+5;
-> 8

`-'
Subtrao
mysql> select 3-5;
-> -2

`*'
Multiplicao
mysql> select 3*5;
-> 15
mysql> select 18014398509481984*18014398509481984.0;
-> 324518553658426726783156020576256.0

Programando para Web com PHP/MySQL

`'-

UPE - POLI - Engenharia Eletrnica


mysql> select 18014398509481984*18014398509481984;
-> 0

`/'
Diviso
mysql> select 3/5;
-> 0.60

mysql> select 102/(1-1);


-> NULL

LGICOS

Todas as operaes lgicas no MySQL retornam `1' (Verdadeiro) ou `0'


(Falso).

`NOT'
`!'
Operador lgico de negao NOT. Retorna `1' se o argumento falso,
caso verdadeiro retorna `0'.
The last example returns `1' because the expression evaluates the
same way as `(!1)+1'.

`OR'
`||'
Operador lgico de escolha OR.

`AND'
`&&'
Operador lgico AND.

COMPARAO

`='
Igualdade

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

`<>'
`!='
Diferena

`<='
Menor ou igual

`<'
Menor que

`>='
Maior ou igual

`>'
Maior que

5.5 - COMANDOS

*Note que todo comando SQL termina com um ';'

CREATE DATABASE

Cria um banco de dados. Este comando cria uma rea lgica, diretrio, onde
estaro armazenadas todas as tabelas do banco de dados.

Sintax:

Exemplo

REATE DATABASE banco_de_dados;

mysql>CREATE DATABASE
funcionarios;

DROP DATABASE
Apaga um banco de dados.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


Sintax:

Exemplo

DROP DATABASE banco_de_dados;

mysql>DROP DATABASE
funcionarios;

Obs: Muito cuidado com este comando. O usurio com garantia DROP pode
apagar todos os dados do seu banco. Voc foi avisado!

CREATE TABLE

Comando utilizado para criar tabelas.

Sintax:

Exemplo

CREATE

TABLE mysql>CREATE TABLE

nome_tabela(nome_atributo1

tipo alunos(matricula UNSIGNED

[NOT

tipo INT(10) NOT NULL,nome CHAR(40)

NULL],nome_atributo2

[NOT NULL], ... ,nome_atributoN NOT NULL,turma CHAR(20) NOT


tipo

[NOT NULL]);

NULL,
PRIMARY KEY (matricula));

No exemplo acima foi definida uma chave primria para a coluna matricula.
Isto impede que hajam repeties no nmero de matrcula do aluno na
tabela. Uma chave primria indica que o valor armazenado no registro
nico.

ALTER TABLE

Sintax:

Exemplo

ALTER TABLE nome_tabela ADD/DROP

mysql>ALTER

Especificao

COLUMN turno char(10) NOT NULL;

TABLE

Nome_atributo1 tipo [NOT NULL],


Nome_atributo2 tipo [NOT NULL],
...

Programando para Web com PHP/MySQL

alunos

ADD

UPE - POLI - Engenharia Eletrnica


nome_atributoN tipo [NOT NULL]);

especificaes possveis
ADD

INDEX

[nome_indice]

(coluna_indice,...)
ADD PRIMARY KEY (coluna,...)
ALTER [COLUMN]
CHANGE [COLUMN] antiga_coluna

O exemplo acima adicionou na tabela alunos uma coluna para cadastrar o


turno, que primordial na tabela, mas que foi esquecida com o intuito de
utilizar este comando.

DROP TABLE

Apaga uma tabela.

Sintax:

Exemplo

DROP TABLE nome_tabela;

mysql>DROP TABLE alunos;

INSERT

Comando utilizado para inserir

valores numa tabela.

Sintax:

Exemplo

INSERT INTO nome_tabela(coluna1,

mysql>INSERT

Coluna2,...,

alunos(matricula,

ColunaN)

nome,turma,turno)

VALUES

values

Programando para Web com PHP/MySQL

INTO

UPE - POLI - Engenharia Eletrnica


(expressao1,

(127423,

expressao2,

'Fred Cox Junior',

...,

'Eng. Eletrnica',

expressaoN);

'Manh');

SELECT

Comando usado para recuperar valores de uma tabela. Este poderoso comando,
em conjunto com funces, possibilita a recuperao de qualquer valor de
uma tabela.

Sintax:

Exemplo

SELECT coluna1,

mysql>SELECT * FROM alunos where

Coluna2,...,

nome='Fred Cox Junior';

ColunaN
FROM tabela

mysql>SELECT matricula,turno

WHERE condio

FROM alunos

ORDER BY coluna [ASC | DESC]

ORDER BY matricula asc;

No primeiro exemplo, so mostradas todas as colunas da tabela alunos

que

possuem nome igual a 'Fred Cox Junior' (O asterisco * indica que devem ser
mostradas todas as colunas). O segundo exemplo

mostra somente as colunas

matricula e turno, em ordem crescente numrica.

DELETE

Apaga registros em uma tabela. Se no for especificada a condio where,


todos os dados sero apagados.

Sintax:

Exemplo

DELETE FROM tabela

Mysql>DELETE

FROM

Programando para Web com PHP/MySQL

alunos

WHERE

UPE - POLI - Engenharia Eletrnica


WHERE condio;

turno='Manh';

O exemplo acima apaga todos os alunos que estudam pela manh.

UPDATE

Altera dados numa tabela.

Sintax:

Exemplo

UPDATE

SET mysql>DROP TABLE alunos;

tabela

coluna1=expr1,col_name2=expr2,..
.,
ColunaN=exprN
WHERE condio;

5.6 - CRIANDO USURIOS NO MySQL

Criar um usurio no MySQL pode ser de

duas formas: com o comando INSERT

ou

forma

com

comando

GRANT.

segunda

mais

amigvel

menos

trabalhosa. Para criar e dar garantias a um usurio no MySQL voc ter de


especificar os privilgios e tabelas que este usurio pode acessar. Nunca
garanta privilgios para um usurio no banco de dados mysql, pois somente
o root (superusurio) deve possuir garantias para tal.
O superusurio pode especificar quais os privilgios que o usurio comum
possui no banco ou tabela do banco de dados. Veja a lista de privilgios
abaixo:

Tipo

Descrio

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


Select

Recuperar dados

Insert

Inserir dados

Update

Alterar dados

Delete

Apagar dados

Alter

Alterar estrutura da

Create

tabela

Drop

Criar tabelas

Grant

Apagar tabelas

all

Estabelecer

privileges

privilgios
Todos os privilgios
acima

Vamos criar um usurio para acessar o banco de dados controle.

Acesse o MySQL monitor como root

Crie um banco de dados com o nome controle. Utilize o comando CREATE


DATABASE.

Veja a figura abaixo

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

Na figura acima foi criado um usurio com o login

'joao'

e senha

'joao', que possui todos os privilgios no banco de dados controle em


qualquer tabela (controle.*).

O Comando USE possibilita configurar o

banco de dados controle como o corrente. O FLUSH PRIVILEGES atualiza a


tabela de privilgios do banco de dados MySQL, efetuando as mudanas e
adicionando o usurio. Para fazer o teste,

se o usurio foi corretamente

cadastrado, digite no prompt do ms-dos:

C:\mysql\bin>mysql -u joao -p

Quando solicitar a senha, digite joao.

Observe outros exemplos de criao de usurios.

Exemplo
mysql>GRANT

Descrio
select

ON Usurio paulo de senha paulo com

controle.alunos TO

'paulo' IDENTIFIED BY 'paulo';

recuperar dados na tabela alunos

mysql>FLUSH PRIVILEGES;

do banco de dados controle.

privilgio

Programando para Web com PHP/MySQL

somente

de

UPE - POLI - Engenharia Eletrnica


mysql>GRANT

Usuria paula de senha paula366

select,insert,update,

com

os

privilgios

de

inserir,

recuperar

alterar

delete ON controle.* TO 'paula' apagar,


IDENTIFIED by 'paula366';

dados

em

qualquer

tabela

mysql>FLUSH PRIVILEGES;

banco de dados controle.

do

Depois que o aluno aprender a linguagem de Script PHP, no decorrer do


curso, o ideal construir uma aplicao para gerenciar o proceso de
criao e manipulao de usurios, se for um caso de uma Intranet e o
volume de usurios for extenso. A digitao da senha do usurio pelo
administrador da rede no lhe agrada muito. Palavra de quem trabalha com
isto. !

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

L I N G U A G E M

H T M L

1. INTRODUO

O propsito do curso resume-se a programao para web com linguagem de


Script PHP e acesso a banco de dados MySQL. Pressupe-se que o aluno
esteja familiarizado com as tags html, visto que requisito necessrio
para fazer o curso, e alm do mais, estenderia o curso. Por isso, a
abordagem desta linguagem ser apenas no intuito de entender o conceito de
pginas web dinmicas, com comentrios voltados a esclarecer a passagem de
parmetros de formulrios html para os scripts em PHP.

A aparente sofisticao das pginas html, no passam de documentos de


texto simples. Podem ser produzidos com qualquer editor de texto, como o
Notepad, Emacs, vi, joe, etc... A diferena que algumas pginas da web
possuem caractersticas especiais de formatao de documento. H programas
especializados em fazer pginas html, tais como Dreamweaver 3.0, Hot Dog,
Homesite,

etc...

uma

ampla

variedade

de

documentos,

tutoriais

templates na Internet. Um bom endereo para comear a pesquisar sobre


webdesign : http://www.tol.pro.br

2. Criando Documentos HTML

2.1 - HTML Mnimo

Todo documento deve ser identificado como HTML (<html> </html>), ter uma
rea de cabealho (<head></head>) com o nome para o documento (<title>
</title>),

um

ttulo

principal

uma

rea

definida

como

corpo(<body></body>) do contedo do documento. Como o exemplo a seguir:

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

2.2 - Marcaes Bsicas

Ttulos

Todo documento em HTML deve possuir um ttulo. De um modo geral o ttulo


aparece

em

lugar

separado

Netscape), e utilizado para

da

pgina

(por

exemplo,

alto

da

tela

no

identificar o documento em outros contextos

(por exemplo, buscas Wais). interessante que o ttulo possa sugerir


claramente o contedo do documento.

Ateno porque o conceito de ttulo diferente de cabealho. O ttulo


est

mais

para

nome

do

arquivo.

No

um

elemento

relevante

visualizao do documento como acontece com o cabealho.

A marcao utilizada para ttulos <title> e seu par </title>.

Escrito desta forma:

Programando para Web com PHP/MySQL

na

UPE - POLI - Engenharia Eletrnica

Cabealhos

"Cabealhos" normalmente so usados para ttulos e sub-ttulos de uma


pgina.

HTML possui seis nveis de cabealhos, numerados de 1 a 6, sendo o nmero


1 o de maior destaque. Cabealhos so exibidos em letras maiores e em
negrito. O primeiro cabealho em cada documento deve estar marcado como
<H1>.

ATENO: ao definir o tamanho de um cabealho, voc no est definindo o


tamanho

da

letra

(fonte

10,

fonte

14).

Voc

apenas

define

que

ele

aparecer com maior tamanho e destaque que o resto do texto. O tamanho


exato com que ele ser visualizado definido pelo programa visualizador
de html (browser) de cada pessoa que acessar a informao.

As notaes relativas a cabealhos so:


<h1>Cabealho da Pgina</h1>

Pargrafos

A marcao <p> utilizada para definir o incio de um novo pargrafo,


deixando uma linha em branco entre cada pargrafo.HTML no reconhece o
caracter de quebra de linha dos editores de texto. Mesmo que exista uma
linha

em branco, os clientes Web s reconhecem o incio de um novo

pargrafo mediante a marcao apropriada.

Quebras de linha

A marcao <br> faz uma quebra de linha sem acrescentar espao extra entre
as linhas. Veja a diferena do uso de <p> e <br> ,nos exemplos a seguir:

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

Veja a diferena no uso das duas notaes:

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


3. Interligando Documentos

O principal poder do HTML vem da sua capacidade de interligar partes de um


texto

(e

tambm

imagens)

outros

documentos.

Os

clientes

exibem

em

destaque estas reas ou pontos chaves (normalmente com cores diferentes ou


sublinhado) para indicar que se trata de um link, ou interligao, no
hipertexto.

A marcao <A>, que define o ponto de partida para os links, denominada


de ncora. Para incluir uma ncora em seu documento:

1. Inicie a ncora com <A . ( H um espao depois de A.)


2. Especifique o documento a ser interligado, inserindo parmetro
HREF="arquivo" seguido do sinal: >
3. Insira o texto que vai funcionar como link no documento corrente
4. Anote a marcao de final da ncora: </A>.

Um exemplo de referncia a um hipertexto:


<A HREF="ListaPraias.html">Praias</A>

A palavra Praias'' definida como o marcador do link para se chegar ao


documento

ListaPraias.html,

que

est

no

mesmo

diretrio

do

documento

corrente. Ou seja, "Praias" aparece em negrito e se eu clicar nessa


palavra ser exibido o documento apontado - ListaPraias.html

4. Interligando Documentos em Outros Diretrios

possvel interligar documentos em outro diretrio especificando-se o


caminho relativo a partir do documento corrente, em relao ao que est
sendo interligado.

Por

exemplo,

um

link

para

arquivo

Sergipe.html

subdiretrio Estados seria assim:

Programando para Web com PHP/MySQL

localizado

no

UPE - POLI - Engenharia Eletrnica


<A HREF="Estados/Sergipe.html">Sergipe</A>

Estes so os denominados links relativos. tambm possvel usar o caminho


completo (pathname absoluta) do arquivo desejado. Para isso, utiliza-se a
sintaxe padro do sistema UNIX.
Importante: se voc quiser referenciar um diretrio a partir da raiz do
seu servidor www, inicie a notao com /. Isto , se voc tiver uma
notao desta forma.
<A HREF=/imagens/incon1.gif>, significa que o arquivo incon1.gif dever
ser buscado no diretrio imagens que est imediatamente acima do diretrio
raiz do seu servidor WWW.

5. FORMULRIOS HTML

Esta constitui a seo mais importante deste captulo, visto que, a


partir de um formulrio html que o usurio interage, com o servidor
enviando e recebendo informaes.
Cada comando ser comentado, a fim de que o aluno se familiarize o mais
rpido possvel com o conceito de passagem de parmetros de formulrios
html para scripts php, visto que esta uma das maiores dvidas.

Existem vrios tipos de campos de entrada de um formulrio, como:


campos de entrada de texto
menus de mltipla escolha ou escolha nica
botes sim-ou-no
botes para submisso ou limpeza de formulrio
Cada um destes campos tem funcionalidade prpria e voc vai aprender em
que situao utiliz-los em seus formulrios.

Se voc j conhece HTML, as marcaes utilizadas em formulrios seguem a


mesma conveno, e portanto, ser fcil aprender.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


5.1 - Codificao bsica

Um formulrio comea com a marcao <FORM> e termina com </FORM>. Outros


itens devem ser especificados:
Primeiro, o formulrio precisa saber como enviar a informao para o
servidor. Existem dois mtodos: GET e POST.

METHOD="GET"
A maioria dos documentos HTML so recuperados a partir da requisio de
uma nica URL ao servidor. Assim, um formulrio que utilize este mtodo,
envia toda sua informao ao final da URL ativada.

METHOD="POST"
Este

mtodo

transmite

toda

informao

fornecida

via

formulrio,

imediatamente aps a URL ativada. Ou seja, quando o servidor recebe uma


ativao

de

um

formulrio,

utilizando

POST,

ele

sabe

que

precisa

continuar "ouvindo" para obter a informao. Este o mtodo que iremos


utilizar para direcionar um script.
Segundo: o formulrio precisa saber para onde enviar a informao. Esta
a URL sendo ativada a partir do formulrio, e ela referenciada
atravs da marcao ACTION. Esta URL apontar para um script PHP que
ir receber e decodificar os resultados.

ACTION="teste.php3"

Aps voc construir estas marcaes, seu formulrio geralmente ter a


seguinte estrutura:

<FORM METHOD="POST" ACTION="teste.php3">

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


Marcaes de campos de entrada e HTML em geral

</FORM>

Observe que este formulrio utiliza o mtodo POST e envia as informaes


digitadas para um script PHP chamado teste.php3 no diretrio padro do
servidor.

Outra informao importante: cada marcao de entrada em um formulrio


tem uma opo NAME associada, de tal forma que o script que apontado pelo
parmetro ACTION receba uma varivel com o valor digitado pelo usurio.
Certamente voc pode definir mais de um campo de entrada textual ou menu
dentro de um formulrio, mas certifique-se de que cada um possui um nome
diferente; assim sendo, o script receber campos digitados com variveis
diferentes.

5.2 - ENTRADA DE TEXTO COMUM - TEXT

A forma mais simples de campo de entrada a marcao text. Este campo


permite a digitao de uma nica palavra ou linha de texto, e possui uma
largura default de 20 caracteres.

Opes:

VALUE="" OPCIONAL
Utilizando a marcao VALUE voc especifica que texto aparecer no campo
quando o formulrio for exibido.

SIZE="" OPCIONAL
Esta marcao altera o tamanho deste campo exibido na tela.
Obs.: o usurio sempre poder digitar mais caracteres do que o tamanho do
campo na tela, pois o texto ir se deslocar esquerda dentro do campo.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

MAXLENGTH="" OPCIONAL
Se voc deseja limitar o nmero de caracteres que o usurio pode digitar,
basta usar esta marcao. O formulrio ir emitir um bip de erro se o
usurio tentar digitar alm do permitido em MAXLENGTH.

Observe

exemplo

abaixo.

Note

que

parmetro

NAME="primeiro_nome",

indica que ao submeter este formulrio, o script apontado pelo parmetro


ACTION="teste.php3"

receber

uma

varivel

chamada

$primeiro_nome

(variveis no PHP comeam com '$' ), contendo o primeiro nome digitado


pelo usurio ou o valor padro especificado no parmetro VALUE="Fred".

5.3 - ENTRADA DE TEXTO PROTEGIDO - SENHA

Marcaes de entrada do tipo password so idnticas aos campos do tipo


text,

exceto

pelo

asteriscos ( *).

fato

de

todos

os

caracteres

serem

exibidos

como

Apesar da mscara de entrada, o script receber a

varivel especificada no parmetro NAME do mesmo jeito do formulrio


anterior.

Opes:
VALUE="" OPCIONAL
A marcao VALUE especifica um valor default para este campo. Obs: Esta
opo no deve ser usada, lgico!

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

SIZE="" OPCIONAL
Esta troca o tamanho do campo de password exibido na tela.

MAXLENGTH="" OPCIONAL
Limita o nmero de caracteres que o usurio pode informar como password.

Observe que no exemplo acima o script teste.php3

receber duas variveis,

a primeira $primeiro_nome, contendo o nome do usurio

e a segunda $senha,

contendo a senha do usurio.

5.4 - ENTRADA DE VRIAS LINHAS DE TEXTO - TEXTAREA

A marcao TEXTAREA no utiliza o formato convencional INPUT TYPE="text"


dos exemplos anteriores. Ao contrrio, uma marcao <TEXTAREA> delimita o
seu incio e a marcao </TEXTAREA> o seu fim.

Opes:
ROWS="" OBRIGATRIO
Especifica o nmero de linhas da entrada textual.

COLS="" OBRIGATRIO
Especifica o nmero de colunas da entrada textual.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

Texto default OPCIONAL


Se voc deseja que um texto seja exibido no campo textual ao abrir o
formulrio, simplesmente coloque este texto entre as marcaes de incio
e fim da TEXTAREA.

Observe o exemplo abaixo:

5.5 - LISTBOX E COMBO BOX

COMBO BOX

Select

Esta entrada de formulrio muito importante, visto que a partir dela


que poderemos carregar base de dados inteiras atravs de comandos de
recuperao

SQL

(SELECT)

com

suas

respectivas

clusulas

sintaxe

adequada para o contexto.

<select name="" size="">


<option value="">texto</option>
</select>

Se voc deixar de especificar o parmetros


BOX

size , aparecer um COMBO

na tela; caso contrrio, uma LISTBOX.

Parmetros:
Size nmero de linhas exibidas. Default: 1;
Multiple parmetro que, se presente, permite que sejam selecionadas duas
ou mais linhas, atravs das teclas Control ou Shift;
option Cada item do tipo option acrescenta uma linha ao select;

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


value

Valor

ser

enviado

ao

servidor

se

aquele

elemento

for

selecionado. Default: o texto do item;


text valor a ser exibido para aquele item. No definido por um
parmetro, mas pelo texto que fica entre as tags <option> e </option>
Observe os exemplos abaixo:

5.6 - CHECKBOX

Esta tag de formulrio html muito utilizada na internet. Voc, com


certeza, j deve ter aberto para um amigo uma conta de e-mail ou pedido
um desses servio grtis, onde so solicitadas pesquisas, tais como;

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

Retornando ao formato de INPUT TYPE="", a marcao CHECKBOXES perfeita


para escolher entre vrias opes.

<input type="checkbox" name="" value="" checked>

Opes:

VALUE=""

OBRIGATRIO

Especifica o valor da opo enviado ao script PHP. Esta opo deve conter
o mesmo valor

CHECKED OPCIONAL
Esta marcao define a opo selecionada por default.

Observe o exemplo abaixo:

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

Note que ao submeter o formulrio acima, ser enviado ao script PHP um


array

chamado

$pesquisa

numerado

de

3,

contendo

os

valores

selecionados pelo usurio. Por exemplo: Vamos supor que o usurio marcou
as opes Cinema e Cincia e Tecnologia. O script receber os seguintes
valores:

$pesquisa[0]='Cinema';
$pesquisa[1]='';
$pesquisa[2]='Cincia e Tecnologia'
$pesquisa[3]='';

5.7 - Radio Button

<input type="radio" name="" value="" checked>

Utilizado para campos de mltipla escolha, onde o usurio pode marcar


apenas uma opo. Para agrupar vrios elementos deste tipo, fazendo com
que eles sejam exclusivos, basta atribuir o mesmo nome a todos do grupo.
Parmetros:
Value o valor que ser enviado ao servidor quando o formulrio for
submetido, no caso do campo estar marcado
Checked O estado inicial do elemento. Quando presente,
aparece marcado;

Programando para Web com PHP/MySQL

o elemento j

UPE - POLI - Engenharia Eletrnica


Observe o exemplo abaixo:

Note que, ao submeter o formulrio, a varivel $opcao conter a escolha do


usurio. Por exemplo: vamos supor que o usurio clicou na opo Recife; o
formulrio enviar ao script PHP uma varivel chamada $opcao contendo o
valor 'Recife'.

5.8 - SUBMIT BUTTON E RESET BUTTON

Em

vez

de

usurio

corrigir

cada

INPUT,

um

boto

RESET

pode

ser

utilizado para restaurar todos os campos a seus valores default, como se


nenhuma informao houvesse sido digitada.

E finalmente, o FORM precisa de uma opo para enviar toda a informao


digitada para o servidor, uma vez que o usurio terminou de preencher
todos os campos de entrada. O boto SUBMIT transfere toda a informao
para a URL especificada no elemento ACTION.

<INPUT TYPE="submit" NAME="botao"

VALUE="Enviar">

Opes:
VALUE="" OPCIONAL
Especifica o texto a ser exibido no boto.
Se no for especificado, os textos default "Reset" e "Submit Query" sero
colocados nos botes RESET e SUBMIT, respectivamente.

NAME="" OPCIONAL
Se NAME for definido em um boto SUBMIT, o formulrio ir transmitir o
valor do contedo do elemento VALUE, permitindo que voc tenha mltiplos
botes SUBMIT numa espcie de verso simplificada de um RADIOBUTTONS.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


5.9 - Concluso

O conhecimento da linguagem de marcao html de extrema importncia, bem


como a forma que os formulrios e as pginas da web interagem com o
servidor, permitindo assim gerar pginas com cdigo dinmico.

O Captulo II abrangeu um html simples, ou seja, o curso fornece o mnimo


e necessrio para o aluno comunicar-se com o servidor, gerando cdigos
html dinmicos. Cabe ao aluno, caso no tenha conhecimento, se aprofundar
na linguagem html. Na internet h um grande acervo de tutoriais, manuais e
at mesmo livros, ensinando como elaborar pginas das mais simples s mais
complexas.

Voc

pode

comear

coletando

manuais

no

endereo:

http://www.tol.pro.br (Tutoriais On-line).

No prximo captulo, estudaremos a linguagem de script PHP e ao final


deste,

aluno estar preparado para escrever qualquer aplicao com

tecnologia Intranet.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

L I N G U A G E M

P H P

1. Sintaxe Bsica

interpretador

reconhece

automaticamente

scripts

php

delimitados

da

seguinte maneira:

<?
// cdigo em php
?>

Veja o exemplo da pgina "curso.php3", no momento em que o apache web


server verificar a incidncia de "<? ?>", ele automaticamente iniciar o
interpretador php, que construir a pgina baseado no cdigo php existente
entre as devidas delimitaes.

Observe que a marcao html utilizada a mesma do captulo anterior; o


que muda o trecho compreendido entre "<?" e "?>" no caso.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


Note que todo comando php termina com ';, semelhante linguagem C e
Pascal. O simples esquecimento desse parmetro resulta em erro no script,
assim como programas em pascal e c.

2. Variveis

As variveis do PHP sempre comeam com $ e so declaradas quanto o tipo


(inteiro,string,array, etc...) no momento em que atribudo o seu valor,
no sendo necessrio indicar o nome e tipo da varivel como na linguagem
C. O php case sensitive, portanto a varivel $fredcox diferente da
varivel $Fredcox.

3. Comentrios

Os comentrios podem ser de trs tipos. Observe o exemplo abaixo:

$a=1237; #isto um nmero inteiro


$b='Fabiana Ferraz'; //isto um string
/* Isto um comentrio de
vrias linhas */

4. Tipos de Dados

Os tipos de dados do PHPs so:

4.1 - Integer
Variveis inteiras so declaradas no PHP no momento da atribuio.
Exemplo:
$numero1=-12; #nmero inteiro negativo
$numero2=64; #nmero inteiro positivo

4.2 - floating-point
Nmeros com notao cientfica e decimais podem ser escritos da seguinte
forma:
$a=1.12; #nmero decimal positivo

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


$b=1.21e4 #nmero em notao cientfica

4.3 - Array

Voc pode criar arrays usando as funes list() e array(), ou atribuindo


valores aos seus respectivos elementos.
Exemplo:
$a[0]="Azul";
$a[1]="Amarelo";
$a[2]="Vermelho";

Veja a notao da funo array:


$a = array( "cor" => "Vermelho",
"gosto" => "Doce",
"formato" => "Redondo",
"nome" => "Ma");
Arrays sero amplamente utilizados com a clusula SELECT do MySQL...

4.4 - String

Strings podem ser declarados delimitados por " " (aspas).


Exemplo:
$nome="Fred cox Junior";

4.5 - CONSTANTES
O php possui vrias constantes pr-definidas, alm de prover funes para
cri-las em tempo de execuo define().
Algumas das constantes pr-definidas do php:
CONSTANTE

RETORNO

__FILE__

Nome do arquivo de script.

__LINE__

Nmero de linhas do script corrente.

PHP_VERSION

Verso do PHP que est sendo utilizada pelo servidor.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


4.6 - Operadores

4.6.1 - Aritmtricos

Exemplo

Nome

Resultado

$a+$b

Adio

Soma de $a mais $b.

$a-$b

Subtrao

Diferena entre $a e $b

$a*$b

Multiplicao

Produto entre $a e $b

$a/$b

Diviso

Divide $a por $b

4.6.2 - Strings

O operador de concatenao de strings ".".

$a="Fernanda";
$b="Ferraz";
$c=$a." ".$b;
echo $c;

O resultado ser um string contendo o valor "Fernanda Ferraz".

4.6.3 - Lgicos

Exemplo

Nome

Resultado

$a and $b

And

verdadeiro se $a e $b so verdadeiros

$a or $b

Or

Verdadeiro se $a ou $b so verdadeiros

!$a

Not

Verdadeiro se $a for falso

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


4.6.4 - Comparao

Exemplo

Nome

Retorno

$a==$b

Igual

Verdadeiro se $a for igual a $b

$a!=$b

No Igual

Verdadeiro se $a for diferente de $b

$a<$b

Menor que

Verdadeiro se $a for menor que $b

$a>$b

Maior que

Verdadeiro se $a for maior que $b

$a>=$b

Maior ou igual

Verdadeiro se $a for maior ou igual a $b

$a<=$b

Menor ou igual

Verdadeiro se $a for menor ou igual a $b

5. Estruturas de Controle

5.1 - If and Else


Frequentemente, o programador necessitar testar o valor de uma varivel
para decidir ou no pela execuo de uma tarefa. O comando utilizado para
tal o if.
O

"If"

uma

das

mais

importantes

estruturas

de

controle

de

muitas

linguagens. O PHP possui a sintaxe desse comando semelhante linguagem C.

if (expresso) {
//Cdigo se a expresso for verdadeira
}
else
{
//Cdigo se for falsa a expresso
}

Exemplo:
If ($a==$b) {
Echo ("A igual a B.");
}
else
{
echo ("B diferente de A.");

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


}

Traduzindo: se $a for igual a $b ento imprima na tela "A igual a B". De


outro modo, imprima "B diferente de A".

5.2 - Lao While

O primeiro lao disponvel em PHP o lao while. A sua forma geral :


While (condio) {
//Bloco de comandos...
}

Exemplo:
$aux=0;
while ($aux<=10){
echo $aux;
$aux+;
}

5.3 - Lao for

Esse comando permite que determinado processo seja executado vrias vezes.
Sua sintaxe a seguinte:
for (inicio; fim; incremento) {
//Bloco de comandos...
}
Exemplo:

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


//Imprime os nmeros de 1 a 10 com incremento de 1 em 1
For ($contador=1; $contador<=10; $contador++) {
Echo $contador;
}

1.

A varivel $contador pode ser um nmero inteiro (integer) ou real


(float), sendo a utilizao de nmeros inteiros mais frequente.

2.

A varivel contador pode ser inicializada com qualquer valor positivo,


negativo ou zero.

5.4 - Comando break

O comando break utilizado para forar uma terminao imediata de um


lao, evitando o teste condicional do lao.
Quando

comando

imediatamente

break

terminado

encontrado
o

dentro

controle

do

de

script

um

lao,

retorna

o
no

lao

comando

seguinte.

5.5 - Switch

O PHP tem um comando interno de seleo mltipla, switch, que testa


sucessivamente o valor de uma expresso contra uma lista de constantes
inteiras ou de caracteres. Quando o valor coincide, os comandos associados
quela constante so executados.
A sintaxe desse comando a seguinte:
switch (varivel) {
case valor1:
//Bloco de comandos Comandos...
break;
case valor2:
//Bloco de comandos Comandos...
break;
case valor3:
//Bloco de comandos Comandos...
break;
}

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


O padro ANSI especifica que um switch pode ter pelo menos 257 comandos
case. Na prtica, voc deve limitar o nmero de comandos case em uma
quantidade menor, para obter mais eficincia. Embora case seja um rtulo,
ele no pode existir sozinho, fora de um switch.

6. Funes

Funes so blocos de comandos executados independentementes do script. A


qualquer momento da execuo voc poder solicitar uma funo. Voc pode
passar argumento para as funes realizarem operaes especificadas em
tempo de programao. A sintaxe bsica de construo de funes em php a
seguinte:

function nome_funo ($arg_1, $arg_2, ..., $arg_n) {


//Bloco de comandos...
return $valor_retorno;
}
Importante:

Toda

funo

em

PHP

tem

de

ser

construda

antes

da

sua

respectiva chamada, a fim de que o interpretador reconhea a solicitao


do script. Caso contrrio, uma mensagem de erro retornada.

Exemplo de funes:

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

7. Gravando Cookies

Cookies so variveis gravadas remotamente pelo browser do usurio.


muito til na hora em que um usurio executa uma rotina de login no
sistema. Voc pode gravar o login e a senha dele e recuper-los de acordo
com

tempo

especificado

na

funo;

se

parmetro

tempo

no

for

especificado, o cookie ser gravado at o fim da aplicao, ou seja, at


que o usurio feche o browser. Qualquer cookie enviado por um cliente
automaticamente

transformado

numa

varivel

PHP.

funo

para

cookies a setcookie(), cuja sintaxe a seguinte:

setcookie(string_nome,string_valor,tempo);

Exemplos
setcookie("usuario",
$senha,time()+3600); #Este cookie expira em 1 hora

setcookie("senha",
$senha); #este cookie expira no momento do fechamento do browser.

Programando para Web com PHP/MySQL

gravar

UPE - POLI - Engenharia Eletrnica


8. Recuperando Cookies

Os

cookies

gravados

pelo

script

PHP

ficam

armazenados

no

array

$HTTP_COOKIE_VARS[], cujo ndice o string nome especificado na funo


setcookie.
Para recuperar um cookie proceda da seguinte maneira:

echo $HTTP_COOKIE_VARS["usuario"];

O exemplo anterior mostrar na pgina html o nome do usurio.

9. header(Location...)
Esta funo permite que um script php redirecione para outra pgina. A
sintaxe :

header("Location: endereo");
O exemplo a seguir redireciona o script para
localizada no servidor server e diretrio controle:

pgina

index.php3

header("Location: http://server/controle/index.php3");

10. MySQL Funes

Veremos as funes mais importantes de comunicao entre um script php e


um servidor de Banco de Dados MySQL. Colocar todas as funes e hipteses
neste livro o tornaria tedioso e cansativo, estendendo demais a leitura. O
proprsito impulsionar um programador para a tecnologia de Intranet. As
demais funes e parmetros no contidos neste livro ficam a critrio do
leitor pesquisar no manual do PHP, disponvel tambm gratuitamente no
site: http://www.php.net

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


10.1 - mysql_connect()

Esta funo habilita uma conexo com o servidor de banco de dados MySQL.
H indispensvel necessidade de chamada dessa funo antes de qualquer
transao na base de dados. Esta funo retorna o nmero inteiro 1 se a
conexo

for

bem

sucedida,

caso

contrrio

retorna

0.

sintaxe

dessa

funo:

mysql_connect("host","seu_login","sua_senha");

onde;
host - corresponde ao nome do computador que tem o servidor de Banco de
Dados MySQL rodando. Pode ser o nome, por exemplo - localhost, ou o
endereo de IP.
seu_login - o nome de usurio do banco de dados
sua_senha - a senha do banco de dados

Exemplos do uso da funo mysql_connect():

$conexao=mysql_connect("localhost","usuario","senha");
mysql_connect("localhost",
$HTTP_COOKIE_VARS["usuario"],
$HTTP_COOKIE_VARS["senha"])

Neste caso h dois


cookies gravados
remotamente no
browser pela
funo setcookie()
que recuperado
no momento da
conexo.

9.2 - mysql_select_db()

Esta funo seleciona um banco de dados, retornando 1 se a transao foi


bem sucedida e 0, caso contrrio. Possui a seguinte sintaxe:

mysql_select_db("nome_do_db",inteiro_conexao);

onde;

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


nome_do_db - o banco de dados que se quer utilizar.
inteiro_conexao

corresponde

ao

identificador

retornado

pela

funo

mysql_connect().

Exemplo:
<?
//Conectando com o MySQL Server
$conexao=mysql_connect("localhost","login","senha");
//Selecionando o banco de dados
$banco=mysql_select_db("usuarios",$conexao);
?>

10.3 - mysql_query()

Envia

um

comando

identificador

SQL

inteiro

para
se

MySQL

comando

Server.
foi

bem

Esta

funo

sucedido,

retorna

caso

um

contrrio

retorna o valor 0. A sintaxe desse comando :

mysql_query(string_comando,inteiro_banco);

onde;
comando = string contendo o comando SQL.
inteiro_banco = identificador do banco de dados.

10.4 - mysql_num_rows( )

Esta funo retorna o nmero de linhas de uma query SQL.


Sintaxe:
mysql_num_rows(inteiro_query);

parmetro

inteiro_query

corresponde

ao

identificador

funo mysql_query().

Programando para Web com PHP/MySQL

de

retorna

da

UPE - POLI - Engenharia Eletrnica


10.5 - mysql_fetch_array()
Retorna um array contendo o resultado da query SQL.
Sintaxe:

mysql_fetch_array(inteiro_query);

onde

inteiro_query

corresponde

ao

identificador

retornado

pela

funo

ler

dados

arquivos

mysql_query().

Exemplos:

11 - Trabalhando com Arquivos

Algumas

vezes,

usurio

precisa

gravar

de

no

servidor. Por exemplo: um contador de pgina da web, seja grfico ou modo


texto, possui um arquivo guarda o resultado da ltima visita no site, um
livro de visitas pode gravar os dados num arquivo de texto, um simples
gerador de estatsticas de um site pode ser um arquivo texto contendo o
IP, domnio e hora que o usurio solicitou quela URL.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


11.1 - Abrindo arquivos

Muito frequentemente, o usurio de uma aplicao desejar armazenar dados


para

posterior

anlise.

Inicialmente,

para

que

um

arquivo

possa

ser

manipulado, ele precisa ser aberto ou criado. Para isso, vamos utilizar o
comando fopen.
O

comando

fopen,

semelhante

linguagem

C,

retorna

um

identificador

inteiro se a operao for bem sucedida ou 0, caso contrrio. Esta funo


possui a seguinte sintaxe:

int fopen("arquivo",atributo);
Onde;
arquivo - string contendo o nome do arquivo
Modo - um dos especificadores abaixo.

R
R+
W

W+

A+

Abre o arquivo com permisso apenas para leitura.


Abre o arquivo com permisso para escrita e leitura, posicionando o
ponteiro no incio do mesmo.
Abre o arquivo com permisso apenas para escrita. Se o arquivo
existir, todo o contedo apagado. Se no existir, o PHP tenta crilo. O ponteiro posicionado no incio do arquivo
Abre o arquivo com permisso para escrita e leitura. Se o arquivo
existir, todo o contedo apagado. Se no existir, o PHP tenta crilo. O ponteiro posicionado no incio do arquivo
Abre o arquivo com permisso apenas para escrita. Se o arquivo no
existir, o PHP tenta cri-lo. O ponteiro posicionado no final do
arquivo
Abre o arquivo com permisso para escrita e leitura. Se o arquivo no
existir, o PHP tenta cri-lo. O ponteiro posicionado no final do
arquivo.

11.2 - Lendo Arquivos

O comando utilizado para leitura o fread, cuja sintaxe :

string fread(id,tamanho);

onde
Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


id - corresponde ao identificador retornado pelo comando fopen.
tamanho - tamanho do arquivo a ser lido. Voc poder especificar a funo
filesize("nome_arquivo") neste parmetro para indicar que corresponde ao
valor mximo.

Exemplo de leitura de arquivo:

11.3 - Gravando Dados


Para gravar dados em arquivos utiliza-se o comando fputs. A sintaxe desse
comando :

int fputs(id,valor);

onde
id - corresponde ao identificador do arquivo
valor - o valor a ser armazenado no arquivo.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


11 - Concluso

Os comandos vistos anteriormente, juntamente com os captulos anteriores,


fornecem

embasamento

suficiente

para

qualquer

programador

inserir,

alterar, apagar e recuperar dados de um MySQL Server atravs de scripts


PHP. Os demais comandos podero ser encontrados na documentao oficial no
site

http://www.php.net.

principal

objetivo

deste

livro

fornecer

conhecimento suficiente para que um programador se familiarize com a nova


tecnologia.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

1 -

LERDORF, Rasmus - PHP Manual, 1999 by PHP documentation group.

2 -

CRTES, Pedro - C Auto Explicativo, So Paulo, rica Editora Ltda


1992.

3 -

SSHILDT, Herbert, C Completo e Total, So Paulo: Makron, McGrawHill, 1990.

4 -

MySQL Manual - http://www.tcx.se, Sucia.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


APENDICE A

FUNES MATEMTICAS DO MySQL

ABS(X)

Retorna o valor absoluto do nmero X

FLOOR(X)

Retorna o maior valor inteiro de um nmero.


Mysql> select FLOOR(1.23);
-> 1
mysql> select FLOOR(-1.23);
-> -2

ROUND(X)

Arredonda

argumento

`X',

retornando

mysql> select ROUND(-1.23);


-> -1
mysql> select ROUND(-1.58);
-> -2
mysql> select ROUND(1.58);
-> 2

LOG(X)

Retorna o logartmo natural de 'X'

SQRT(X)

Retorna a raiz quadrada de `X'.


Mysql> select SQRT(4);
-> 2.000000
mysql> select SQRT(20);
-> 4.472136

PI()

Retorna o valor de Pi
Mysql> select PI();
-> 3.141593

COS(X)

Retorna o cosseno de `X'. Obs: X em radianos


Mysql> select COS(PI());
-> -1.000000

Programando para Web com PHP/MySQL

um

inteiro.

UPE - POLI - Engenharia Eletrnica


SIN(X)

Retorna o seno de `X'. Obs: X em radianos


Mysql> select SIN(PI());
-> 0.000000

TAN(X)

Retorna a tangente de X. Obs: X em radianos.

ACOS(X)

Retorna o arco-cosseno de `X'.

ASIN(X)

Retorna o arco-seno de X.

ATAN(X)

Retorna o arco-tangente de X

DEGREES(X)

Converte o argumento X de radianos para graus.

RADIANS(X)

Converte o argumento X de graus para radianos.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


APNDICE B
FUNES DE STRINGS DO MySQL

Funo

Retorno

LOWER(str)

Fora

caracteres

maisculos

aparecerem

minsculos.
UPPER(str)

Fora caracteres minsculos aparecerem maisculos.

CONCAT(str1,str2,...)

Concatena os strings

SUBSTRING(str,pos,len)

Extrai um substring comeando em pos e terminando


em len.

LTRIM(str)

Extrai espaos em branco esquerda do string

RTRIN(str)

Extrai espaos em branco direita do string

TRIM(str)

Extrai espaos em branco esquerda e direita do


string.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

APNDICE C

FUNES DE DATA E HORA DO MySQL

Funo

Retorno

WEEKDAY(data)

Dia da semana (`0' = Monday, `1' = Tuesday,


... `6' = Sunday).
mysql> select WEEKDAY('1997-10-04 22:23:00');
-> 5
mysql> select WEEKDAY('1997-11-05');
-> 2

DAYOFMONTH(data)

Dia do ms. Assume valores de 1 a 31.


mysql> select DAYOFMONTH('1998-02-03');
-> 3

DAYOFYEAR(data)

Dia do ano. Assume valores de 1 a 366.

MONTH(data)

Ms do ano. Assume valores de 1 a 12

YEAR(data)

Ano referente a data. Assume valores entre 1000


a 9999

DATE_FORMAT(data,formato)

Formata uma data.

Valores para o formato

Exemplos:

`%W' Dia da Semana

mysql>

select

DATE_FORMAT('1997-10-04

22:23:00', '%d-%m-%Y');
%Y'

Ano,

numerico,

-> '04-10-1997'

digitos
mysql>
`%y'

Ano,

numerico,

DATE_FORMAT('1997-10-04

2 22:23:00', '%H:%i:%s');

digitos
`%d'

select

-> '22:23:00'
Dia

do

ms,

numrico. (`00'..`31')
%m'

Ms,

numerico

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


(`01'..`12')

CURDATE()

Data atual. Formato (yyyy-mm-dd)

CURTIME()

Hora atual.

NOW()

Data e hora atual.


mysql> select NOW();
-> '2000-08-01 23:50:26'

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

APNDICE D

OUTRAS FUNES IMPORTANTES DO MySQL

DATABASE()

Banco de dados corrente

USER()

Usurio corrente

VERSION()

String contendo a verso do MySQL Server

COUNT(expr)

Nmero de vezes que acontece a expresso

AVG(expr)

Mdia aritmtica entre os valores da expressso

MIN(expr)

Menor valor da expresso

MAX(expr)

Maior valor da expresso

SUM(expr)

Somatrio da expresso

Programando para Web com PHP/MySQL

Você também pode gostar