Sunteți pe pagina 1din 65

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

3. O QUE PHP.......................................................................................................... 6
(FIGURA 2)................................................................................................................................................ 6 SERVERNAME LOCALHOST............................................................................................................... 9

SELECT..........................................................................................................................38
Parmetros:................................................................................................................................................................38

5.7 - RADIO BUTTON......................................................................................................41


Parmetros:................................................................................................................................................................41

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 acessvel e de rpida

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

meu email: minhas URLs:

fredcox@ig.com.br http://membros.option-line.com/fredcox

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 client-side sem utilizar so muito teis do para fazer validaes com isso de no formulrios processamento servidor,

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.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


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

(Figura 1)

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 enviar, a dos as informaes so processadas resultando em tempo cdigo real HTML conjuntamente com outros usurios, num

dinmico gerado do servidor para o cliente. Um exemplo de um script PHP

(Figura 2)

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


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) O PHP suporta as seguintes bases de dados: Adabas Dbase MySQL Informix Sybase MSQL Oracle PostgreeSQL Solid Interbase Unix DBM 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.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


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 zero foi a por base Zeev para Suraski o PHP e Andi Gutmans, 3. Muito e do este cdigo novo dos interpretador Verso

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, pagar para usar o PHP. distribudo sobre GPL (Licena Pblica Geral), ou seja, no se precisa

6. INSTALAO EM AMBIENTE WINDOWS O servidor http, para a ser utilizado neste curso, em o Apache, Para que est o

disponvel

download

http://www.apache.org.

instalar

servidor de web siga os passos abaixo: 6.1 - Servidor Apache 1.3.X

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


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\. 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 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 do curso estar funcionando como um servidor de web independente. A segunda linha informa ao apache que httpd.conf.

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

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

Veja o trecho do arquivo abaixo como deve ficar: ;;;;;;;;;;;;;;;;;;;;;;;;; ; Paths and Directories ; ;;;;;;;;;;;;;;;;;;;;;;;;; include_path=; UNIX: "/path1:/path2" user_dir=; the directory under Windows: "\path1;\path2" php opens the script using / doc_root=; the root of the php pages, used only if nonempty which ~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 do PHP3 e descomente as linhas. Obs:

no arquivo de configurao

descomentar s apagar o ponto e

vrgula que antece cada parmetro de configurao. ;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; ;;;;;;;;;;;;;;;;;;;;;; ; if you wish to have an extension loaded automaticly, use the ; following syntax: ; 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. extension=modulename.extension ; for example, on windows,

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


;Windows Extensions extension=php3_mysql.dll extension=php3_calendar.dll extension=php3_dbase.dll extension=php3_gd.dll extension=php3_dbm.dll 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

Retirar o ponto e vrgula dessas do incio de cada linha

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 consulta estruturada. Este servidor de Banco de Dados, multiusurio, multitarefa que Query Language), linguagem de opera com a linguagem SQL (Structured ser discutido posteriormente. 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 o MySQL para win32 neste diretrio e execute o utilitrio de instalao normalmente.

O acesso e manipulao de dados no servidor MySQL

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

M y S Q L 1. O Banco de Dados MySQL O 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 e 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! O MySQL foi de originalmente dados desenvolvido sem pela empresa carssimas sueca TCX , que de

necessitava de um servidor de banco de dados que operasse com grandes escalas rapidamente exigir plataformas 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

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

suporta etc... Suporte

diferentes s APIs

plataformas: das

Win32,

Linux,

FreeBSD, PHP,

Unix, Perl,

Seguintes

linguagens:

C,C++,Java, Pynthon, etc... Suporte a mltiplos processadores Um sofisticado sistema de senhas criptografadas flexvel e 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 Unix que no apresentar problemas at 2069 usa o relgio do

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:

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
Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


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 e estabelecer critrios de segurana para usurios. Para acessar o MySQL voc precisa acessar o prompt do ms-dos na pasta c:\mysql\bin>, e digitar os seguintes comandos.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

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 0 -48 Exemplos de nmeros ponto flutuante vlidos
Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


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 D utilizado para ponto flutuante, indicando o nmero de casas decimais. O valor mximo para D 30. [] - indica um valor opcional. Note que se for especificado um parmetro [ZEROFILL], o MySQL

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.

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

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

INT[(M)] [UNSIGNED] [ZEROFILL] Inteiros de tamanho normal. O intervalo de valores est entre

-2147483648 a 2147483647. Valores para

unsigned

de 0 a 4294967295

BIGINT[(M)] [UNSIGNED] [ZEROFILL] Inteiros entre de tamanho grande. Assume intervalo de valores entre

-9223372036854775808 a 9223372036854775807. Valores para unsigned est 0 a 18446744073709551615.

FLOAT[(M,D)] [ZEROFILL] Nmeros ponto flutuante pequenos (simples-preciso) . Assume valores entre -----3.402823466E+38 a -1.175494351E-38 . O valor de M corresponde ao tamanho e D ao nmero de casas decimais.

'DOUBLE[(M,D)] [ZEROFILL]' Nmeros ponto flutuante de a tamanho normal. Valores assumidos O valor entre de M

-1.7976931348623157E+308'

`-2.2250738585072014E-308',

corresponde ao tamanho e D ao nmero de casas decimais. `DATE' Para armazenar valores de data. `'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. `DATETIME' Uma combinao de data e hora. Suporta valores entre`'1000-01-01 00:00:00'' a `'9999-12-31 23:59:59''. Assume valores entre`'1000-01-01'' a

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


`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 mysql> select 18014398509481984*18014398509481984; -> 0 `/' Diviso mysql> select 3/5;

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


-> 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 `<>' `!=' Diferena `<=' Menor ou igual

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

`<' 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: REATE DATABASE banco_de_dados; Exemplo mysql>CREATE DATABASE funcionarios;

DROP DATABASE Apaga um banco de dados. Sintax: DROP DATABASE banco_de_dados; Exemplo 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
Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

Comando utilizado para criar tabelas. Sintax: CREATE Exemplo nome_tabela mysql>CREATE TABLE alunos tipo [NOT (matricula UNSIGNED INT(10) NOT

TABLE

(nome_atributo1

[NOT NULL,nome CHAR(40) NOT NULL], ... ,nome_atributoN tipo NULL,turma CHAR(20) NOT NULL, PRIMARY KEY (matricula)); [NOT NULL]); NULL],nome_atributo2 tipo 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: ALTER TABLE nome_tabela ADD/DROP Especificao Nome_atributo1 tipo [NOT NULL], Nome_atributo2 tipo [NOT NULL], ... nome_atributoN tipo [NOT NULL]); Exemplo mysql>ALTER

TABLE

alunos

ADD

COLUMN turno char(10) NOT NULL;

especificaes possveis ADD INDEX [nome_indice] (coluna_indice,...) ADD PRIMARY KEY (coluna,...) ALTER [COLUMN] CHANGE [COLUMN] antiga_coluna

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


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: DROP TABLE nome_tabela; Exemplo mysql>DROP TABLE alunos;

INSERT Comando utilizado para inserir Sintax: INSERT INTO nome_tabela(coluna1, Coluna2,..., ColunaN) VALUES (expressao1, expressao2, ..., expressaoN); valores numa tabela. Exemplo mysql>INSERT (matricula, nome,turma,turno) values (127423, 'Fred Cox Junior', 'Eng. Eletrnica', 'Manh');

INTO

alunos

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

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


SELECT coluna1, Coluna2,..., ColunaN FROM tabela WHERE condio ORDER BY coluna [ASC | DESC] mysql>SELECT matricula,turno FROM alunos ORDER BY matricula asc; mysql>SELECT * FROM alunos where nome='Fred Cox Junior';

No primeiro exemplo, so mostradas todas as colunas da tabela alunos mostradas todas as colunas). O segundo exemplo matricula e turno, em ordem crescente numrica. DELETE

que

possuem nome igual a 'Fred Cox Junior' (O asterisco * indica que devem ser mostra somente as colunas

Apaga registros em uma tabela. Se no for especificada a condio where, todos os dados sero apagados. Sintax: DELETE FROM tabela WHERE condio; Exemplo Mysql>DELETE

FROM

alunos

WHERE

turno='Manh';

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

UPDATE Altera dados numa tabela. Sintax: UPDATE ., ColunaN=exprN WHERE condio; Exemplo SET mysql>DROP TABLE alunos;

tabela

coluna1=expr1,col_name2=expr2,..

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

5.6 - CRIANDO USURIOS NO MySQL Criar um usurio no MySQL pode ser de ou com o comando GRANT. A segunda duas formas: com o comando INSERT forma mais amigvel e 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 Select Insert Update Delete Alter Create Drop Grant all privileges

Descrio Recuperar dados Inserir dados Alterar dados Apagar dados Alterar estrutura da tabela Criar tabelas Apagar tabelas Estabelecer 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.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

Veja a figura abaixo

Na figura acima foi criado um usurio com o login qualquer tabela (controle.*).

'joao'

e senha

'joao', que possui todos os privilgios no banco de dados controle em 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, 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 Descrio se o usurio foi corretamente

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


mysql>GRANT select ON Usurio paulo de senha paulo com o privilgio somente de recuperar dados na tabela alunos do banco de dados controle. Usuria paula de senha paula366 com os privilgios de inserir,

controle.alunos TO 'paulo' IDENTIFIED BY 'paulo'; mysql>FLUSH PRIVILEGES; mysql>GRANT select,insert,update, IDENTIFIED by 'paula366'; mysql>FLUSH PRIVILEGES;

delete ON controle.* TO 'paula' apagar, recuperar e alterar dados em qualquer tabela do banco de dados controle.

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

A 1. INTRODUO

L I N G U A G E M

H T M L

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... H uma ampla variedade de documentos, tutoriais e 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 e 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 da pgina (por exemplo, alto da tela no Netscape), e utilizado para 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 o nome do arquivo. No um elemento relevante na visualizao do documento como acontece com o cabealho. A marcao utilizada para ttulos <title> e seu par </title>. Escrito desta forma:

Cabealhos
Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

"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:

3. Interligando Documentos

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


O principal poder do HTML vem da sua capacidade de interligar partes de um texto (e tambm imagens) a 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 o arquivo Sergipe.html localizado no

subdiretrio Estados seria assim: <A HREF="Estados/Sergipe.html">Sergipe</A> Estes so os denominados links relativos. tambm possvel usar o caminho
Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


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. 5.1 - Codificao bsica Um formulrio comea com a marcao <FORM> e termina com </FORM>. Outros itens devem ser especificados:

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

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 de transmite um toda a informao fornecida ele via sabe formulrio, que precisa imediatamente aps a URL ativada. Ou seja, quando o servidor recebe uma ativao formulrio, utilizando POST, 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"> Marcaes de campos de entrada e HTML em geral </FORM>

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


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. 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.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


Observe o exemplo abaixo. Note que uma o parmetro NAME="primeiro_nome", $primeiro_nome

indica que ao submeter este formulrio, o script apontado pelo parmetro ACTION="teste.php3" receber varivel chamada (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 fato de todos os caracteres serem exibidos como asteriscos ( *). anterior. Opes: VALUE="" OPCIONAL A marcao VALUE especifica um valor default para este campo. Obs: Esta opo no deve ser usada, lgico! Apesar da mscara de entrada, o script receber a

varivel especificada no parmetro NAME do mesmo jeito do formulrio

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.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

Observe que no exemplo acima o script teste.php3 contendo a senha do usurio.

receber duas variveis, e a segunda $senha,

a primeira $primeiro_nome, contendo o nome 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. 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:
Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

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 e sintaxe adequada para o contexto. <select name="" size=""> <option value="">texto</option> </select> Se voc deixar de especificar o parmetros BOX na tela; caso contrrio, uma LISTBOX. size , aparecer um COMBO

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; value Valor a 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:

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

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:

Note que ao submeter o formulrio acima, ser enviado ao script PHP um array chamado $pesquisa numerado de 0 a 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';

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


$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; Observe o exemplo abaixo: o elemento j

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 o 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
Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


todos os campos de entrada. O boto SUBMIT transfere toda a informao para a URL especificada no elemento ACTION. <INPUT TYPE="submit" NAME="botao" 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. 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, o aluno estar preparado para escrever qualquer aplicao com tecnologia Intranet. VALUE="Enviar">

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

A 1. Sintaxe Bsica O interpretador

L I N G U A G E M

P H P

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.

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

Observe que a marcao html utilizada a mesma do captulo anterior; o que muda o trecho compreendido entre "<?" e "?>" no caso. 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 */

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

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 $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

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

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 __FILE__ __LINE__ PHP_VERSION RETORNO Nome do arquivo de script. Nmero de linhas do script corrente. Verso do PHP que est sendo utilizada pelo servidor.

4.6 - Operadores 4.6.1 - Aritmtricos Exemplo $a+$b $a-$b $a*$b $a/$b Nome Adio Subtrao Multiplicao Diviso Resultado Soma de $a mais $b. Diferena entre $a e $b Produto entre $a e $b 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".

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


4.6.3 - Lgicos Exemplo $a and $b $a or $b !$a Nome And Or Not Resultado verdadeiro se $a e $b so verdadeiros Verdadeiro se $a ou $b so verdadeiros Verdadeiro se $a for falso

4.6.4 - Comparao Exemplo $a==$b $a!=$b $a<$b $a>$b $a>=$b $a<=$b Nome Igual No Igual Menor que Maior que Maior ou igual Menor ou igual Retorno Verdadeiro Verdadeiro Verdadeiro Verdadeiro Verdadeiro Verdadeiro

se se se se se se

$a $a $a $a $a $a

for for for for for for

igual a $b diferente de $b menor que $b maior que $b maior ou igual a $b 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:
Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


If ($a==$b) { Echo ("A igual a B."); } else { echo ("B diferente de A."); } 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:
Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


for (inicio; fim; incremento) { } //Bloco de comandos...

Exemplo: //Imprime os nmeros de 1 a 10 com incremento de 1 em 1 For ($contador=1; $contador<=10; $contador++) { Echo $contador; } 1. 2. A varivel $contador pode ser um nmero inteiro (integer) ou real (float), sendo a utilizao de nmeros inteiros mais frequente. 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 o comando break e encontrado o controle dentro do de um lao, o no lao imediatamente 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; terminado script retorna comando

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


case valor3: //Bloco de comandos Comandos... break; }

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 o tempo especificado na funo; se o 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. A funo para gravar 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.

8. Recuperando Cookies

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


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: a 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

10.1 - mysql_connect() Esta funo habilita uma conexo com o servidor de banco de dados MySQL.
Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


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 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.

for

bem

sucedida,

caso

contrrio

retorna

0.

sintaxe

dessa

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; nome_do_db - o banco de dados que se quer utilizar. inteiro_conexao mysql_connect(). corresponde ao identificador retornado pela funo

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


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 SQL para se o o MySQL Server. foi bem Esta funo retorna um

identificador

inteiro

comando

sucedido,

caso

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); o parmetro inteiro_query corresponde ao identificador de retorna da

funo mysql_query(). 10.5 - mysql_fetch_array() Retorna um array contendo o resultado da query SQL. Sintaxe: mysql_fetch_array(inteiro_query);
Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

onde

inteiro_query

corresponde

ao

identificador

retornado

pela

funo

mysql_query(). Exemplos:

11 - Trabalhando com Arquivos Algumas vezes, o usurio precisa ler e gravar dados de arquivos 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. 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.
Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


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 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 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:

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

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.

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. O principal objetivo deste livro fornecer

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


conhecimento suficiente para que um programador se familiarize com a nova tecnologia.

1 2 3 4 -

LERDORF, Rasmus - PHP Manual, 1999 by PHP documentation group. CRTES, Pedro - C Auto Explicativo, So Paulo, rica Editora Ltda 1992. SSHILDT, Herbert, C Completo e Total, So Paulo: Makron, McGrawHill, 1990. 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) FLOOR(X) Retorna o valor absoluto do nmero X Retorna o maior valor inteiro de um nmero. Mysql> select FLOOR(1.23); -> 1 mysql> select FLOOR(-1.23); -> -2

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


ROUND(X) Arredonda o argumento -> -1 mysql> select ROUND(-1.58); -> -2 mysql> select ROUND(1.58); -> 2 LOG(X) SQRT(X) Retorna o logartmo natural de '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 SIN(X) Retorna o seno de `X'. Obs: X em radianos Mysql> select SIN(PI()); -> 0.000000 `X', retornando um inteiro.

mysql> select ROUND(-1.23);

TAN(X) ACOS(X) ASIN(X) ATAN(X) DEGREES(X) RADIANS(X)

Retorna a tangente de X. Obs: X em radianos. Retorna o arco-cosseno de `X'. Retorna o arco-seno de X. Retorna o arco-tangente de X Converte o argumento X de radianos para graus. 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 LOWER(str) UPPER(str) CONCAT(str1,str2,...) SUBSTRING(str,pos,len) LTRIM(str) RTRIN(str) TRIM(str)

Retorno Fora caracteres

maisculos

aparecerem

minsculos. Fora caracteres minsculos aparecerem maisculos. Concatena os strings Extrai um substring comeando em pos e terminando em len. Extrai espaos em branco esquerda do string Extrai espaos em branco direita do string 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 WEEKDAY(data)

Retorno 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) MONTH(data) YEAR(data)

Dia do ano. Assume valores de 1 a 366. Ms do ano. Assume valores de 1 a 12 Ano referente a data. Assume valores entre 1000 a 9999

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica


DATE_FORMAT(data,formato) Valores para o formato `%W' Dia da Semana %Y' digitos mysql> `%y' `%d' %m' Ano, Dia Ms, numerico, do digitos ms, numerico numrico. (`00'..`31') (`01'..`12') CURDATE() CURTIME() NOW() Data atual. Formato (yyyy-mm-dd) Hora atual. Data e hora atual. mysql> select NOW(); -> '2000-08-01 23:50:26' select DATE_FORMAT('1997-10-04 2 22:23:00', '%H:%i:%s'); -> '22:23:00' Ano, numerico, 4 Formata uma data. Exemplos: mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%d-%m-%Y'); -> '04-10-1997'

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

APNDICE D OUTRAS FUNES IMPORTANTES DO MySQL DATABASE() USER() VERSION() COUNT(expr) AVG(expr) MIN(expr) MAX(expr) SUM(expr) Banco de dados corrente Usurio corrente String contendo a verso do MySQL Server Nmero de vezes que acontece a expresso Mdia aritmtica entre os valores da expressso Menor valor da expresso Maior valor da expresso Somatrio da expresso

Programando para Web com PHP/MySQL

UPE - POLI - Engenharia Eletrnica

Programando para Web com PHP/MySQL

S-ar putea să vă placă și