Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases...

96
Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica e versátil. 1

Transcript of Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases...

Page 1: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

Apresentação

Este módulo permitirá aos alunos

desenvolveram aplicações web com

acesso a bases de dados,

disponibilizando a informação de uma

forma dinâmica e versátil.

1

Page 2: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

Objectivos

Com este módulo pretende-se que o aluno seja capaz de:

compreender e enumerar as necessidades de se desenvolverem aplicações com recurso a bases de dados remotas

utilizar a linguagem de script na ligação remota a bases de dados

criar sites dinâmicos e versáteis recorrendo a uma linguagem de script e a bases de dados

2

Page 3: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

Conteúdos

Estrutura da linguagem de script Manipulação de dados com a linguagem de

script Ligação a bases de dados Expressões SQL; Interacção dos resultados das consultas com o

código da linguagem de script Fases de desenvolvimento de uma aplicação

com recurso a bases de dados

3

Page 4: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

CONDIÇÕES NECESSÁRIAS PARA ACESSO A UMA BASE DE DADOS REMOTA (VIA WEB)

4

Pedido2

Lado do cliente

Páginas Web interactivas

Páginas Web interactivas

Resposta

Cliente WWWCliente WWW

Web ServerWeb Server

(Apache; IIS; etc.)

(Apache; IIS; etc.)

Interpretador de PHP Sistema de Gestão

de Bases de Dados: MySQL;

Oracle; etc.

1

Lado do Servidor

3

456

Acesso a uma Base de Dados

Resposta ao pedido

Bases de Dados

Page 5: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

Fases do processo de consulta a uma base de dados via web

5

A figura anterior mostra-nos uma representação

esquemática do funcionamento de uma

consulta a uma base de dados via web com

scripts PHP. Esse processo passa pelas

seguintes fases:

Page 6: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

Fases do processo de consulta a uma base de dados via web

6

1. O web browser ou cliente web (por exemplo, o lnternet Explorer) envia um pedido, através de um formulário, para acesso a uma base de dados ligada a um servidor web.

2. O servidor web recebe a comunicação dos dados do formulário (pelo método Post ou Get), deteta a indicação de um script PHP (no atributo action do formulário) e chama esse script para que ele processe os dados.

Page 7: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

Fases do processo de consulta a uma base de dados via web

7

3. O interpretador de PHP faz a interpretação do script mencionado e deteta um pedido de ligação a um sistema de bases de dados; se a ligação for efetivada, envia-lhe um comando SQL a executar na base de dados em causa.

4. O servidor de bases de dados (por exemplo, MySQL) recebe o comando SQL, executa-o na base de dados visada e, se houver resultados a devolver, esses resultados são enviados ao interpretador de scripts PHP.

Page 8: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

Fases do processo de consulta a uma base de dados via web

8

5. O interpretador de scripts PHP recebe os resultados enviados pelo servidor da base de dados e prepara esses resultados para os entregar ao servidor web.

6. O servidor web recebe os dados do interpretador de PHP, insere-os num documento HTML ou página web e envia essa informação ao cliente (web browser) que a solicitou.

Page 9: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

Fases do processo de consulta a uma base de dados via web

9

Vejamos agora os passos ou etapas que um

programador deste tipo de serviços web deve

ter em conta ao escrever scripts PHP para

interagir com bases de dados:

Page 10: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

Fases do processo de consulta a uma base de dados via web

10

1. Captar os dados enviados com o formulário do utilizador e verificar se esses dados satisfazem os requisitos necessários.

2. Estabelecer uma ligação com o sistema de bases de dados que estiver a ser utilizado.

3. Elaborar e aplicar um determinado comando SQL.4. Preparar os dados obtidos do servidor da base de

dados para os passar ao servidor web num formato compatível com HTML e uma boa apresentação para o cliente que os vai receber.

Page 11: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

Preparar uma base de dados no MySQL para acesso com PHP

11

Neste módulo, vamos criar uma aplicação para

exemplificar como se acede a uma base de dados no

MySQL através de scripts em PHP.

Para isso vamos começar por recordar como se cria

uma base de dados no MySQL.

Page 12: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

Preparar uma base de dados no MySQL para acesso com PHP

12

As figuras seguintes mostram as operações principais

para criarmos uma base de dados chamada Pessoal

com uma tabela chamada Contactos.

Nos exercícios que vamos apresentar nas próximas

páginas, vamos usar apenas esta tabela.

Page 13: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

Preparar uma base de dados no MySQL para acesso com PHP

13

A instrução Create Database Pessoal dá início à criação

da base de dados com o nome Pessoal. E a instrução

Use Pessoal permite-nos trabalhar com essa base de

dados.

Page 14: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

Preparar uma base de dados no MySQL para acesso com PHP

14

A seguinte instrução cria a tabela Contactos (com os

campos Nome, Telef e Email):

Create Table Contactos

(Nome varchar(20) Primary Key,

Telef Varchar(9),

Email Varchar(30) );

Page 15: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

Preparar uma base de dados no MySQL para acesso com PHP

15

O campo Nome está definido como chave primária

para evitar dois nomes iguais.

Page 16: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

Preparar uma base de dados no MySQL para acesso com PHP

16

A seguinte instrução insere, na tabela Contactos, um conjunto de três registos:

Insert Contactos Values

(‘Abel’ , ‘912345678’, ‘[email protected]’) ,

(‘Bela’, ‘923456789’ , ‘[email protected]’) ,

(‘Dina’, ‘960123456’, ‘[email protected]’);

Page 17: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

Preparar uma base de dados no MySQL para acesso com PHP

17

Page 18: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

18

Procurar.phpProcurar.php

Listar.phpListar.php

Inserir.php

Inserir.phpInserir.php

Remover.html

Remover.phpRemover.php

Página de entrada

Nome:

ListarInserir

Remover

Procurar

Esquema global de uma aplicação para interagir com uma base de dados através dos scripts PHP.

Page 19: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

Esquema global de uma aplicação para interagir com uma base de dados através dos scripts PHP.

19

Legenda:

Form action

Link HTML

Procurar.phpProcurar.php

Remover.html

Script PHP

Formulários HTML

Page 20: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

DESENVOLVIMENTO DE UMA APLICAÇÃO PARA ACESSO REMOTO A UMA BASE DE DADOS

20

Neste capítulo, vamos desenvolver uma aplicação para

acesso remoto (via web) à base de dados criada no

diapositivo anterior. Para isso, vamos criar algumas

páginas HTML com formulários e escrever alguns

scripts em PHP

Page 21: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

DESENVOLVIMENTO DE UMA APLICAÇÃO PARA ACESSO REMOTO A UMA BASE DE DADOS

21

A figura anterior apresenta um esquema global da

aplicação. Como página de entrada desta aplicação,

vamos criar um documento HTML muito simples

com o nome Entrada.html.

Page 22: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

DESENVOLVIMENTO DE UMA APLICAÇÃO PARA ACESSO REMOTO A UMA BASE DE DADOS

22

Essa página contém um formulário com um campo (input, do

tipo “text”) para a introdução de um nome a procurar na

base de dados e um botão de comando que aciona essa

procura, através de um script chamado procurar.php

Além disso, conforme se pode ver na figura seguinte, à direita,

a página de entrada vai conter também três links para

podermos aceder a outras secções da nossa aplicação:

Page 23: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

DESENVOLVIMENTO DE UMA APLICAÇÃO PARA ACESSO REMOTO A UMA BASE DE DADOS

23

listar.php — é um link para um script que faz listar todos os

Contactos na base de dados,

inserir.html — é um link para um formulário onde podemos

inserir novos dados; este formulário aciona o script

inserir.php que insere os dados na tabela Contactos;

remover.html — é um link para um formulário que pede um

nome a remover; este formulário aciona o script

remover.php que remove efetivamente o contato.

Page 24: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

Página de entrada para a aplicação24

Page 25: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

25

Na figura anterior, temos o documento entrada.html que

vai funcionar como página de entrada na nossa

aplicação. Nesta página, temos um formulário com o

seguinte cabeçalho:

Página de entrada para a aplicação

Page 26: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

26

Estamos a prever enviar dados pelo método post que

deverão ser tratados por um script PHP com o nome

procurar.php.

Este ficheiro (procurar.php) estará dentro de uma pasta

com o nome /aplic/ situada na pasta /htdocs/ de

localhost — o Apache Server. Daí o endereço que

aparece em action:

Página de entrada para a aplicação

Page 27: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

27

Os restantes ficheiros da aplicação serão todos colocados

dentro dessa pasta /htdocs/aplic para uma melhor

identificação e utilização.

Dentro do formulário, temos o seguinte texto e elemento

input do tipo text para a introdução do nome a enviar

para procurar na base de dados:

Página de entrada para a aplicação

Page 28: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

28

Ainda dentro do formulário, temos um botão do tipo

submit com a palavra “ Procurar”:

Página de entrada para a aplicação

Page 29: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

29

Para além destes elementos, temos ainda três links para as

outras secções da aplicação:

Este link passa-nos para um outro script da nossa aplicação

— listar.php — que apresenta todos os registos da tabela

Contactos.

Página de entrada para a aplicação

Page 30: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

30

Este link envia-nos para a página com o nome inserir.html

— a partir da qual poderemos inserir novos dados na

tabela Contactos.

Página de entrada para a aplicação

Page 31: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

31

Este último link remete-nos para a página com o nome

remover.html — onde podere- mos indicar um nome a

remover dos nossos contactos.

Página de entrada para a aplicação

Page 32: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

32

Um script para Listar os dados da tabela Contactos

Page 33: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

33

Na figura anterior, temos o script listar.php que faz listar os

dados da tabela Contactos da nossa base de dados

Pessoal (criada anteriormente).

Recordemos que este script é chamado a partir da página

de entrada da nossa aplicação (criada na página

anterior), através do link:

Um script para Listar os dados da tabela Contactos

Page 34: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

34

o script começa com a seguinte instrução:

Esta instrução procura efetuar uma conexão ou ligação ao

servidor MySQL, através do servidor Apache. Vejamos os

seus elementos:

Um script para Listar os dados da tabela Contactos

Page 35: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

35

$conexao — é uma variável criada por nós para captar o resultado da ligação ao servidor; o seu conteúdo permite-nos saber se a ligação se efetuou ou não, além disso, vai ser usada num outro comando para ligar à base de dados;

mysql_connect — é um comando PHP para estabelecer uma ligação ao MySQL.

Um script para Listar os dados da tabela Contactos

Page 36: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

36

o comando mysql_connect requer os seguintes três

parâmetros:

Um script para Listar os dados da tabela Contactos

Page 37: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

37

‘adress’ — indica o endereço do servidor; neste caso, como estamos a utilizar o servidor local (no próprio computador), o endereço que indicámos foi ‘127.0.0.1’; também poderia ser ‘localhost’ (servidor local);‘user’ — é um nome de utilizador do MySQL autorizado a entrar no sistema; neste exemplo, indicámos o superutilizador ‘root’; mas, numa situação real, é preferível criar um utilizador no MySQL apenas com direitos sobre a base de dados que se vai utilizar;‘password’ — refere-se à palavra-passe do utilizador mencionado no ponto anterior.

Um script para Listar os dados da tabela Contactos

Page 38: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

38

Segue-se uma estrutura de decisão com if:

Um script para Listar os dados da tabela Contactos

Page 39: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

39

A variável $conexao terá um valor positivo se a ligação teve

sucesso. A expressão !$conexao corresponde a uma

falha na ligação. E, se for esse o caso, é escrita a

mensagem “Falha na ligação” e uma indicação do

servidor acerca do erro ocorrido com mysql_error().

Além disso o script termina por ação do comando PHP

exit.

Um script para Listar os dados da tabela Contactos

Page 40: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

40

Se a ligação se efetuou com êxito, passamos às instruções

abrangidas pela cláusula else. Aí, recomeçamos com a

seguinte instrução:

Um script para Listar os dados da tabela Contactos

Page 41: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

41

Esta instrução usa o comando mysql_select_db para

indicar (selecionar) a base de dados a que nós queremos

ligar. Neste caso, a nossa base de dados chama-se

Pessoal. Também é necessário indicar a variável com que

efectuámos a ligação ($conexao).

Um script para Listar os dados da tabela Contactos

Page 42: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

42

Segue-se uma instrução que faz uma consulta à tabela

Contactos:

Um script para Listar os dados da tabela Contactos

Page 43: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

43

Neste caso, também é usada uma variável para captar o

resultado — a variável $resultado.

A função mysql_query() destina-se (como o nome sugere)

a fazer consultas ao MySQL. Dentro dos parênteses

curvos deve ser indicada uma string com uma instrução

em SQL. Neste caso, foi indicada a seguinte consulta:

Um script para Listar os dados da tabela Contactos

Page 44: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

44

ou seja, pretendemos ver todos os registos existentes na

tabela Contactos.

Segue-se um ciclo while que se destina a percorrer os

registos captados, na instrução anterior, pela variável

$resultado:

Um script para Listar os dados da tabela Contactos

Page 45: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

45

No cabeçalho do ciclo foi criada a variável $registo que

recebe cada registo captado na variável $resultado

através da função:

Um script para Listar os dados da tabela Contactos

Page 46: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

46

A função mysql_fetch_array() permite aceder a cada um

dos conjuntos de dados do array associativo que é a

variável $resultado. Assim, a variável $registo passa a

ser também um array associativo que, neste caso,

contém os dados de um registo da tabela Contactos.

Enquanto houver registos no array $resultado, eles são

captados pela variável $registo.

Um script para Listar os dados da tabela Contactos

Page 47: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

47

Em seguida, fazemos escrever cada campo do registo

captado; por exemplo, a instrução:

—faz escrever o campo Nome de um registo captado da

tabela Contactos.

Um script para Listar os dados da tabela Contactos

Page 48: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

48

Repare-se que é necessário incluir o nome dos campos (da

tabela Contactos) dentro de apóstrofes e dentro de

parênteses retos; os nomes dos campos funcionam como

chaves para aceder aos dados que estão realmente dentro

desses campos.

Ainda dentro do ciclo, a instrução:

apenas acrescenta uma quebra <br> de linha.

Um script para Listar os dados da tabela Contactos

Page 49: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

49

Por fim, a instrução:

faz com que a ligação seja fechada.

Um script para Listar os dados da tabela Contactos

Page 50: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

50

Repare-se também como é possível terminar o código do

script e acrescentar elementos HTML para serem

apresentados na página. Neste caso, acrescentámos um

link para podermos voltar à página de entrada:

Um script para Listar os dados da tabela Contactos

Page 51: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

51

Formulário e script para inserir novos dados

Page 52: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

52

Na figura anterior, temos o documento inserir.html que

contém um formulário destinado a receber novos dados

para inserir na nossa tabela de Contactos.

Esta secção da nossa aplicação é chamada a partir da

página de entrada através do link:

Formulário e script para inserir novos dados

Page 53: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

53

Na página inserir.html, temos um formulário com o seguinte

cabeçalho:

Estamos a prever enviar dados pelo método post — que

deverão ser tratados por um script PHP com o nome

inserir.php.

Formulário e script para inserir novos dados

Page 54: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

54

Estes ficheiros (inserir.html e inserir.php) serão guardados

na pasta com o nome /aplic/ situada na directoria

/htdocs/ do servidor local.

Dentro do formulário, temos os seguintes elementos input

do tipo text para a introdução dos dados de novos

contactos:

Formulário e script para inserir novos dados

Page 55: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

55

Ainda dentro do formulário, temos um botão do tipo

submit (“lnserir contato”):

Formulário e script para inserir novos dados

Page 56: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

56

Para além destes elementos, temos também um link para

voltar à página de entrada:

Formulário e script para inserir novos dados

Page 57: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

57

Na figura anterior, à direita, podemos ver o formulário

aberto no lnternet Explorer, já com alguns dados

introduzidos para exemplificação.

Agora, vamos supor que utilizamos o botão “lnserir

contacto” (que é um botão do tipo “submit”) para enviar

os dados para o script inserir.php e, daí para a nossa

base de dados.

Formulário e script para inserir novos dados

Page 58: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

58

O código do ficheiro inserir.php é apresentado na figura

seguinte. Nessa mesma figura, à direita, podemos ver o

lnternet Explorer com o resultado do envio dos dados

inseridos na figura anterior.

Formulário e script para inserir novos dados

Page 59: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

59

Formulário e script para inserir novos dados

Page 60: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

60

Este script começa com as seguintes instruções:

Com estas instruções são criadas três variáveis ($nome;

$telef e $email) para captar os dados enviados pelo

formulário anterior.

Formulário e script para inserir novos dados

Page 61: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

61

A instrução seguinte começa com if (!$nome) e avalia se o

campo $nome está vazio; se for esse o caso, é

apresentada uma mensagem e o script termina a

execução com o comando exit.

Portanto, só quando não se verifica aquela situação é que

as operações continuam.

Formulário e script para inserir novos dados

Page 62: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

62

Os dados recebidos através das variáveis $nome, $telef e

$email são escritos na janela do browser apenas para se

ter uma indicação que eles foram recebidos no

interpretador PHP.

Em seguida, temos a já conhecida ligação ao servidor com:

Formulário e script para inserir novos dados

Page 63: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

63

Se não houver problemas com aquela ligação, é

selecionada da base de dados “Pessoal”:

Segue-se uma instrução que cria a variável $insere para

receber o comando SQL com que vamos efetuar a

inserção na tabela Contactos:

Formulário e script para inserir novos dados

Page 64: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

64

Repare-se que os nomes das variáveis são incluídos dentro

de apóstrofes, aspas e pontos. A inserção só é feita com

a instrução seguinte:

Formulário e script para inserir novos dados

Page 65: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

65

O que efetua a inserção é mysql_query().

Esta é a já conhecida função PHP que executa queries no

MySQL. Neste caso, o comando SQL vai dentro da variável

$insere.

Se o resultado da operação anterior for positivo, a variável

$resultado tem um valor igual a 1 e isso permite-nos saber

se podemos informar que os dados foram (ou não)

inseridos na nossa base de dados.

Formulário e script para inserir novos dados

Page 66: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

66

Formulário e script para remover dados

Page 67: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

67

Na figura anterior, temos o documento com o nome

remover.html, contendo um formulário que pede um

nome, para eliminar o correspondente registo na tabela

Contactos.

Esta secção da nossa aplicação é chamada a partir da

página de entrada, através do link:

Formulário e script para remover dados

Page 68: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

68

À semelhança dos anteriores, o formulário desta página tem

o seguinte cabeçalho:

Neste caso, será chamado o script PHP com o nome

remover.php.

Formulário e script para remover dados

Page 69: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

69

Tal como nos casos anteriores, estes ficheiros

(remover.html e remover.php) serão guardados na

pasta /aplic/ na diretoria /htdocs/.

No formulário, temos um elemento input do tipo text para

a introdução do nome a remover:

Formulário e script para remover dados

Page 70: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

70

Ainda dentro do formulário, temos um botão do tipo

submit com a palavra”Remover”:

Formulário e script para remover dados

Page 71: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

71

Na figura anterior, à direita, podemos ver o formulário

aberto no lnternet Explorer, com um nome já

introduzido para exemplificação.

O código do ficheiro remover.php é apresentado na figura

seguinte. Nessa mesma figura, à direita, podemos ver o

lnternet Explorer com o resultado da execução do script.

Este script começa com a seguinte instrução:

Formulário e script para remover dados

Page 72: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

72

Como já vimos, esta instrução cria uma variável ($nome) para

captar o dado enviado pelo formulário anterior.

A estrutura if que se segue avalia se o campo nome está vazio

e, se for o caso, pede para voltar atrás e termina o script

com exit.

Se, efetivamente, foi recebido um nome a remover, o script

continua com as instruções seguintes, começando por

escrever na janela do browser o nome recebido:

Formulário e script para remover dados

Page 73: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

73

Segue-se a conhecida instrução com que se faz a ligação ao

servidor:

Formulário e script para remover dados

Page 74: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

74

Formulário e script para remover dados

Page 75: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

75

Se não houver problemas com aquela ligação, é

selecionada da base de dados “Pessoal”:

Em seguida, vamos controlar o número de registos antes e

depois da operação de remoção. Para isso, começamos

com a instrução:

Formulário e script para remover dados

Page 76: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

76

— que define a consulta; seguindo-se a instrução:

Formulário e script para remover dados

Page 77: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

77

A função predefinida mysql_num_rows() devolve o

número de linhas (rows) encontra- das numa consulta

(neste caso, na variável $resultado). Assim, a variável

$nr_antes conterá o número de registos na tabela

Contactos, antes das operações que se seguem. Essas

operações começam com:

Formulário e script para remover dados

Page 78: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

78

Esta instrução cria a variável $remove que recebe a string

com o comando SQL.

Nota: Repare-se como a variável $nome é incluída na string

do comando SQL. Temos de incluir o nome da variável

dentro de apóstrofes, aspas e pontos.

Formulário e script para remover dados

Page 79: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

79

A instrução que se segue:

utiliza a função do PHP mysql_query() com a referida

variável $remove para concretizar o comando SQL

(Delete) na base de dados.

Formulário e script para remover dados

Page 80: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

80

As duas instruções que se seguem aplicam de novo o comando SQL

“select * from Contactos” para determinar o número de registos

existentes na tabela Contactos, após a operação de remoção.

Agora, a variável $nr_depois conterá o número de registos depois da

operação de remoção. Se não ocorreu nenhuma remoção, a

diferença entre $nr_antes e $nr_depois será 0 (zero). Se ocorreu

alguma remoção essa diferença será 1. Assim, a última instrução

do script

Formulário e script para remover dados

Page 81: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

81

dá-nos a indicação se foi removido algum registo ou não.

Formulário e script para remover dados

Page 82: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

82

Um script para procurar um nome na tabela Contactos

Page 83: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

83

Na figura anterior, é apresentado o documento entrada.html

e o seu formulário, com o seguinte cabeçalho:

Um script para procurar um nome na tabela Contactos

Page 84: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

84

Ainda na figura anterior, à direita, podemos ver o formulário

com o campo Nome, onde foi escrito o nome Abel.

O botão “ Procurar” é um botão do tipo “submit”. Como se

sabe, isto quer dizer que, quando esse botão for utilizado,

ocorre a ação prevista no cabeçalho do formulário e os

dados são enviados para serem processa- dos pelo script

com o nome procurar.php.

Um script para procurar um nome na tabela Contactos

Page 85: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

85

Vejamos então como deverá ser o código deste script. Na

figura seguinte, podemos ver o código do ficheiro

procurar.php. À direita, na mesma figura, temos o

resultado da execução do script para o dado inserido no

exemplo da figura anterior (com o nome Abel).

O script começa com a seguinte instrução:

Um script para procurar um nome na tabela Contactos

Page 86: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

86

Esta instrução cria a variável $nome para receber o conteúdo do

campo ‘nome’ vindo do formulário da página de entrada.

A instrução seguinte:

escreve uma string indicada por nós, seguida do nome captado na

variável $nome — usando o sinal . (ponto) para juntar as strings.

Um script para procurar um nome na tabela Contactos

Page 87: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

87

O script continua com a instrução que procura fazer a ligação

ao servidor MySQL:

Segue-se a avaliação, através da estrutura if, se a ligação

ocorreu com sucesso ou não:

Um script para procurar um nome na tabela Contactos

Page 88: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

88

Se a ligação não se tiver concretizado, é escrita a mensagem

indicada e o script termina com o comando PHP exit.

Um script para procurar um nome na tabela Contactos

Page 89: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

89

Um script para procurar um nome na tabela Contactos

Page 90: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

90

O passo seguinte é selecionar a base de dados em que

pretendemos efetuar a consulta:

A função PHP mysql_select_db() seleciona a base de dados que

indicarmos dentro dos parênteses curvos. Aí, é também

indicada a variável que captou o resultado da conexão.

Um script para procurar um nome na tabela Contactos

Page 91: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

91

Em seguida, vamos escrever o comando SQL para executar na

base de dados visada. Neste caso, começamos por criar uma

variável à qual atribuímos o comando SQL:

portanto, pedimos para selecionar os registos da tabela

Contactos em que o campo nome seja igual ao conteúdo da

variável $nome.

Um script para procurar um nome na tabela Contactos

Page 92: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

92

A instrução seguinte:

- utiliza a variável $resultado para receber o resultado da

execução da consulta (query).

A instrução que se segue

Um script para procurar um nome na tabela Contactos

Page 93: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

93

utiliza a variável $n_registos para saber quantos registos

(rows) foram encontrados na consulta anterior. Este valor é

dado pela função predefinida do PHP mysql_num_rows().

Segue-se uma estrutura condicional que começa com if

($n_registos == 0). Se o número de registos for 0, o nome

não foi encontrado e apenas é escrita essa informação.

Caso contrário, vamos escrever os dados encontrados. Para

tal é usada a instrução:

Um script para procurar um nome na tabela Contactos

Page 94: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

94

A função PHP mysql_fetch_array() permite captar os dados

no array do resultado da consulta feita com mysql_quer().

A partir daí, a variável $registo contém os dados à maneira

de um registo associativo. Por isso, a instrução

Um script para procurar um nome na tabela Contactos

Page 95: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

95

Um script para procurar um nome na tabela Contactos

escreve o nome (campo ‘Nome’) do registo contido na variável $registo; etc.

Page 96: Apresentação Este módulo permitirá aos alunos desenvolveram aplicações web com acesso a bases de dados, disponibilizando a informação de uma forma dinâmica.

96