PHP - Pradigital

Propaganda
Manual de Php
Índice
ÍNDICE ................................................................................................................................................ 2
O QUE É PHP? ................................................................................................................................ 14
PHP & MYSQL .................................................................................................................................. 14
PHP & MYSQL 1 .............................................................................................................................. 15
OBJECTIVO ..................................................................................................................................... 15
PHP & MYSQL 2 .............................................................................................................................. 15
JUSTIFICATIVA ............................................................................................................................ 15
PHP & MYSQL 3 .............................................................................................................................. 16
LÓGICA DE PROGRAMAÇÃO........................................................................................................ 16
SEQUÊNCIA LÓGICA .................................................................................................................... 16
PHP & MYSQL 4 .............................................................................................................................. 17
EXERCÍCIOS - LÓGICA ............................................................................................................... 17
PHP & MYSQL 5 .............................................................................................................................. 18
PHP - HISTÓRIA ........................................................................................................................... 18
PHP & MYSQL 6 .............................................................................................................................. 19
PHP & MYSQL 7 .............................................................................................................................. 20
COMUNICAÇÃO CLIENTE X SERVIDOR.................................................................................. 20
DELIMITANDO O CÓDIGO PHP ................................................................................................. 21
PHP & MYSQL 9 .............................................................................................................................. 22
COMENTÁRIOS NO PHP .............................................................................................................. 23
PHP & MYSQL 10............................................................................................................................ 23
EXERCÍCIO 02 ................................................................................................................................ 23
PHP & MYSQL 11............................................................................................................................ 24
VARIÁVEIS ...................................................................................................................................... 24
EXERCÍCIO 03 ................................................................................................................................ 24
VARIÁVEIS ...................................................................................................................................... 25
EXERCÍCIO 03 ................................................................................................................................ 25
PHP & MYSQL 12............................................................................................................................ 26
DICAS: .............................................................................................................................................. 26
TIPOS DE DADOS SUPORTADOS ............................................................................................. 27
INTEGER (INTEIRO) ..................................................................................................................... 27
PHP & MYSQL 13............................................................................................................................ 27
DOUBLE (DUPLA PRECISÃO) ....................................................................................................... 27
STRINGS .......................................................................................................................................... 27
EXERCÍCIO 04 ................................................................................................................................ 28
PHP & MYSQL 14............................................................................................................................ 28
EXERCÍCIO 05 ................................................................................................................................ 28
BOOLEANO....................................................................................................................................... 28
ARRAY ............................................................................................................................................... 29
OBJECTO .......................................................................................................................................... 29
CARACTERES DE ESCAPE ............................................................................................................ 29
PHP & MYSQL 15............................................................................................................................ 29
EXERCÍCIO 06 ................................................................................................................................ 29
PHP & MYSQL 16............................................................................................................................ 30
OPERADORES................................................................................................................................... 30
ARITMÉTICOS ................................................................................................................................ 30
STRING ............................................................................................................................................. 31
EXERCÍCIO 07 ................................................................................................................................ 31
PHP & MYSQL 17............................................................................................................................ 31
ATRIBUIÇÃO ................................................................................................................................... 31
EXERCÍCIO 08 ................................................................................................................................ 32
PHP & MYSQL 18............................................................................................................................ 33
INCREMENTAÇÃO: ........................................................................................................................ 33
PHP & MYSQL 19............................................................................................................................ 34
LÓGICOS........................................................................................................................................... 34
OPERADOR SIGNIFICADO EXEMPLO ....................................................................................... 34
PHP & MYSQL 20............................................................................................................................ 34
INTEGRANDO O PHP AO HTML ................................................................................................ 34
MÉTODOS GET E POST ............................................................................................................... 35
PHP & MYSQL 21............................................................................................................................ 35
EXERCÍCIO 09 ................................................................................................................................ 36
ESTRUTURAS DE CONTROLE IF ............................................................................................... 36
ESTRUTURAS DE CONTROLE IF ............................................................................................... 36
PHP & MYSQL 22............................................................................................................................ 37
EXERCÍCIO 10 ................................................................................................................................ 37
ELSE ................................................................................................................................................... 37
EXERCÍCIO 11 ................................................................................................................................ 37
PHP & MYSQL .................................................................................................................................. 38
ELSEIF .............................................................................................................................................. 38
EXERCÍCIO 12 ................................................................................................................................ 38
LAÇOS ............................................................................................................................................... 39
WHILE ............................................................................................................................................... 39
EXERCÍCIO 13 ................................................................................................................................ 39
PHP & MYSQL 25............................................................................................................................ 40
FOR..................................................................................................................................................... 40
EXERCÍCIO 14 ................................................................................................................................ 40
INCLUDE ........................................................................................................................................... 40
INCLUDE ........................................................................................................................................... 41
PHP & MYSQL 26............................................................................................................................ 41
EXERCÍCIO 15 ................................................................................................................................ 41
PROGRAMA: TESTE.PHP .............................................................................................................. 41
PROGRAMA: EXTERNO.PHP ........................................................................................................ 41
INCLUDE “EXTERNO.PHP”; ......................................................................................................... 41
PROGRAMA: EXTERNO.PHP ........................................................................................................ 42
PHP & MYSQL 27............................................................................................................................ 43
ARRAY ............................................................................................................................................... 43
EXERCÍCIO 16 ................................................................................................................................ 43
LISTAS ............................................................................................................................................. 43
PHP & MYSQL 28............................................................................................................................ 44
EXERCÍCIO 17 ................................................................................................................................ 44
MYSQL – BANCO DE DADOS ...................................................................................................... 45
POPULARIZAÇÃO DOS BANCOS DE DADOS ......................................................................... 46
PHP & MYSQL EMPRESAS. .......................................................................................................... 46
PHP & MYSQL 31............................................................................................................................ 47
O QUE É UM SISTEMA DE GERENCIAMENTO DE BANCO DE ........................................ 48
DADOS? ............................................................................................................................................ 48
PHP & MYSQL 32............................................................................................................................ 49
COMPARTILHAMENTO DOS DADOS - O SGBD DEVE INCLUIR SOFTWARE DE
CONTROLE DE CONCORRÊNCIA AO ACESSO DOS DADOS, GARANTINDO EM
QUALQUER TIPO DE SITUAÇÃO A ESCRITA/LEITURA DE DADOS SEM ERROS. ... 49
CONTROLE DE ACESSO - O SGDB DEVE DISPOR DE RECURSOS QUE
POSSIBILITEM SELECCIONAR A AUTORIDADE DE CADA USUÁRIO. ASSIM UM
USUÁRIO PODERÁ REALIZAR QUALQUER TIPO DE ACESSO, OUTROS PODERÃO
LER ALGUNS DADOS E ACTUALIZAR OUTROS, E OUTROS AINDA PODERÃO
SOMENTE ACESSAR UM CONJUNTO RESTRITO DE DADOS PARA ESCRITA E
LEITURA........................................................................................................................................... 49
INTERFACEAMENTO - UM BANCO DE DADOS DEVERÁ DISPONIBILIZAR FORMAS
............................................................................................................................................................ 49
ESQUEMATIZAÇÃO - UM BANCO DE DADOS DEVERÁ FORNECER MECANISMOS
QUE POSSIBILITEM A COMPREENSÃO DO RELACIONAMENTO EXISTENTE ENTRE
AS TABELAS E SUA EVENTUAL MANUTENÇÃO. ................................................................ 50
CONTROLE DE INTEGRIDADE - UM BANCO DE DADOS DEVERÁ IMPEDIR QUE
APLICAÇÕES OU ACESSOS PELAS INTERFACES POSSAM COMPROMETER A
INTEGRIDADE DOS DADOS. ..................................................................................................... 50
CÓPIAS DE SEGURANÇA - O SGBD DEVERÁ APRESENTAR FACILIDADE PARA
RECUPERAR FALHAS DE HARDWARE E SOFTWARE, ATRAVÉS DA EXISTÊNCIA DE
ARQUIVOS DE “PRÉ-IMAGEM” OU DE OUTROS RECURSOS AUTOMÁTICOS,
EXIGINDO MINIMAMENTE A INTERVENÇÃO DE PESSOAL TÉCNICO. ...................... 50
PHP MYADMIN ................................................................................................................................ 50
MYSQL............................................................................................................................................... 51
EXEMPLO DE BANCO DE DADOS .............................................................................................. 51
TABELA DE DEPARTAMENTO ..................................................................................................... 51
PHP & MYSQL .................................................................................................................................. 52
COMO UTILIZAR A SQL PARA MANIPULAR OS BANCOS DE ......................................... 53
DADOS MYSQL ............................................................................................................................... 53
COMANDOS SQL ............................................................................................................................ 53
COMANDO SHOW .......................................................................................................................... 53
SINTAXE: ........................................................................................................................................ 53
COMANDO USE............................................................................................................................... 53
SINTAXE: ........................................................................................................................................ 53
COMANDO CREATE ....................................................................................................................... 54
SINTAXE: ........................................................................................................................................ 54
SINTAXE: ........................................................................................................................................ 54
PHP & MYSQL 37............................................................................................................................ 54
COMANDO INSERT ....................................................................................................................... 55
COMANDO SELECT ........................................................................................................................ 56
WHERE COMO BASE DAS RESTRIÇÃO DE LINHAS ........................................................... 57
PHP & MYSQL .................................................................................................................................. 57
EXEMPLOS: ...................................................................................................................................... 57
SELECIONAR QUANTAS PESSOAS EXISTEM CADASTRADAS:...................................... 57
SELECIONAR QUANTOS FUNCIONÁRIOS EXISTEM NO DEPARTAMENTO 3: ......... 58
SELECCIONAR O NOME E O RG DOS FUNCIONÁRIOS QUE GANHAM MAIS QUE 58
3000 REAIS:.................................................................................................................................... 58
COMANDO DESCRIBE ................................................................................................................... 58
PHP & MYSQL 41............................................................................................................................ 58
COMANDO DROP ............................................................................................................................ 58
SINTAXE: ........................................................................................................................................ 58
COMANDO DELETE ........................................................................................................................ 59
PHP & MYSQL .................................................................................................................................. 59
COMANDO UPDATE ....................................................................................................................... 59
ROTEIRO – CRIAÇÃO DE BANCO DE DADOS ....................................................................... 60
PHP & MYSQL .................................................................................................................................. 61
ESTABELECENDO CONEXÕES ENTRE PHP E MYSQL ......................................................... 62
PHP & MYSQL .................................................................................................................................. 62
SELECCIONANDO A BASE DE DADOS .................................................................................... 63
PHP & MYSQL .................................................................................................................................. 63
REALIZANDO CONSULTAS ......................................................................................................... 63
APAGANDO RESULTADOS ........................................................................................................... 64
PHP & MYSQL .................................................................................................................................. 64
NÚMERO DE LINHAS ................................................................................................................... 64
UTILIZANDO OS RESULTADOS ............................................................................................... 64
FORMULARIO.PHP ......................................................................................................................... 65
PHP & MYSQL .................................................................................................................................. 67
INSERIR.PHP ................................................................................................................................... 67
PROCURAR.PHP ............................................................................................................................... 67
<? ........................................................................................................................................................ 67
PHP & MYSQL .................................................................................................................................. 68
ALTERAR.PHP .................................................................................................................................. 68
PHP & MYSQL .................................................................................................................................. 69
ALTERAR2.PHP ................................................................................................................................ 69
ALTERAR2.PHP ................................................................................................................................ 69
PHP & MYSQL .................................................................................................................................. 70
DELETAR.PHP .................................................................................................................................. 70
PHP & MYSQL .................................................................................................................................. 71
PROJECTO ........................................................................................................................................ 71
PHP & MYSQL .................................................................................................................................. 71
PHP & MYSQL .................................................................................................................................. 74
TIPOS DE CAMPOS ......................................................................................................................... 75
VARCHAR(N) - É UM CAMPO TEXTO VARIÁVEL DE NO MÁXIMO N CARACTERES.
............................................................................................................................................................ 75
PHP & MYSQL 57............................................................................................................................ 75
PHP & MYSQL 58............................................................................................................................ 76
2 - CRIAÇÃO DA HOME PAGE DO SITE ................................................................................ 76
PHP & MYSQL .................................................................................................................................. 78
3 - MÓDULO DE INCLUSÃO ...................................................................................................... 79
3.1) FORMULÁRIO INCLUSAO.HTML ...................................................................................... 79
PHP & MYSQL .................................................................................................................................. 80
PHP & MYSQL 62............................................................................................................................ 81
PHP & MYSQL .................................................................................................................................. 82
3.3) TESTANDO O MÓDULO DE INCLUSÃO ......................................................................... 82
4 - MÓDULO DE CONSULTA ...................................................................................................... 83
4.1)FORMULÁRIO CONSULTA.HTML ....................................................................................... 84
4.2) PROGRAMA CONSULTA.PHP .............................................................................................. 84
DICAS: .............................................................................................................................................. 85
PHP & MYSQL .................................................................................................................................. 85
<?PHP ................................................................................................................................................. 85
PHP & MYSQL .................................................................................................................................. 87
4.3) TESTANDO O MÓDULO DE CONSULTA ........................................................................ 87
PHP & MYSQL 68............................................................................................................................ 88
5 - MÓDULO DE EXCLUSÃO ...................................................................................................... 89
5.1) FORMULÁRIO EXCLUSAO.HTML ...................................................................................... 89
PHP & MYSQL .................................................................................................................................. 89
5.2) PROGRAMA EXCLUSAO.PHP ............................................................................................... 90
PHP & MYSQL .................................................................................................................................. 90
PHP & MYSQL .................................................................................................................................. 92
5.3) TESTANDO O MÓDULO DE EXCLUSÃO ......................................................................... 93
PHP & MYSQL .................................................................................................................................. 94
6 - MÓDULO DE ALTERAÇÃO .................................................................................................... 94
6.1) FORMULÁRIO ALTERAÇAO.HTML ................................................................................... 94
PHP & MYSQL 73............................................................................................................................ 96
6.2) PROGRAMA ALTERACAO.PHP ............................................................................................ 96
PHP & MYSQL 74............................................................................................................................ 97
6.3) PROGRAMA CONECT.PHP .................................................................................................... 97
6.3) PROGRAMA CONECT.PHP .................................................................................................... 98
PHP & MYSQL .................................................................................................................................. 99
<? ........................................................................................................................................................ 99
6.4) PROGRAMA ALTERACAO2.PHP .......................................................................................... 99
PHP & MYSQL ................................................................................................................................ 100
PHP & MYSQL ................................................................................................................................ 101
6.5) TESTANDO O MÓDULO DE ALTERAÇÃO .................................................................... 101
PHP & MYSQL 78.......................................................................................................................... 102
RESPOSTAS DOS EXERCÍCIOS DE LÓGICA ........................................................................ 102
PLANO DE AULA........................................................................................................................... 103
1ª AULA .......................................................................................................................................... 103
- APRESENTAÇÃO DA TURMA; ............................................................................................... 103
- LÓGICA DE PROGRAMAÇÃO; ................................................................................................ 103
- PHP ............................................................................................................................................... 104
- EXERCÍCIO 01 .......................................................................................................................... 104
- EXERCÍCIO 02 .......................................................................................................................... 104
2ª AULA .......................................................................................................................................... 104
- VARIÁVEIS (DEFINIÇÃO) ..................................................................................................... 104
- EXERCÍCIO 03 .......................................................................................................................... 104
PHP & MYSQL 80.......................................................................................................................... 105
* EXERCÍCIO 04; ......................................................................................................................... 105
* EXERCÍCIO 05; ......................................................................................................................... 105
- CARACTERE DE ESCAPE ......................................................................................................... 105
- EXERCÍCIO 06 .......................................................................................................................... 105
- OPERADORES ............................................................................................................................. 105
- EXERCÍCIO 07 .......................................................................................................................... 105
- EXERCÍCIO 08 .......................................................................................................................... 105
3ª AULA .......................................................................................................................................... 106
- INTEGRANDO O PHP AO HTML .......................................................................................... 106
- EXERCÍCIO 09 .......................................................................................................................... 106
- ESTRUTURAS DE CONTROLE ............................................................................................... 106
* IF .................................................................................................................................................. 106
- EXERCÍCIO 10 .......................................................................................................................... 106
PHP & MYSQL 81.......................................................................................................................... 106
* ELSE ............................................................................................................................................. 106
- EXERCÍCIO 11 .......................................................................................................................... 106
- EXERCÍCIO 12 .......................................................................................................................... 107
4ª AULA .......................................................................................................................................... 107
- LAÇOS ......................................................................................................................................... 107
- EXERCÍCIO 13 .......................................................................................................................... 107
- EXERCÍCIO 14 .......................................................................................................................... 107
- INCLUDE ..................................................................................................................................... 107
- ARRAY.......................................................................................................................................... 107
- LISTAS........................................................................................................................................ 108
- EXERCÍCIO 17 .......................................................................................................................... 108
5ª AULA .......................................................................................................................................... 108
- MYSQL – BANCO DE DADOS ................................................................................................ 108
- POPULARIZAÇÃO DOS BANCOS DE DADOS ................................................................... 108
- O QUE É UM SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS? ................ 108
- PHPMYADMIN (APRESENTAÇÃO) ........................................................................................ 108
- MYSQL......................................................................................................................................... 108
- COMO UTILIZAR A SQL PARA MANIPULAR OS BANCOS DE DADOS ................... 108
PHP & MYSQL 82.......................................................................................................................... 108
MYSQL? .......................................................................................................................................... 108
-COMANDOS SQL: ...................................................................................................................... 109
- RETEIRO – CRIAÇÃO DE BANCO DE DADOS (USANDO O TERMINAL).................. 110
- CRIAR O MESMO BANCO DE DADOS (USANDO O PHPMYADMIN) ......................... 110
6ª AULA .......................................................................................................................................... 110
- ESTABELECENDO CONEXÕES ENTRE PHP E MYSQL ................................................... 110
- SELECIONANDO A BASE DE DADOS ................................................................................ 110
- REALIZANDO CONSULTAS ................................................................................................... 110
- APAGANDO RESULTADOS ..................................................................................................... 110
- NÚMERO DE LINHAS ............................................................................................................. 110
- UTILIZANDO OS RESULTADOS ......................................................................................... 110
PHP & MYSQL 83.......................................................................................................................... 110
7ª AULA .......................................................................................................................................... 110
- EXPLICAÇÃO DE EXERCÍCIO PREPARATÓRIO PARA O PROJETO (CRUD) ............. 111
- ELABORAÇÃO DO EXERCÍCIO - (CRUD) ........................................................................... 111
8ª AULA .......................................................................................................................................... 111
- PROJECTO FINAL: DESENVOLVIMENTO DO TEMA (ESCOLHIDO PELA TURMA)
PARA ................................................................................................................................................ 111
- ELABORAÇÃO DO PROJECTO ............................................................................................... 112
9ª AULA .......................................................................................................................................... 112
- ELABORAÇÃO DO PROJECTO ............................................................................................... 112
10ª AULA ....................................................................................................................................... 112
- FINALIZAÇÃO DO PROJECTO ............................................................................................. 112
PHP & MYSQL 84.......................................................................................................................... 112
BIBLIOGRAFIA ............................................................................................................................. 112
O que é PHP?
PHP - Hypertext Processor – É uma linguagem de programação de código
aberto muito utilizada, onde sua principal função é a de criação de scripts,
que são executados no servidor web para a manipulação de página HTML, ou
seja, utiliza-se PHP para criar páginas dinâmicas e automáticas. Essa
linguagem é diferente de outras linguagens, onde o código é interpretado e
não compilado.
PHP & MySql
Em que consiste uma página dinâmica?
Entende-se por uma página dinâmica, toda a página que é gerada
quando existe um pedido no servidor, ou seja, a página que chega ao
utilizador não existe “escrita” no servidor. Existem sim os conteúdos, que
serão depois colocados nos respectivos locais, na página, consoante os
pedidos. O melhor exemplo de um site dinâmico é um motor de pesquisa. É
impossível - e impensável – armazenar todas as combinações de páginas que
surgem, quando fazemos diversas pesquisas. Quer isto dizer, que as páginas
não existem e são“geradas” com informações que estão em bases de dados,
quando fazemos um pedido sobre qualquer coisa.
PHP & MySql 1
Objectivo
Capacitar os colaboradores dos Telecentros com o objectivo
decriarem programas voltados à web para manipulação de páginas
HTML,como também desenvolvimento de raciocínio lógico e noções
degerenciamento de banco de dados relacional.
PHP & MySql 2
Justificativa
Actualmente, com o avanço tecnológico, necessitamos cada vez mais
da automatização de sistemas para facilitarmos e agilizarmos serviços,
principalmente no que diz respeito à internet. Com o curso dePHP & MySql
poderemos integrar a linguagem de programação com oacesso online onde
será possível um óptimo controle das informaçõesatravés de banco de
dados.
PHP & MySql 3
Lógica de Programação
O estudo da lógica é o estudo dos métodos e princípios usados para
distinguir o raciocínio correcto do incorrecto. Esta definição não quer dizer
que somente uma pessoa que tenha estudado lógica possa raciocinar
correctamente e encontrar soluções para diversos problemas.A habilidade
de resolver problemas é natural em todo ser humano.
Uma parte do estudo da lógica consiste no exame e na análise dos
métodos incorrectos do raciocínio (falácias), isto nos dá uma visão
mais profunda dos princípios do raciocínio em geral e nos auxilia também a
evitá-los.
Por último, proporciona ao estudante certas técnicas e métodos de
fácil aplicação para determinar a correcção ou incorrecção de todos os
raciocínios. O valor deste conhecimento reside no fato de ser menor a
possibilidade de se cometer erros, quando é possível localizá-los mais
facilmente.
Lógica vem de “logos” que significa palavra, expressão, conceito,
pensamento, discurso, razão.
Sequência Lógica
Estes pensamentos podem ser descritos como uma sequência de
instruções que devem ser seguidas para cumprir uma determinada
tarefa,portanto, sequência lógica são passos executados até atingir um
objectivo ou solução de um problema.
PHP & MySql 4
Exercícios - Lógica
1) Quantos rectângulos existem na figura abaixo:
2. Uma lesma está num poço de 30m de profundidade. A cada dia ela sobe
3m e escorrega 2m. Em quantos dias sairá do poço?
3)
O PRISIONEIRO
No antigo Egipto, havia um prisioneiro em uma cela com duas saídas,
cada uma delas com um guarda. Cada saída dava para um corredor diferente
em que um dava para o campo e, portanto, para a liberdade e o outro para
um fosso de crocodilos. Só os guardas sabiam qual a saída certa, mas um
deles dizia sempre a verdade e outro mentia sempre. O prisioneiro não sabia
nem qual a saída certa nem qual o guarda verdadeiro. Qual a pergunta (e
uma só pergunta) que o prisioneiro deveria fazer a um dos guardas ao acaso,
para saber qual aporta certa?
4) Una estes quatro pontos apenas com três rectas, sem levantar aponta do
lápis ou da caneta e acabando no ponto onde
começou.
PHP & MySql 5
PHP - História
A linguagem de programação PHP foi criada no outono de 1994 por
Rasmus Lerford. No início era formada por um conjunto de scripts voltados
à criação de páginas dinâmicas que Rasmus utilizava para monitorar o acesso
ao seu currículo na internet. À medida que essa ferramenta foi crescendo
em funcionalidades, Rasmus teve de escrever uma implementação em C, a
qual permitia às pessoas desenvolverem de forma muito simples as suas
aplicações para web. Rasmus nomeou essa versão de PHP/FI (Personal Home
Page / Forms Intepreter) e
decidiu disponibilizar seu código na web, em 1995, para compartilhar com
outras pessoas, bem como receber ajuda e correcção de bugs.
Em Novembro de 1997 foi lançada a segunda versão do PHP.
Naquele momento, aproximadamente 50 mil domínios ou 1% da internet já
utilizava PHP. No mesmo ano Andi Gutmans e Zeev Suraski, dois estudante
que utilizavam PHP em um projecto académico de comércio electrónico,
resolveram cooperar com Rasmus para aprimorar o PHP. Para tanto,
reescreveram todo o código-fonte, com base no PHP/FI 2, dando início ao
PHP 3, disponibilizando oficialmente em Junho de 1998.
Dentre
as
principais
características
do
PHP
3
estavam
eextensibilidade, a possibilidade de conexão com vários bancos de dados,
novos protocolos, uma sintaxe mais consistente, suporte à orientação a
objectos e uma nova API, que possibilitava a criação de novos módulos e que
acabou por atrair vários desenvolvedores ao PHP.
No final de 1998, o PHP já estava presente em cerca de 10% dos domínios
na internet. Nessa época o significado da sigla PHP mudou.
PHP & MySql 6
para PHP: Hypertext Processor, retratando assim a nova realidade de uma
linguagem com propósitos mais amplos.
No inverno de 1998, após o lançamento do PHP 3, Zeev e Andi
começaram a trabalhar em uma reescrita do núcleo do PHP, tendo em vista
melhorar sua performance e modularidade em aplicações complexas. Para
tanto, resolveram baptizar este núcleo de Zend Engine, ou mecanismo Zend
(Zeev + Andi). O PHP 4, baseado neste mecanismo, foi lançado oficialmente
em maio de 2000, trazendo muitas melhorias e recursos novos, como
secções, suporte a diversos servidores web, além da abstracção de sua API,
permitindo inclusive ser utilizado com linguagem para shell script. Nesse
momento, o PHP já estava presente em cerca de 20% dos domínios da
internet, além de
ser utilizado por milhares de desenvolvedores ao redor do mundo.
Apesar de todos os esforços, o PHP ainda necessitava maior suporte à
orientação a objectos, tal qual existe em linguagens como++ e Java. Tais
recursos estão finalmente presentes no PHP 5, após um longo período de
desenvolvimento que culminou com sua disponibilização oficial em Junho de
2004.
PHP & MySql 7
linguagens, onde o código é interpretado e não compilado.
Em que consiste uma página dinâmica?
Entende-se por uma página dinâmica, toda a página que é gerada
quando existe um pedido no servidor, ou seja, a página que chega ao
utilizador não existe “escrita” no servidor. Existem sim os conteúdos, que
serão depois colocados nos respectivos locais, na página, consoante os
pedidos. O melhor exemplo de um site dinâmico é um motor de pesquisa. É
impossível - e impensável – armazenar todas as combinações de páginas que
surgem, quando fazemos diversas pesquisas. Quer isto dizer, que as páginas
não existem e são“geradas” com informações que estão em bases de dados,
quando fazemos um pedido sobre qualquer coisa.
Comunicação Cliente x Servidor
Quando é digitado um endereço no navegador para acessar uma página
na internet o que acontece é uma requisição do cliente (navegador) ao
servidor web. O servidor processa essa requisição e retorna uma resposta
ao cliente, que por sua vez, interpreta o código retornado e formata a
página para a sua visualização. Esse procedimento acontece em todas as
requisições feitas pelo navegador.
Portanto, programar para a web pode ser considerado como um jogo
que consiste em receber os dados do usuário, processá-lo e enviar a
resposta dinâmica. Uma vez enviada a resposta é encerrado o contrato
entre o servidor e o cliente.
CLIENTE
SERVIDOR WEB
Delimitando o código PHP
O código PHP fica embutido no próprio HTML. O interpretador
identifica quando um código é PHP pelas seguintes tags:
<?php
comandos
?>
<?
comandos
?>
<%
comandos
%>
Nota: O delimitador <% %> de alteração no arquivo de configuração
php.ini.
Tudo que estiver delimitado por <? e ?> / <?php e ?> / <% e
%> será processado no servidor. O navegador cliente receberá apenas o
resultado do processamento.
PHP & MySql 9
Nota: NO PHP TODAS AS INTRUÇÕES SÃO TERMIDADAS COM
O CARACTERE “;” (ponto e virgula). Este caractere indica ao interpretador
quando acaba uma instrução, e quando ele deve de esperar outra instrução.
A excepção deste caso é quando um bloco de código PHP só contem uma
única instrução, podendo, assim incluir ou não o ';' .
Exercício 01
<?php
echo “Olá Mundo”;
?>
Resultado:
Comentários no PHP
Com a ideia de organizar o programa para fácil visualização Com a
ideia de organizar o programa para fácil visualização
podemos inserir COMENTÁRIOS. Em HTML utilizamos os delimitadores <!-e -->, em PHP também é possível comentar partes de um código. Para tal,
quando se quer comentar uma única linha, utilizamos os caracteres “//” para
comentar a linha que não será processada. Para um bloco de linhas,
utilizamos os separadores “/*” no inicio do bloco, e“*/” para fechar o
comentário.
PHP & MySql 10
Exemplo:
<?php
// Uma linha de comentário.
/*
Um Simples
bloco de
comentário !!!
*/
?>
Exercício 02
Veja no exercício abaixo como o PHP interage com o HTML.
Utilize um editor de texto puro (como o gedit) ou editor web(como o
BlueFish), para digitar e testar o código abaixo. Salve na pasta indicada pelo
seu instrutor com o nome de “ecoando.php”, abra um navegador e digite o
endereço:
http://localhost/<endereço>/ecoando.php
Obs: Onde estiver escrito <endereço> digite o local indicado pelo seu
instrutor.
A primeira linha e <u>normal</u>. <br>
<?
echo“<b>A segunda linha já é escrita pelo
<b>PHP</b>.”;
?>
PHP & MySql 11
Variáveis
Variáveis são identificadores utilizados para representar valores mutáveis e
voláteis, que só existem durante a execução do programa.
Ela são armazenadas na memória RAM e seu conteúdo é distribuído após a
execução do programa. Para criar uma variável em PHP, precisamos atribuirlhe um nome de identificação, sempre procedido pelo caractere $ (cifrão).
Veja os exemplos a seguir:
Exercício 03
<?php
$nome=“João”;
$sobrenome=“de Souza”;
echo “$sobrenome, $nome”;
?>
Resultado:
de Souza, João
<br>
Nisto,
vem
uma
<font
color=\“#FF0000\”>terceira
mais
complexa</font>... <br>
<?
echo “E logo a<font color=\“#00FF00\”>seguir</font>,a quarta <font
color=\“#0000FF\”>ainda complicada!” ;
?>
Variáveis
Variáveis são identificadores utilizados para representar valores mutáveis e
voláteis, que só existem durante a execução do programa.
Ela são armazenadas na memória RAM e seu conteúdo é distribuído após a
execução do programa. Para criar uma variável em PHP, precisamos atribuirlhe um nome de identificação, sempre procedido pelo caractere $ (cifrão).
Veja os exemplos a seguir:
Exercício 03
<?php
$nome=“João”;
$sobrenome=“de Souza”;
echo “$sobrenome, $nome”;
?>
Resultado:
de Souza, João
PHP & MySql 12
Dicas:
Nunca inicie a nomenclatura de variáveis com números;
Nunca utilize espaços em branco no meio do identificador da
variável;
Nunca
utilize
caracteres
especiais:
(!@#%^&*/|[]{})
na
nomenclatura das variáveis;
Evite criar variáveis com mais de 15 caracteres em virtude da
clareza do código fonte;
Nomes de variáveis devem ser significativos e transmitir a ideia de
seu conteúdo dentro do contexto no qual a variável está inserida;
Utilize preferencialmente palavras em minúsculo (separadas pelo
caractere “_”) ou somente as primeiras letras em maiúsculo quando houver
mais palavras.
<?php
$codigo_cliente //exemplo de variável
$codigoCliente //exemplo de variável
?>
Tipos de Dados Suportados
Integer (Inteiro)
É utilizado para números inteiros. Veja como declarar uma variável do tipo
inteiro:
$curso =1000; // número inteiro positivo
$curso = -1000; // número inteiro negativo
PHP & MySql 13
Double (Dupla Precisão)
É utilizado para números reais, podendo fazer cálculos com grande precisão.
Veja os exemplos abaixo:
$curso = 1.050; // O ponto é o separador decimal
$curso = 52e3; // Notação científica (equivale a 52000)
Strings
É utilizado para strings de caracteres. As strings podem ser
delimitadas de duas maneiras:
Com aspas duplas ('' ''), todas as variáveis dentro da string serão
resolvidas.
Exercício 04
<?php
$teste = “Linux”;
$php= “--- $teste --- \n”;
echo $php;
?>
Resultado:
------ Linux --Com o uso de apóstrofos (' '), a string permanece como aparece,
sem substituições.
PHP & MySql 14
Exercício 05
<?php
$teste = “Linux”;
$php= '--- $teste --- \n';
echo $php;
?>
Resultado:
--- $teste ---\n
Booleano
É utilizado para valores verdadeiros (True) ou falsos (False).
Array
É utilizado para armazenar vários itens de dados do mesmo tipo em
uma única variável.
Objecto
É utilizado para armazenar instâncias de classes.
Caracteres de Escape
Os caracteres de escape começam com uma barra invertida (\) e são
colocados dentro das strings. Internamente eles são substituídos pelos
caracteres reais e pelas acções que esses caracteres simbolizam.
PHP & MySql 15
\n Nova linha. Desce para a linha de baixo.
\r Retorno de carro (semelhante a \n). Coloca o cursor no começo da
linha.
\t Tabulação horizontal. Pula para a próxima tabulação.
\\ Barra invertida. Substitui por uma barra invertida.
\$ Cifrão. Substitui por um cifrão.
\” Aspas. Substitui por aspas.
Exercício 06
No exercício abaixo é mostrada a forma como o PHP utiliza variáveis.
Utilizando um editor de texto puro (como o gedit) ou editor Web (como o
BlueFish), salve o arquivo na pasta indicada pelo seu instrutor com o nome
de
“variaveis.php”,
abra
um
navegador
e
digite
o
endereço
http://localhost/<endereço>/variaveis.php
Exemplo de utilização de variáveis: <br><br>
<?php
$inteiro=10;
$real=20.0;
$caracter= 'V';
$cor1= "#FF0000";
$cor2= "#0000FF";
?>
<font color= <? echo $cor1?>> A variável $inteiro tem o valor <? echo
$inteiro ?>. </font> <br>
<font color= <? echo $cor2 ?>> A variável $real tem o valor <? echo
$real ?> </font> <br>
<font color= <? echo $cor1 ?>> O caractere escolhido e o <? echo
$caracter ?>
</font>
PHP & MySql 16
Operadores
Aritméticos
O PHP possui todos os operadores aritméticos. Os principais são:
+ Adição
- Subtracção
* Multiplicação
/ Divisão
% Resto da divisão
String
O PHP possui um único operador de string, que é o operador
deconcatenação “.” . Veja o exemplo abaixo:
Exercício 07
<?php
$x=“Alô ”;
$s=$x.“Mundo”;
echo($s.“\n”);
?>
Resultado:
Alô Mundo
PHP & MySql 17
Atribuição
O único operador de atribuição do PHP é o “=”. Este, combinado com
os operadores aritméticos e de string, pode reduzir o tamanho do código.
= Atribuição simples.
+= Atribuição com adição.
-= Atribuição com subtracção.
*= Atribuição com Multiplicação.
/= Atribuição com divisão.
%= Atribuição com módulo.
.= Atribuição com concatenação.
Veja o exemplo abaixo.
Exercício 08
<?php
$curso = 7;
$curso += 2;
echo $curso;
9
Resultado:
PHP & MySql 18
Veja outro exemplo utilizando a atribuição com módulo (resto de divisão):
<?php
$resto = 11;
$resto %= 2;
echo $resto;
?>
Resultado:
1
No exemplo acima inicialmente a variável $resto possuí valor11.
A operação “$resto %=2;” é equivalente à operação “$resto=$resto%2;”,
isto é, as duas calculam o resto da divisão da variável $resto por 2.
Incrementação:
Pode ser utilizada de duas formas: antes ou depois da variável. O
incremento de uma variável soma 1 unidade à uma variável e armazena o
resultado na mesma. O decremento subtraí uma variável em 1 unidade.
Quando utilizado antes, retorna o valor da variável antes de incrementá-la
ou decrementá-la. Quando utilizado depois, retorna o valor da variável já
incrementado ou decrementado.
++ Incremento
- - Decremento
PHP & MySql 19
Exemplos:
$a=$b=10; // $a e $b recebem o valor 10
$c=$a++; // $c recebe 10 e $a passa a ter 11
$d=++$b; // $d recebe 11, valor de $b já incrementado
$d++; // $d recebe + 1 unidade e passa a valer 12
Lógicos
Os operadores lógicos trabalham com os valores completos, utilizando TRUE
ou FALSE.
Operador Significado Exemplo
and “e” lógico $a and $b
or “ou” lógico $a or $b
! Não (inversão) !$b
&& “e” lógico $a && $b
|| “ou” lógico $a || $b
Comparação
Os operadores de comparação são usados para comparar dois
valores.
== igual a
!= Diferente de
<> Diferente de
< menor que
> maior que
<= menor ou igual a
>= maior ou igual a
PHP & MySql 20
Integrando o PHP ao HTML
Nesta seção, vamos criar uma página dinâmica para processar os
dados enviados pelo formulário.
Os valores dos campos passados pelos formulários ficam armazenados
nos vetores $_POST e $_GET conforme o método de envio.
Métodos GET e POST
O GET é um método do HTTP destinado a enviar dados do cliente
para o servidor. É accionado por meio de um formulário HTML através da
directiva METHOD=GET incluída na tag <FORM>.
Quando o formulário HTML utiliza o método GET, o fluxo de dados é
separado do endereço URL que chama a CGI através de um ponto de
interrogação (?). Esta forma de endereçamento e separação pode ser
observada no campo de endereços do navegador do usuário. Logo após o
formulário ter sido enviado, pode ver algo como:
http://www.meusite.com/meuscript.cgi?campo1=valor1&campo2=valor2.
O POST é outro método do HTTP similar ao GET, porém é accionado
por meio da directiva METHOD=POST. Este método faz com que os dados
do formulário sejam directamente transmitidos ao endereço que constar da
directiva ACTION= e não através da URL.
Ao escrevermos nossos scripts, devemos sempre lembrar qual método
estamos usando a fim de determinarmos se iremos ler os dados do vector
$_POST ou $_GET.
PHP & MySql 21
Dica: Sempre que possível, deve-se utilizar o método POST, pois
através do método GET os dados enviados ficam mais expostos através da
URL no navegador, o que representa uma falha de segurança.
Exercício 09
Salve seu arquivo com o nome de “formulario.php” e digite o endereço
http://localhost/<endereço>/formulario.php no seu navegador para testá-lo.
Estruturas de Controle If
O comando if testa a condição passada e executa o bloco de código caso o
valor retornado da condição seja verdadeiro. Veja o
exemplo a seguir:
<?
<?php
$nome = $_POST['nome'];/*atribuindo o valor do formulário na
variável $nome. */
echo “O meu nome é: ” . $nome;
?>
<form method=“POST” action=“formulario.php”>
Digite seu Nome:<input type=“text” name=“nome” value=“”>
<input type=“submit” value=“Enviar”>
</form>
Estruturas de Controle If
O comando if testa a condição passada e executa o bloco de código caso o
valor retornado da condição seja verdadeiro. Veja o exemplo a seguir:
PHP & MySql 22
Exercício 10
Resultado:
Não é igual
Else
Caso a condição passada retorne um valor falso, e seja necessário executar
um bloco de código diferente, utiliza-se a instrução else. Veja o exemplo a
seguir:
Exercício 11
<?php
$a = 1;
if ($a == 5)
{
echo “é igual”;
}
else
{
echo “não é igual”;
}
?>
<?php
$a = 1;
$b = 2;
if ($a > $b)
{
echo “$a > $b”;
}
else
PHP & MySql
else
{
echo “$b > $a”;
}
?>
Resultado:
2>1
ElseIf
Ainda existe a instrução elseif, para situações onde precisa-se verificar
mais que uma condição. Veja o exemplo a seguir:
Exercício 12
<?php
$a=1;
$b=2;
$c=3;
if ($a > $b) {
echo “$a e´ maior que $b”;
}
elseif ($a > $c) {
echo “$a e´ maior que $c”;
}
else {
echo “$a e´ menor que $b e $c”;
}
?PHP & MySql
Resultado
MENORQUE 2 E 3
Laços
While
Este comando é utilizado para realizar laços de repetições condicionais. Ele
executa o bloco de código enquanto a condição passada for verdadeira, e
caso a condição inicial que foi passada se torne falsa, o bloco não será
executado. Veja o exemplo a seguir:
Exercício 13
<?php
echo “Exemplo de While”.“<br>”;
$a=1;
while ($a<5)
{
echo $a;
$a++;
}
?>
Resultado:
Exemplo de While
1234
PHP & MySql 25
For
Como nos outros comandos que realizam laços condicionais, o comando for
também precisa de uma condição para ser testada a cada laço realizado,
porém, este comando necessita de mais dois parâmetros, que seriam a
declaração da variável contadora e a instrução de incremento. Veja o
exemplo abaixo:
Exercício 14
Include
<?php
echo “Exemplo de For”.“<br>”;
for ($i=1; $i<=10; $i++)
{
echo $i;
Resultado:
Exemplo de For
12345678910
Include
A função include coloca o conteúdo de um outro arquivo, com ou sem
código em PHP, substituindo pelo novo código. O código do arquivo incluído é
processado em tempo de execução, permitindo assim, que sejam usados
“includes” dentro de estruturas de controle como for e while. Veja o
exemplo a seguir:
PHP & MySql 26
Exercício 15
Programa: teste.php
Programa: externo.php
O programa com o comando include ficaria da seguinte forma:
<?php
echo “Teste A”; A”.“<br>”;
echo “Teste B”; .“<br>”;
include “externo.php”;
echo “Teste D”; “<br>”;
?>
Programa: externo.php
<?php
echo “Teste C”.“<br>”;
?>
?>
O programa com o comando include ficaria da seguinte forma:
<?php
<?php
echo “Teste A”;
echo “Teste B”;
echo “Teste C”;
echo “Teste D”;
?>
O comando include é muito utilizado quando você quer definir funções
ou variáveis que serão utilizadas com frequência em várias páginas de um
site.
PHP & MySql 27
Array
É um tipo de variável que possui seu conteúdo agrupado por índices, como um
vetor ou um dicionário. Estes índices podem ser de qualquer tipo suportado
pelo PHP. Pode-se criar um array usando as funções list() ou array(), ou
pode-se atribuir explicitamente o valor de cada elemento. Também é
possível criar uma array, simplesmente adicionando-se valores ao array.
Veja o exemplo abaixo:
Exercício 16
<?php
$array[0] = "Curso";
$array[1] = "HP";
$array[“MPB”] = "Gilberto Gil";
echo $array[0]. "<br>";
echo $array[1]. "<br>";
echo $array[“MPB”]. "<br>";
?>
Listas
As listas são utilizadas em PHP para realizar várias atribuições, como por
exemplo, atribuir valores de uma array para variáveis, como mostra o
exemplo a seguir:
<?php
list($a, $b, $c) = array(0 => “abacaxi”, 1 => “pera”, 2 =>
“laranja”);
?>
PHP & MySql 28
O programa acima atribuirá simultaneamente e respectivamente os valores
do array às variáveis passadas como parâmetros para o comando list. É
muito importante lembrar que só serão passadas ao comando list os
elementos do array que possuírem os índices com valores inteiros e não
negativos.
Exercício 17
O exercício abaixo mostra a utilização de vetores e listas. Salve seu
arquivo com o nome de “listas.php” na pasta habilitada e digite o
endereço http://localhost/<endereço>/listas.php no seu navegador
para testá-lo. <?php
$meses=array(“Janeiro”,“Fevereiro”,“Março”,“Abril,“Maio”,“
Junho”,“Julho”,“Agosto”,“Setembro”,“Outubro”,“Novembro”,“Dezemb
ro”);
?>
Ciclo While <br><br>
<?
$mes=0;
while ($mes<=11) {
echo “Mês: $meses[$mes] <br>”;
$mes++ ;
}
?>
<br><br><br>
Ciclo For <br><br>
<?
for ($mes=0; $mes<=11; $mes++)
{
echo “Mês: $meses[$mes] <br>”;
}
?>
PHP & MySql 29
MySql – Banco de Dados
No mundo atual existem gigantescos bancos de dados gerenciando nossas
vidas. Nossa conta bancária faz parte de uma coleção imensa de contas
bancárias de nosso banco.
Nosso Título Eleitoral ou nosso Cadastro de Pessoa Física, certamente estão
armazenados em Bancos de Dados colossais.
Sabemos também que quando sacamos dinheiro no caixa electrónico
de nosso banco, nosso saldo e as movimentações existentes em nossa conta
bancária já estão à nossa disposição.
Nestas situações sabemos que existe uma necessidade em se realizar o
armazenamento de uma série de informações que não se encontram
efectivamente isoladas umas das outras, ou seja, existe uma ampla gama de
dados que se referem a relacionamentos existentes entre as informações a
serem manipuladas.
Para gerenciar tantos dados como os citados são utilizados os Sistemas de
Gerenciamento de Banco de Dados (SGBD). Sem tais sistemas o mundo
actual estaria bastante diferente de como vemoshoje.
O mercado financeiro atual não existiria. As praticidades, como
compras pela Internet, cartões de débito, caixas automáticos e mais uma
infinidade de exemplos, não seriam possíveis.
Popularização dos Bancos de Dados
Há poucas décadas, os bancos de dados eram utilizados apenas por grandes
instituições.
O
seu uso
era restrito aos
grandes
negócios,
onde
simplesmente seria impossível a operação de certas indústrias ou
PHP & MySql empresas.
Com a popularização e barateamento da plataforma IBM/PC, logo
surgiram programas aplicativos para algum tipo de armazenamento de dados.
Antes desses equipamentos e softwares tornarem-se acessíveis, muitas
vezes eram utilizadas fichas cadastrais para armazenar dados de clientes
em pequenos e médios negócios (essas fichas e armários de fichários são
ainda hoje utilizados em alguns locais).
Para se entender como isso funcionava, vamos usar um exemplo de
uma pessoa que ao visitar uma clínica médica/odontológica fornecia seu
nome, endereço, telefone etc. Esses dados eram então anotados nessas
fichas, que eram a única maneira de se guardar as informações de clientes,
pacientes, estudantes, peças numa oficina mecânica etc.
Exemplo de ficha cadastral:
Nº de cadastro: 19.000/2
Nome: Fulano Beltrano Santos.........................RG
Nº:165.956.401/26
Endereço: Rua Alpha, Nº 308 Bairro Cariru
Cidade: Ituporanga-SP......................................Fone: (79)55555555
Problema encontrado: Paciente apresentava constipação.
Quando era necessário saber o número de telefone de um cliente
chamado “Raoni Guimarães Villar de Pinho” era preciso abrir o
PHP & MySql 31
fichário, encontrar a letra R e ir olhando aos poucos onde havia o nome
Raoni. Se fosse preciso saber, em uma escola, se o aluno “Artur Magno
Horta de Abreu” havia repetido alguma série, era preciso verificar as fichas
que continham os históricos escolares, depois procurar pelo histórico do
aluno e ainda procurar nessa ficha se o aluno havia repetido alguma série.
No caso de uma farmácia, saber quais produtos custavam mais que R$ 5,00
seria extremamente difícil, e nada disso era feito.
Atualmente os bancos de dados estão por toda parte, desde a
farmácia da esquina até a lojinha do posto de gasolina.
O que é um Sistema de Gerenciamento de Banco de
Dados?
Um SGBD - Sistema de Gerenciamento de Banco de Dados é uma colecção
de programas que permitem ao usuário definir, construir e manipular Bancos
de Dados para as mais diversas finalidades.
Um SGBD deve possuir as seguintes características:
Controle de Redundâncias - A redundância consiste no armazenamento de
uma mesma informação em locais diferentes, provocando inconsistências.
Em um Banco de Dados as informações só se encontram armazenadas em um
único local, não existindo duplicação descontrolada dos dados. Quando
existem replicações dos dados, estas são decorrentes do processo de
armazenagem típica do ambiente Cliente-Servidor, totalmente sob controle
do Banco de Dados
PHP & MySql 32
Compartilhamento dos Dados -
O SGBD deve incluir software
de controle de concorrência ao acesso dos dados, garantindo em
qualquer tipo de situação a escrita/leitura de dados sem erros.
Controle de Acesso -
O SGDB deve dispor de recursos que
possibilitem seleccionar a autoridade de cada usuário. Assim um usuário
poderá realizar qualquer tipo de acesso, outros poderão ler alguns
dados e actualizar outros, e outros ainda poderão somente acessar um
conjunto restrito de dados para escrita e leitura.
Interfaceamento
- Um Banco de Dados deverá disponibilizar
formas
de acesso gráfico, em linguagem natural, em SQL ou ainda via menus de
acesso, não sendo uma “caixa-preta” somente sendo passível de ser
acessada por aplicações.
Esquematização -
Um Banco de Dados deverá fornecer mecanismos
que possibilitem a compreensão do relacionamento existente entre as
tabelas e sua eventual manutenção.
Controle de Integridade -
Um Banco de Dados deverá impedir
que aplicações ou acessos pelas interfaces possam comprometer a
integridade dos dados.
Cópias de segurança -
O SGBD deverá apresentar facilidade para
recuperar falhas de hardware e software, através da existência de
arquivos de “pré-imagem” ou de outros recursos automáticos, exigindo
minimamente a intervenção de pessoal técnico.
Em certos casos pode ocorrer de um SGBD não obedecer uma ou outra
regra das vistas acima, mas ainda assim continuar sendo considerado um
SGBD. Porém alguns “Bancos de Dados” actualmente comercializados não são
SGBD reais, justamente por não atenderem algumas dessas características.
Php MyAdmin
É uma ferramenta de administração de banco de dados MySql implementada
em PHP com interface web. É bastante amigável e útil para aquele que não
se sente muito confortável com SQL.
Para acessar
a ferramenta digite a seguinte URL no navegador:
http://localhost/phpmyadmin
MySql
É um Sistema de Gerenciamento de Bancos de Dados relacional. Um banco
de dados relacional armazena dados em tabelas separadas em vez de colocar
todos os dados em um só local. Isso proporciona velocidade e flexibilidade.
O MYSQL é um software cujo código fonte é aberto, onde é possível para
qualquer um usar e modificar o programa.
Qualquer pessoa pode fazer download do MySQL pela Internet e usá-lo sem
pagar nada (o MySQL só é cobrado em alguns poucos casos). Se você quiser
pode estudar o código fonte e alterá-lo para adequá-lo às suas
necessidades.
O MySQL usa a GPL (GNU - General Public License Licenca Pública Geral GNU) http://www.fsf.org/licenses, para definir o
que você pode e não pode fazer com o software em diferentes
situações ou se preferir adquirir a versão comercial licenciada.
- O MySQL suporta diferentes plataformas, tais como: Windows,
Linux,
FreeBSD, Unix, entre outros.
Exemplo de Banco de dados
Tabela de DEPARTAMENTO
Nome Número* RG Gerente
Contabilidade 1 10101010
Engenharia Civil 2 30303030
Engenharia Mecânica 3 20202020
Engenharia Elétrica 4 40202020
Há 3 campos na tabela DEPARTAMENTO (nome, número e RG
Gerente), sendo que o campo Número é chave primária (impede que existam
2 registros iguais no banco de dados). A primeira linha possui valores
“Contabilidade”, “1” e “10101010”.
Os nomes das tabelas e dos campos são de fundamental importância
para nossa compreensão entre o que estamos armazenando, onde estamos
armazenando e qual a relação existente entre os dados armazenados.
PHP & MySql
Cada registo de nossa relação será chamado de linha e cada coluna de nossa
relação será chamada de ATRIBUTO.
O esquema de uma relação, nada mais é que os campos (colunas) existentes
em uma tabela. Já a instância da relação consiste no conjunto de valores que
cada atributo assume em um determinado instante. Portanto, os dados
armazenados no Banco de Dados, são formados pelas instâncias das
relações.
As relações não podem ser duplicadas (não podem existir dois estados do
Pará, no conjunto de estados brasileiros, por exemplo), a ordem de entrada
de dados no Banco de Dados não deverá ter qualquer importância para as
relações, no que concerne ao seu tratamento.
Como utilizar a SQL para manipular os bancos de
dados MySQL
O SQL possui comandos que são utilizados para manipular os bancos de
dados, as tabelas e os registros existentes. Para acessar o banco de dados
SQL via terminal (linha de comandos) proceda da seguinte forma:
mysql - -u usuario -p <enter>
digite a senha de acesso ao banco <enter>
mysql: (Neste ponto o banco está pronto para ser usado!)
Comandos SQL
Comando SHOW
Mostra os bancos de dados e tabelas existentes.
Sintaxe:
SHOW DATABASES; (Mostra os bancos de dados existentes no
MySql)
SHOW TABLES; (Exibe as tabelas existentes no banco)
Comando USE
Seleciona um bancos de dados para ser utilizado.
Sintaxe:
USE nome_do_banco;
Comando CREATE
Este comando permite a criação de bancos de dados ou de tabelas
num banco de dados.
Sintaxe:
CREATE DATABASE < nome_db >;
onde: nome_db indica o nome do Banco de Dados a ser criado.
Exemplo:
CREATE DATABASE curso;
Sintaxe:
CREATE TABLE < nome_tabela > (
nome_atributo1 < tipo > [ NOT NULL ],
PHP & MySql 37
nome_atributo2 < tipo > [ NOT NULL ],
......
nome_atributoN < tipo > [ NOT NULL ]
PRIMARY KEY(nome_atributo)
);
onde: nome_tabela indica o nome da tabela a ser criada. nome_atributo:
indica o nome do campo a ser criado na tabela.
tipo: indica a definição do tipo de atributo ( integer(n), char(n), ... ).
PRIMARY KEY: esse é o campo utilizado para que não exista, na tabela,
dois registos iguais.
Ele mantém a integridade do banco de dados. Caso você tente inserir num
banco de dados um registro com uma PRIMARY KEY já existente ele emitirá
uma mensagem de erro e impedirá que o registo seja inserido.
Exemplo:
CREATE table alunos(
codigo int NOT NULL AUTO_INCREMENT,
nome VARCHAR(20) NOT NULL ,
telefone CHAR(8) NOT NULL,
PRIMARY KEY(codigo) );
PHP & MySql 38
Comando INSERT
Adiciona um ou vários registos a uma tabela.
Sintaxe básica:
INSERT INTO destino [campo1, campo2] VALUES (valor1, valor2);
A instrução INSERT INTO possui as partes abaixo:
Destino - O nome da tabela em que os registros devem ser anexados.
campo1, campo2 - Nomes dos campos aos quais os dados devem ser
inseridos.
valor1, valor2 - Valores para inserir nos campos especificados do novo
registo. Cada valor é inserido no campo que corresponde à posição do
valor na lista: Valor1 é inserido no campo1 do novo registro, valor2 no
campo2 e assim por diante. Você deve separar os valores com uma
vírgula e colocar os campos de textos entre aspas (“ ”).
Seguindo o exemplo da tabela funcionários, veja a inclusão dos 2
primeiros registros:
Nome RG CPF Depto. RG Sup. Salário
Pedro 101010101 11111111-21 1 NULO 3000
Fernando 202020202 22222222-20 2 333333333 2700
INSERT INTO funcionarios VALUES ('Pedro', 101010101,
1111111121,1,”,3000);
INSERT INTO funcionarios VALUES ('Fernando', 202020202,1111111120,2,333333333,2700);
PHP & MySql 39
Comando SELECT
Realiza uma seleção de informações existentes nas tabelas.
Sintaxe básica:
SELECT [DISTINCT] expressao [AS nome-atributo]
[FROM from-lista]
[WHERE condicao]
[ORDER BY attr_name1 [ASC | DESC ]]
onde:
DISTINCT: Elimina linhas duplicadas na selecção.
EXPRESSÃO: Define os dados que queremos seleccionar, normalmente uma
ou mais colunas de uma tabela que está em from-lista.
AS nome-atributo: Define um alias (apelido) para o nome da coluna.
FROM: Lista das tabelas onde a pesquisa será feita.
WHERE: Condição para que um registro seja selecionado.
ORDER BY: Critério para ordenação dos registros selecionados.
Utilizando ASC a ordem será crescente, utilizando DESC a ordem
será decrescente.
Where como base das Restrição de linhas
A cláusula “where” restringe a seleção de dados, de acordo com seu
argumento. Contém a condição que as linhas devem obedecer a fim de
serem listadas.
Ela
pode
comparar
valores
em
colunas,
literais,
expressões
aritméticas ou funções.
PHP & MySql
A seguir apresentamos operadores lógicos e complementares a serem
utilizados nas expressões apresentadas em “where”:
Exemplos:
SELECT cidade, estado FROM brasil WHERE populacao > 100000;
Selecionará os campos cidade e estado da tabela brasil de todos os
registos que tiverem valor maior que 100.000 no campo população.
SELECT * FROM cidadao ORDER BY nome DESC;
Selecionará todos os campos da tabela cidadão e utilizará ordenação
decrescente na seleção.
Selecionar quantas pessoas existem cadastradas:
SELECT COUNT(*) FROM funcionarios;
Selecionar quantos funcionários existem no
departamento 3:
SELECT COUNT(*) FROM funcionarios WHERE depto=3;
Seleccionar o nome e o rg dos funcionários que ganham
mais que
3000 reais:
Seleccionar o nome, rg dos funcionários que ganham
mais 3000 reais;
Comando DESCRIBE
Exibe a descrição da tabela.
Sintaxe: DESCREIBE nome_da_tabela;
PHP & MySql 41
Comando DROP
Elimina a definição da tabela, seus dados e referências ou um banco
de dados existente.
Sintaxe:
DROP TABLE nome_da_tabela; (Exclui a tabela)
DROP DATABASE nome_do_banco; (Exclui o banco de dados)
Comando DELETE
Remove registos de uma ou mais tabelas listadas na cláusula
FROM que satisfazem a cláusula WHERE.
Sintaxe:
DELETE FROM tabela WHERE critério;
onde:
TABELA: O nome da tabela de onde os registos serão excluídos
CRITÉRIO: Uma expressão que determina qual registo deve ser
excluído.
O comando DELETE exclui registos inteiros e não apenas dados em
campos específicos.
Se você quiser excluir valores de um campo específico, use o comando
UPDATE que mude os valores dos campos para NULL.
Após remover os registos usando uma consulta DELETE você não
poderá desfazer a operação.
Fazendo a operação:
DELETE FROM funcionarios WHERE salario>7999;
PHP & MySql
(Excluirá da tabela funcionários todos os registos onde o salário é
menor que 7999.)
Comando UPDATE
O comando UPDATE altera os valores de alguns campos de uma tabela
especificada, com base em critérios específicos.
Sintaxe:
UPDATE tabela SET campo1 = valor novo, ... WHERE critério;
Onde:
TABELA: O nome da tabela onde você quer modificar os dados.
VALORNOVO: Uma expressão que determina o valor a ser inserido no
campo do registo que será actualizado.
CRITÉRIO: Uma expressão que determina quais registos devem ser
actualizados. Só os registos que satisfazem a expressão são
actualizados.
O comando UPDATE é bastante útil quando você quer alterar muitos
registos ou quando os registos que você quer alterar estão em várias
tabelas. Você pode alterar vários campos ao mesmo tempo.
Utilizando a cláusula UPDATE é possível alterar os registos da tabela
funcionários, para que os funcionarios que integram o depto 3 passem a
pertencer ao depto 5:
UPDATE funcionarios SET depto=5 WHERE depto=3;
Caso fosse necessário dar um aumento de 20% de salário aos funcionários
que ganham menos de 3000 reais o comando seria o seguinte:
UPDATE funcionarios SET salario=salario+salario*0.2 WHERE
salario;
Utilize os comandos vistos anteriormente para manipular os bancos de
dados:
Roteiro – Criação de Banco de Dados
1. Crie um banco de dados com o comando:
CREATE DATABASE animais;
2. Passe a utilizar o banco de dados animais nas suas consultas:
USE animais;
3. Crie uma tabela chamada PET com os campos nome, dono, especie e
sexo
CREATE TABLE pet (nome VARCHAR (20), dono VARCHAR (20),
especie VARCHAR (20), sexo CHAR (1) );
4. Liste as tabelas do banco:
SHOW TABLES;
5. Obtenha detalhes da tabela:
DESCRIBE pet;
6. Insira algumas entradas nesta tabela:
INSERT INTO pet VALUES ('Pluto', 'Edgar', 'cachorro', 'M');
INSERT INTO pet VALUES ('Rex', 'Carlos', 'cachorro', 'M');
INSERT INTO pet VALUES ('Loro', 'Marisa', 'papagaio', 'F');
PHP & MySql
7. Liste o conteúdo da tabela:
SELECT * FROM pet;
8. Altere uma entrada desta tabela:
UPDATE pet SET dono = 'Carlos' WHERE nome='Rex';
9. Liste novamente todo o conteúdo da tabela, e verifique o que foi
alterado
10. Faça uma consulta mais sofisticada:
SELECT * FROM pet WHERE (especie=“cachorro” AND sexo=“M”) OR
(especie=“papagaio” AND sexo=“F”);
11. Especifique as colunas que quer observar em sua consulta:
SELECT especie, nome FROM pet;
12. Remova uma entrada desta tabela:
DELETE FROM pet WHERE nome='Pluto';
13. Remova a tabela
DROP TABLE pet;
14. Remova o banco:
DROP DATABASE animais;
Estabelecendo conexões entre PHP e MySql
Para acessar bases de dados num servidor MySQL, é necessário
antes estabelecer uma conexão. Para isso, deve ser utilizado o comando
mysql_connect:
int mysql_connect(string [host[:porta]], string [login], string [senha]);
PHP & MySql
O valor de retorno é um inteiro que identifica a conexão, ou falso se a
conexão falhar.
Antes de tentar estabelecer uma conexão, o interpretador PHP verifica se
já existe uma conexão estabelecida com o mesmo host, o mesmo login e a
mesma senha. Se existir, o identificador desta conexão é retornado. Senão,
uma nova conexão é criada.
Uma conexão estabelecida com o comando mysql_connect é encerrada ao
final da execução do script. Para encerrá-la antes disso deve ser utilizado o
comando mysql_close, que tem a seguinte assinatura:
int mysql_close(int [identificador da conexão]);
Se o identificador não for fornecido, a última conexão estabelecida será
encerrada.
Seleccionando a base de dados
Depois de estabelecida a conexão, é preciso seleccionar a base de dados a
ser utilizada, através do comando mysql_select_db, que segue o seguinte
modelo:
int mysql_select_db(string base, int [conexao]);
Novamente, se o identificador da conexão não for fornecido, a última
conexão estabelecida será utilizada.
PHP & MySql
Realizando consultas
Para executar consultas SQL no MySQL, utiliza-se o comando mysql_query,
que tem a seguinte assinatura:
int mysql_query(string query, int [conexao]);
Onde query é a expressão SQL a ser executada, sem o ponto-evírgula no
final, e conexão é o identificador da conexão a ser utilizada.
A consulta será executada na base de dados seleccionada pelo comando
mysql_select_db.
É bom lembrar que uma consulta não significa apenas um comando SELECT.
A consulta pode conter qualquer comando SQL aceito pelo banco.
O valor de retorno é falso se a expressão SQL for incorrecta, e
diferente de zero se for correcta. No caso de uma expressão SELECT, as
linhas retornadas são armazenadas numa memória de resultados, e o
valor de retorno é o identificador do resultado. Alguns comandos podem ser
realizados com esse resultado:
Apagando resultados
O comando mysql_free-result deve ser utilizado para apagar da
memória o resultado indicado. int mysql_free_result(int result);
PHP & MySql
Número de linhas
O comando mysql_num_rows retorna o número de linhas contidas num
resultado.
int mysql_num_rows(int result);
Utilizando os resultados
Existem diversas maneiras de ler os resultados de uma query
SELECT. As mais comuns serão vistas a seguir:
int mysql_result(int result, int linha, mixed [campo]);
Retorna o conteúdo de uma célula da tabela de resultados.
RESULT é o identificador do resultado;
LINHA é o número da linha, iniciado por 0;
CAMPO é uma string com o nome do campo, ou um número
correspondente ao número da coluna. Se foi utilizado um alias na
consulta, este deve ser utilizado no comando mysql_result.
Este comando deve ser utilizado apenas para resultados pequenos.
Quando o volume de dados for maior, é recomendado utilizar um dos
métodos a seguir:
array mysql_fetch_array(int result);
Lê uma linha do resultado e devolve um array, cujos índices são os
nomes dos campos. A execução seguinte do mesmo comando lerá a
próxima linha, até chegar ao final do resultado.
array mysql_fetch_row(int result);
Semelhante ao comando anterior, com a diferença que os índices do
array são numéricos, iniciando pelo 0 (zero).
CRUD – (Create, Read, Update e Delete)
Conceito para criação, consulta, alteração e exclusão de registos
feitos em um projecto de banco de dados relacional.
Exemplo:
formulario.php
<html>
formulario.php
<html>
<head> <title> CRUD</title>
</head>
<body>
<h4>Inserir</h4>
<form action="inserir.php" method="post" name="teste">
Nome.: <input name="nome" type="text" size="10"
maxlength="10">
Sobrenome:<input name="sobrenome" type="text"
size="10" maxlength="10">
<input name="enviar" type="submit" value="Confirmar">
</form>
<hr>
<h4>Procurar</h4>
<form action="procurar.php" method="post" name="teste">
Nome.: <input name="nome" type="text" size="10"
maxlength="10">
<input name="enviar" type="submit" value= "Confirmar">
</form>
<hr>
<h4>Alterar</h4>
<form action="alterar.php" method="post" name="teste">
Nome.: <input name="nome" type="text" size="10"
maxlength="10">
<input name="enviar" type="submit" value= "Confirmar">
</form>
<hr>
<h4>Deletar</h4>
<form action="deletar.php" method="post" name="teste">
Nome.: <input name="nome" type="text" size="10"
maxlength="10">
<input name="enviar" type="submit" value="Confirmar">
</form>
</body>
</html>
PHP & MySql
inserir.php
procurar.php
<?
$nome = $_POST[nome];
$sobrenome = $_POST[sobrenome];
$conectar=mysql_connect("localhost","treinamento","treinam
ento");
$declar = "SELECT * from teste WHERE nome = '$nome'";
$consulta = mysql_db_query ("teste", $declar, $conectar)
or die ("Erro no acesso ao banco");
$valor = mysql_fetch_array($consulta);
PHP & MySql
alterar.php
echo "<b>ID</b>.: ". $valor["id"] . "<br>";
echo "<b>Nome</b>.: ". $valor["nome"] . "<br>";
echo "<b>Sobrenome</b>.:". $valor["sobrenome"] .
"<br>";
echo ("<BR>");
echo ("<b> <a href=\"formulario.php\">Voltar</a>
</b> </center>");
?>
<?
$nome = $_POST[nome];
$sobrenome = $_POST[sobrenome];
$conectar=mysql_connect("localhost","treinamento","treinamento");
$declar = "SELECT * from teste WHERE nome = '$nome'";
$consulta = mysql_db_query ("teste", $declar, $conectar)
or die ("Erro no acesso ao banco");
$valor = mysql_fetch_array($consulta);
echo "<
echo "<form method=\"post\" action=\"alterar2.php\">";
echo "<input type=\"HIDDEN\" name=\"id\" value=" .
$valor["id"] .">";
echo "<input type=\"text\" name=\"nome\" value=" .
O QUE É PHP? .................................................................................................................................. 2
PHP & MYSQL .................................................................................................................................. 14
$valor["nome"] .">";
PHP & MySql
alterar2.php
echo "<input type=\"text\" name=\"sobrenome\" value=" .
$valor["sobrenome"]." />";
echo "<input type=\"submit\" value=\"Alterar\">";
echo "</form>";
?>
alterar2.php
echo "<input type=\"text\" name=\"sobrenome\" value=" .
$valor["sobrenome"]." />";
echo "<input type=\"submit\" value=\"Alterar\">";
echo "</form>";
?>
<?
$id = $_POST[id];
$nome = $_POST[nome];
$sobrenome = $_POST[sobrenome];
$conectar=mysql_connect("localhost","treinamento","treinam
ento");
$declar=" UPDATE teste SET sobrenome='" . $sobrenome . "',
nome='" .$nome. "' WHERE id='" . $id . "'";
$consulta = mysql_db_query ("teste", $declar, $conectar)
or die ("Erro no acesso ao banco");
echo "<center>Alteração Efetuada!";
echo ("<BR>");
echo ("<b> <a href=\"formulario.php\">Voltar</a></b> </center>");
PHP & MySql
deletar.php
<?
$nome = $_POST['nome'];
$sobrenome = $_POST['sobrenome'];
$conectar=mysql_connect("localhost","treinamento","treinam
ento");
$declar = "SELECT * from teste WHERE nome = '$nome'";
$consulta= mysql_db_query ("teste", $declar, $conectar) or
die ("Erro no acesso ao banco");
$encontrados = mysql_num_rows($consulta);
if ($encontrados > 0){
$deletar = "DELETE from teste where nome = '$nome'";
if (mysql_db_query ("teste", $deletar, $conectar)) {
echo ("<BR>");
echo ("<center> <b> <font size = 4> Exclusão
Efetuada </font> </b> </center>");
echo ("<BR>");
echo("<center><b><a href=\"formulario.php\">Voltar
</a> </b> </center>");
}else {
echo ("<BR><BR>");
echo ("<center> <b> <font size = 4> Erro:
Exclusão não Efetuada </font> </b>
</center>");
echo ("<BR><BR>");
echo
("<center>
<b>
<a
href=\"formulario.php\">Voltar</a>
</b>
</center>");
PHP & MySql
Projecto
Criaremos um site dinâmico utilizando a linguagem PHP e o servidor de
banco de dados MySQL. O objectivo desse site será a localização de
funcionários dos Telecentros. Fazendo-se uma busca pelo nome do
funcionário, serão disponibilizadas informações como:
cargo, telefone e e-mail. O site permitirá inclusão, consulta, alteração e
exclusão de dados.
1 - Criação da base de dados e tabelas.
Utilizando o servidor de banco de dados MySQL, o primeiro passo
será definir a base de dados e as tabelas em que você guardará as
informações. Você pode criar a estrutura de dados diretamente no
MySQL, seguindo o roteiro abaixo:
Roteiro:
PHP & MySql
1. Abra o navegador de sua preferência.
2. Digite o endereço “http://localhost/phpmyadmin”. (pergunte ao
instrutor qual usuário e senha você deve utilizar).
3. Crie uma base de dados no MySQL, que conterá as tabelas a serem
utilizadas no projecto. Os passos são:
No campo “Criar nova base de dados” digite “telecentros” em seguida
clique em “Criar”. (Onde ''telecentros'' é o nome do banco de dados.)
PHP & MySql
4. Deverá aparecer a tela de confirmação.
Agora você já pode pensar nas tabelas que serão necessárias neste
projecto. Para facilitar, você irá utilizar uma única tabela, chamada
“alunos”.Coloque no campo “Nome” do item “Criar nova tabela na base
de dados telecentros”, “alunos” e no campo “Number of fields:” o
número “4” e clique em “Executa”.
Tipos de Campos
varchar(N) - É um campo texto variável de no máximo N caracteres.
Integer - É um inteiro padrão.
char(N) -É um campo texto com exactamente N caracteres.
Text - É um campo texto com no máximo 65535 caracteres.
Date - É um campo data no formato ''AAAA-MM-DD''.
Not null -Significa que o campo não pode ser nulo.
Primary key - Significa que é um campo chave.
PHP & MySql 57
- Insira as informações mostradas abaixo e clique em “Guarda”.
- Deverá aparecer a tela de confirmação contendo as
informações abaixo.
PHP & MySql 58
2 - Criação da home page do site
A página principal (homepage) do site será bastante simples e trará um
menu com as opções de inclusão, consulta, alteração e exclusão. As opções
terão links para seus respectivos módulos. Essa página inicial terá a
extensão .html e será criada utilizando-se o
BlueFish. O BlueFish é uma ferramenta entre outras de desenvolvimento
para Web.
Roteiro:
1. Pressione as teclas <Alt> + <F2>.
2. Digite: Bluefish. Veja a figura abaixo.
3. Clique no botão Executar. Será exibida a tela do Bluefish.
4. Clique no menu Arquivo.
5. Escolha a opção Novo.
Digite as seguintes opções de menu: Inclusão, Consulta,
Alteração, Exclusão e Sair. Transforme as opções do menu em links e
direccione para seus respectivos endereços:
inclusao.html,
sair.html.
consulta.html,
alteracao.html,
exclusao.html,
e
Salve a página como index.html no directório indicado pelo instrutor.
PHP & MySql
3
- Módulo de Inclusão
Você irá criar a página para o formulário de inclusão. Você irá digitar
o código utilizando o Bluefish ou um editor de texto qualquer.
Esse arquivo terá extensão .html .
3.1)
Formulário inclusao.html
Após digitar o código, salve-o e teste-o. Veja a figura abaixo:
PHP & MySql
Quando o formulário for submetido, dará um erro, alertando que o
programa inclusao.php, para o qual você está encaminhando os dados não
existe. Então, você precisa criá-lo. Observe que a próxima página não terá
mais a extensão html e sim php, pois o código vai conter programação PHP.
Dica:
Quando o servidor recebe a requisição de uma página HTML, ele
apenas envia a página requisitada. Por outro lado, quando a requisição é de
uma página com extensão PHP, o servidor processa o código antes de enviála. Pode-se combinar os códigos HTML e PHP.
3.2) Programa inclusão.php
O programa "inclusao.php" vai tratar os dados recebidos através do
formulário, incluindo-os no banco de dados.
PHP & MySql 62
Dicas: No código referente ao programa "inclusão.php", você utilizará
algumas funções do PHP:
Trim: retira os espaços em branco de uma variável.
A expressão or die pode ser usada como uma alternativa para o
if/else.
<?
include ('conect.php');
$nome = $_POST['nome'];
$email = $_POST['email'];
$cargo = $_POST['cargo'];
$telefone = $_POST['telefone'];
if ($res1)
{
$sql = "insert into $table "." (nome, email, cargo,
telefone)"."values('$nome','$email','$cargo',
'$telefone')";
$res2 = mysql_db_query($bdConect, $sql, $res1);
if ($res2)
{
echo("<BR><BR>");
echo("<center><b><font size = 4>Inclusão
Efetuada</font></b></center>");
echo("<BR>");
echo("<center><b> <a href=\"inclusao.html\">Voltar
</a></b></center>");
}
else
{
echo("Erro de inclusão ".mysql_error()."\n");
echo("<center> <b> <a href=\"index.html\">Voltar</a>
</b></center>");
}
PHP & MySql
}
else
{
echo("Erro de conexão ".mysql_error()."\n");
}
mysql_close($res1);
?>
3.3) Testando o módulo de inclusão
Roteiro:
1. Abra o navegador de sua preferência e digite o seguinte endereço
do site:
http://localhost/<endereço>/index.html
onde <endereço> será o local indicado pelo instrutor.
2. No menu da página principal, clique na opção Inclusão.
3. Deixe os campos do formulário em branco. Clique em Enviar. Deverá
mostrar uma mensagem de erro. O único campo que não é obrigatório
é o e-mail.
4. Preencha o formulário com os dados do funcionário: nome completo,
cargo, telefone e e-mail.
5. Clique em Enviar. Deverá mostrar a mensagem "Inclusão
Efectuada".
6. Volte para a página do formulário e entre com outros dados, só que
desta vez entre com um nome que já existe no banco de dados.
7. Clique em Enviar. Deverá mostrar a mensagem "Inclusão não
efectuada", pois o campo nome é chave e não aceita valores
duplicados.
8. Insira 3 funcionários.
4
- Módulo de Consulta
Você irá criar a página com o formulário de consulta.Veja a figura
abaixo:
4.1)Formulário
consulta.html
Quando o formulário for submetido, dará um erro, alertando que
o programa consulta.php, para o qual você está encaminhando os dados
não existe. Então, você precisa criá-lo.
4.2)
Programa consulta.php
O programa consulta.php vai receber o nome do formulário, pesquisar
no banco de dados e mostrar as informações referentes ao aluno.
Dicas:
No código referente ao programa consulta.php, você utilizará mais
algumas funções do PHP:
FILE: Lê um arquivo, retornando o seu conteúdo como um array. Cada
linha do arquivo será representada por um elemento do array.
IMPLODE: Armazena todo o conteúdo de um array como uma string,
concatena os conteúdos de cada elemento do array em uma string,
utilizando ou não um delimitador entre eles.
STR_REPLACE: Vai ler uma string e substituir um determinado valor
por outro. No nosso caso, essa função substituirá a expressão
"<!mensagem>", contida no código do "consulta.html", por uma
mensagem de erro. Portanto, não se esqueça de colocar no html a
expressão a ser substituída (como comentário).
mysql_num_rows: obtém o número de registos que retornou do select.
mysql_fetch_row: obtém os campos do registo que retornou do
select.
PHP & MySql
<?php
include_once ('conect.php');
?>
<html>
<head>
<title>Consulta</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<div id="conteudo">
<div id="tudo">
<?
$nome= $_POST['nome'];
$declar = "SELECT * from $table WHERE nome = '$nome'";
$res2 = mysql_db_query ($bdConect, $declar, $res1) or die
("Erro no acesso ao banco");
$valor = mysql_fetch_array($res2);
if ($res1)
{
?>
<br><br><br>
<table width="650" border="0" cellspacing="0"
align="center">
<tr>
<td colspan="2"><img src="cabecalho.jpg"
width="100%" height="100" border="0" alt="">
</td>
</tr>
<tr valign="top">
<td>
<h3>Dados Pessoais</h3>
Nome.: <?echo("$nome")?><br>
Cargo.:<?=$valor["cargo"]?><br>
Email.: <?=$valor["email"]?><br>
Tel.: <?=$valor["telefone"]?>
</table>
PHP & MySql
<center><a href="index.html">Voltar</a></center>
<?
}
else
{
echo("Aluno não encontrado");
}
mysql_close($res1);
?>
</body>
</html>
4.3) Testando o módulo de consulta
Roteiro:
1. Abra o Mozilla e digite o seguinte endereço do site:
http://localhost/<endereço>/index.html
2. No menu da página principal, clique na opção Consulta.
3. Deixe o campo nome do aluno em branco e clique em Enviar. Deverá
aparecer uma mensagem de erro.
4. Preencha o formulário com um nome de aluno inexistente e clique
em enviar. Deverá aparecer a seguinte mensagem "Aluno não
cadastrado".
PHP & MySql 68
5. Preencha o formulário com um nome de aluno válido e clique em
enviar. Deverá mostrar os dados do aluno. Veja a figura abaixo:
5
- Módulo de Exclusão
Você irá criar a página com o formulário de exclusão. Veja a figura
abaixo:
5.1)
Formulário exclusao.html
PHP & MySql
Quando o formulário for submetido, dará um erro, alertando que o
programa exclusao.php, para o qual você está encaminhando os
dados, não existe. Então, você precisa criá-lo.
5.2)
Programa exclusao.php
<?php
include_once ('conect.php');
?>
<html>
<head>
<title>Exclusao</title>
</head>
<body bgcolor="#FFFFFF">
PHP & MySql
<?php
$nome = $_POST['nome'];
$nome = trim($nome);
if (empty($nome))
{
$html = file("exclusao.html");
$html = implode(" ",$html);
$erro = "<center><font color=\"#FF0000\"> Preencha o campo
<b>Nome</b></font></center>";
$html = str_replace("<!mensagem>",$erro,$html);
echo ($html);
}
else
{
echo ("<p><center><img src=\"cabecalho.jpg\" width=\"745\"
height=\"100\"></center></p>");
$declar = "SELECT nome from $table where nome = '$nome'";
$query = mysql_db_query ($bdConect, $declar, $res1) or die
("Erro no acesso ao banco");
$achou = mysql_num_rows($query);
if ($achou > 0)
{
echo ("<BR><BR>");
echo ("<center> Aluno: $nome </center>");
echo ("<BR>");
$declar2 = "DELETE from $table where nome =
'$nome'";
if (mysql_db_query ($bdConect, $declar2, $res1))
{
echo ("<BR><BR>");
echo ("<center> <b> <font size = 4> Exclusão
Efetuada</font></b></center>");
echo ("<BR><BR>");
echo ("<center> <b> <a
href=\"exclusao.html\">Voltar</a> </b> </center>");
}
else
{
<?php
$nome = $_POST['nome'];
$nome = trim($nome);
if (empty($nome))
{
$html = file("exclusao.html");
$html = implode(" ",$html);
$erro = "<center><font color=\"#FF0000\"> Preencha o campo
<b>Nome</b></font></center>";
$html = str_replace("<!mensagem>",$erro,$html);
echo ($html);
}
else
{
echo ("<p><center><img src=\"cabecalho.jpg\" width=\"745\"
height=\"100\"></center></p>");
$declar = "SELECT nome from $table where nome = '$nome'";
$query = mysql_db_query ($bdConect, $declar, $res1) or die
("Erro no acesso ao banco");
$achou = mysql_num_rows($query);
if ($achou > 0)
{
echo ("<BR><BR>");
echo ("<center> Aluno: $nome </center>");
echo ("<BR>");
$declar2 = "DELETE from $table where nome =
'$nome'";
if (mysql_db_query ($bdConect, $declar2, $res1))
{
echo ("<BR><BR>");
echo ("<center> <b> <font size = 4> Exclusão
Efetuada</font></b></center>");
echo ("<BR><BR>");
echo ("<center> <b> <a
href=\"exclusao.html\">Voltar</a> </b> </center>");
}
else
{
PHP & MySql
echo ("<BR><BR>");
echo ("<center><b><font size = 4> Erro na
Exclusão não
Efetuada</font></b></center>");
echo mysql_error();
echo ("<BR><BR>");
echo ("<center><b><a href=\"exclusao.html\">
Voltar</a></b></center>");
}
}
else
{
echo ("<BR><BR>");
echo ("<center><b>Aluno
cadastrado</b></center>");
echo ("<BR><BR>");
echo ("<center><b><a href=\"exclusao.html\">
Voltar</a></b></center>");
}
mysql_close ($res1);
}
?>
</body>
</html>
5.3)
Testando o módulo de exclusão
Roteiro:
1. Abra o navegador e digite o seguinte endereço do site:
http://localhost/<endereço>/index.html
2. No menu da página principal, clique na opção Exclusão.
3. Deixe o campo nome do aluno em branco e clique em Enviar. Deverá
aparecer uma mensagem de erro.
4. Preencha o formulário com o nome completo do aluno e clique em
Enviar. Deverá aparecer a mensagem "Exclusão efectuada".
PHP & MySql
5. Preencha o formulário com o nome do aluno que você acabou de excluir e
clique em Enviar. Deverá mostrar a mensagem "Aluno não cadastrado".
6-
Módulo de Alteração
6.1)
Formulário alteraçao.html
Você irá criar a página com o formulário de alteração. Veja a
figura abaixo:
Quando o formulário for submetido, dará um erro, alertando que o
programa "alteracao.php", para o qual você está encaminhando os dados, não
existe. Então, você precisa criá-lo.
PHP & MySql 73
6.2) Programa alteracao.php
O programa alteracao.php vai receber o dado do formulário,
recuperar as informações do banco de dados e mostrá-las num
formulário para que elas sejam alteradas. Para montar o formulário,
você criará uma função em PHP.
<?php
include_once ('conect.php');
?>
<html>
<head>
<title>Consulta</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<?
$aluno = $_POST['aluno'];
$declar = "SELECT * from $table WHERE nome = '$aluno'";
$res2 = mysql_db_query ($bdConect, $declar, $res1) or die
("Erro no acesso ao banco");
$valor = mysql_fetch_array($res2);
if ($res1)
{
?>
<br><br><br>
<table width="650" border="0" cellspacing="0"
align="center">
<tr>
<td colspan="2"><img src="cabecalho.jpg"
width="100%" height="100" border="0" alt="">
</td>
</tr>
<tr valign="top">
<td><h3>Dados Pessoais</h3>
<form name="alunos" method="post" action="alteracao2.php">
PHP & MySql 74
6.3) Programa conect.php
O programa "conect.php" armazena todos os parâmetros de conexão
com o banco de dados. Nele, contém informações como:
usuário e senha do banco de dados, nome do banco e tabela a ser
utilizada em todos os scripts.
<input type="hidden" name="id_seq"
value="<?=$valor["id"];?>">
<font size="2">Nome.: <input type="text"
name="aluno" maxlength="50" size="50"
value="<?=$valor["nome"]?>"><br>
Email.: <input type="text" name="email"
maxlength="45" size="45" value="<?=$valor["email"]?>"
><br>
Cargo.:<input type="text" name="cargo"
maxlength="20" value="<?=$valor["cargo"]?>"><br>
Telefone.: <input type="text" name="telefone"
maxlength="9" size="10"
value="<?=$valor["telefone"]?>"><br>
<center><input type="submit" name="alterar"
value="Alterar"></center>
</form>
</table>
<?
}
else
{
echo("não encontrado");
}
mysql_close($res1);
?>
</body>
</html>
6.3)
Programa conect.php
O programa "conect.php" armazena todos os parâmetros de conexão com o
banco de dados. Nele, contém informações como: usuário e senha do banco
de dados, nome do banco e tabela a ser
utilizada em todos os scripts.
PHP & MySql
<?
$res1 = mysql_connect ("localhost", "php", "1234");
$bdConect = "curso";
$table = "tc_alexandre"
?>
Observe que o programa alteracao.php chama o programa
alteracao2.php. Isso porque, para você completar o módulo de alteração
precisará de mais um programa que pegue as informações que foram
alteradas e as inclua no banco de dados.
Observação:
Como o campo nome não é passado para o programa
alteracao2.php, por não se tratar de uma variável do formulário,
temos que passá-lo como um campo escondido input type="hidden".
6.4)
Programa alteracao2.php
O programa "alteracao2.php" vai pegar as informações alteradas e
fazer um update (atualizar) no banco de dados.
<?
include ('conect.php');
$aluno = $_POST['aluno'];
$cargo = $_POST['cargo'];
$telefone = $_POST['telefone'];
$email = $_POST['email'];
if ($res1)
{
$sql = "update $table set
nome = '$aluno',
PHP & MySql
cargo = '$cargo',
telefone = '$telefone',
email = '$email'";
$res2 = mysql_db_query($bdConect, $sql, $res1);
if ($res2)
{
?>
<html>
<head>
<title>Alteracao</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<?php
echo("<br><br><br><br><br>");
echo("<center>O Aluno <b>" . $aluno ."</b><br>Foi
Alterado com sucesso! </center>");
echo("<br><br>");
echo("<center><b><a href=\"index.html\">Voltar</a>
</b></center>");
echo("<br><br><br>");
?>
<?php
}
else
{
echo("Erro na alteração ".mysql_error()."\n");
echo("<center><b><a href=\"index.html\">Voltar</a>
</b></center>");
echo("<br><br><br>");
}
}
else
{
echo("Erro na tentativa de conexão
".mysql_error()."\n");
}
mysql_close($res1);
?>
PHP & MySql
6.5) Testando o módulo de alteração
Roteiro:
1. Abra o navegador de sua preferência e digite o seguinte endereço
do
site:
http://localhost/<endereço>/index.html
2. No menu da página principal, clique na opção Alteração.
3. Deixe o campo nome do aluno em branco e clique em Enviar. Deverá
aparecer uma mensagem de erro.
4. Preencha o formulário com um nome de aluno que não existe e
clique
em
Enviar.
Deverá
mostrar
a
mensagem
"Aluno
não
cadastrado".
5. Preencha o formulário com um nome de aluno válido e clique em
Enviar. Será mostrado um formulário com os dados desse aluno.
6. Altere alguns campos e clique em Enviar. Deverá mostrar a
mensagem "Alteração efetuada".
7. Entre no módulo de consulta e confira se os dados foram realmente
alterados.
8 - Criação da página sair.html
A página sair.html é utilizada no nosso site apenas para agradecer
ao usuário por utilizar o sistema. Utilize o Quanta Plus para criar uma
página simples que agradece ao usuário pelo uso do sistema, e salve-a
com o nome de sair.html.
PHP & MySql 78
Respostas dos exercícios de lógica
1. Resposta: 9
2. Resposta: 28 dias.
3. Resposta: Pergunta: se eu perguntar ao seu colega, qual a porta
certa, qual é que ele me indica? Seja qual for o guarda inquirido, serme-á respondido “ a porta errada”.
Suponhamos a que a porta certa é a “A”.
• Se eu perguntasse ao guarda verdadeiro, ele indicaria a porta
correcta: “porta A”. Mas o mentiroso diria que o colega me indicaria:
“porta B”.
• Se eu perguntasse ao guarda mentiroso, ele diria a porta
errada: “porta B” e o guarda verdadeiro diria o que o colega
me indicaria: “porta B”.
4.
Plano de aula
1ª aula
- Apresentação da turma;
- Lógica de programação;
* Sequência lógica;
* Exercícios de lógica:
- Exercício retângulo;
- Exercício “lesma”;
- Exercício “O prisioneiro”;
- Exercício “Teste dos 4 pontos.
-
PHP
* Definição de PHP;
* Em que consiste uma página dinâmica;
* Comunicação cliente x servidor;
* Delimitando o código PHP;
- Exercício 01
* Comentários no PHP;
-
Exercício 02
2ª aula
- Variáveis (Definição)
- Exercício 03
* Tipos de dados suportados;
- Integer
- Double
PHP & MySql 80
- String
* Exercício 04;
* Exercício 05;
- Booleano
- Array
- Objeto
- Caractere de Escape
- Exercício 06
- Operadores
* Aritmético
* String
-
Exercício 07
* Atribuição
-
Exercício 08
* Incrementação
* Lógicos
* Comparação
3ª aula
- Integrando o PHP ao HTML
* Métodos GET e POST
- Exercício 09
- Estruturas de controle
* IF
- Exercício 10
PHP & MySql 81
* Else
-
Exercício 11
* Elseif
-
Exercício 12
4ª aula
- Laços
* While
- Exercício 13
* For
- Exercício 14
- Include
* Exercício 15
-
Array
* Exercício 16
- Listas
- Exercício 17
5ª aula
- MySql – Banco de dados
- Popularização dos Bancos de Dados
- O que é um Sistema de Gerenciamento de Banco de
Dados?
- PhpMyAdmin (Apresentação)
- MySql
- Como utilizar a SQL para manipular os bancos de dados
PHP & MySql 82
MySQL?
* Acesso ao Banco de dados via terminal (contruir o banco
conforme roteiro na página 42.
-Comandos
SQL:
* Comando SHOW
* Comando USE
* Comando CREATE
*Comando INSERT
* Comando SELECT
* Comando DESCRIBE
* Comando DROP
* Comando DELETE
* Comando UPDATE
- Reteiro – Criação de Banco de Dados (Usando o
terminal)
- Criar o mesmo Banco de Dados (Usando o PHPMyAdmin)
6ª aula
- Estabelecendo conexões entre PHP e MySql
- Selecionando a base de dados
- Realizando consultas
- Apagando resultados
- Número de linhas
- Utilizando os resultados
PHP & MySql 83
7ª aula
- Explicação de exercício preparatório para o projeto
(CRUD)
- Elaboração do exercício - (CRUD)
8ª aula
- Projecto final: Desenvolvimento
para
elaboração do projecto.
do tema (escolhido pela turma)
- Elaboração do projecto
9ª aula
- Elaboração do projecto
10ª aula
- Finalização do projecto
PHP & MySql 84
Bibliografia
PHP – Programando com orientação a objectos; Novatec; Pablo
Dall'Oglio; 2007.
Curso de Aplicações Web em PHP; Maurício Vivas.
Sistema de Banco de Dados; Henry F. Korth, Abraham Silberschatz;
Makro Books; 1995.
www.php.net
www.mysql.com
Download