A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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ções semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

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 e versátil.

2 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

3 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

4 CONDIÇÕES NECESSÁRIAS PARA ACESSO A UMA BASE DE DADOS REMOTA (VIA WEB)
Pedido 2 Lado do cliente Cliente WWW Web Browser (Internet Explorer; etc.) Páginas Web interactivas Resposta Web Server (Apache; IIS; etc.) Interpretador de PHP Sistema de Gestão de Bases de Dados: MySQL; Oracle; etc. 1 Lado do Servidor 3 4 5 6 Acesso a uma Base de Dados Resposta ao pedido Bases de Dados

5 Fases do processo de consulta a uma base de dados via web
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:

6 Fases do processo de consulta a uma base de dados via web
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. 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.

7 Fases do processo de consulta a uma base de dados via web
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. 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.

8 Fases do processo de consulta a uma base de dados via web
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. 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.

9 Fases do processo de consulta a uma base de dados via web
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:

10 Fases do processo de consulta a uma base de dados via web
Captar os dados enviados com o formulário do utilizador e verificar se esses dados satisfazem os requisitos necessários. Estabelecer uma ligação com o sistema de bases de dados que estiver a ser utilizado. Elaborar e aplicar um determinado comando SQL. 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.

11 Preparar uma base de dados no MySQL para acesso com PHP
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.

12 Preparar uma base de dados no MySQL para acesso com PHP
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.

13 Preparar uma base de dados no MySQL para acesso com PHP
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.

14 Preparar uma base de dados no MySQL para acesso com PHP
A seguinte instrução cria a tabela Contactos (com os campos Nome, Telef e ): Create Table Contactos (Nome varchar(20) Primary Key, Telef Varchar(9), Varchar(30) );

15 Preparar uma base de dados no MySQL para acesso com PHP
O campo Nome está definido como chave primária para evitar dois nomes iguais.

16 Preparar uma base de dados no MySQL para acesso com PHP
A seguinte instrução insere, na tabela Contactos, um conjunto de três registos: Insert Contactos Values (‘Abel’ , ‘ ’, , (‘Bela’, ‘ ’ , , (‘Dina’, ‘ ’,

17 Preparar uma base de dados no MySQL para acesso com PHP

18 Esquema global de uma aplicação para interagir com uma base de dados através dos scripts PHP.
Procurar.php Listar.php Inserir.php Remover.html Remover.php Página de entrada Nome: Listar Inserir Remover Procurar

19 Esquema global de uma aplicação para interagir com uma base de dados através dos scripts PHP.
Legenda: Form action Link HTML Procurar.php Remover.html Script PHP Formulários HTML

20 DESENVOLVIMENTO DE UMA APLICAÇÃO PARA ACESSO REMOTO A UMA BASE DE DADOS
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

21 DESENVOLVIMENTO DE UMA APLICAÇÃO PARA ACESSO REMOTO A UMA BASE DE DADOS
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.

22 DESENVOLVIMENTO DE UMA APLICAÇÃO PARA ACESSO REMOTO A UMA BASE DE DADOS
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:

23 DESENVOLVIMENTO DE UMA APLICAÇÃO PARA ACESSO REMOTO A UMA BASE DE DADOS
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.

24 Página de entrada para a aplicação

25 Página de entrada para a aplicação
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:

26 Página de entrada para a aplicação
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:

27 Página de entrada para a aplicação
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:

28 Página de entrada para a aplicação
Ainda dentro do formulário, temos um botão do tipo submit com a palavra “ Procurar”:

29 Página de entrada para a aplicação
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.

30 Página de entrada para a aplicação
Este link envia-nos para a página com o nome inserir.html — a partir da qual poderemos inserir novos dados na tabela Contactos.

31 Página de entrada para a aplicação
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.

32 Um script para Listar os dados da tabela Contactos

33 Um script para Listar os dados da tabela Contactos
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:

34 Um script para Listar os dados da tabela Contactos
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:

35 Um script para Listar os dados da tabela Contactos
$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.

36 Um script para Listar os dados da tabela Contactos
o comando mysql_connect requer os seguintes três parâmetros:

37 Um script para Listar os dados da tabela Contactos
‘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 ‘ ’; 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.

38 Um script para Listar os dados da tabela Contactos
Segue-se uma estrutura de decisão com if:

39 Um script para Listar os dados da tabela Contactos
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.

40 Um script para Listar os dados da tabela Contactos
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:

41 Um script para Listar os dados da tabela Contactos
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).

42 Um script para Listar os dados da tabela Contactos
Segue-se uma instrução que faz uma consulta à tabela Contactos:

43 Um script para Listar os dados da tabela Contactos
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:

44 Um script para Listar os dados da tabela Contactos
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:

45 Um script para Listar os dados da tabela Contactos
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:

46 Um script para Listar os dados da tabela Contactos
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.

47 Um script para Listar os dados da tabela Contactos
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.

48 Um script para Listar os dados da tabela Contactos
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.

49 Um script para Listar os dados da tabela Contactos
Por fim, a instrução: faz com que a ligação seja fechada.

50 Um script para Listar os dados da tabela Contactos
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:

51 Formulário e script para inserir novos dados

52 Formulário e script para inserir novos dados
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:

53 Formulário e script para inserir novos dados
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.

54 Formulário e script para inserir novos dados
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:

55 Formulário e script para inserir novos dados
Ainda dentro do formulário, temos um botão do tipo submit (“lnserir contato”):

56 Formulário e script para inserir novos dados
Para além destes elementos, temos também um link para voltar à página de entrada:

57 Formulário e script para inserir novos dados
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.

58 Formulário e script para inserir novos dados
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.

59 Formulário e script para inserir novos dados

60 Formulário e script para inserir novos dados
Este script começa com as seguintes instruções: Com estas instruções são criadas três variáveis ($nome; $telef e $ ) para captar os dados enviados pelo formulário anterior.

61 Formulário e script para inserir novos dados
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.

62 Formulário e script para inserir novos dados
Os dados recebidos através das variáveis $nome, $telef e $ 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:

63 Formulário e script para inserir novos dados
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:

64 Formulário e script para inserir novos dados
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:

65 Formulário e script para inserir novos dados
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.

66 Formulário e script para remover dados

67 Formulário e script para remover dados
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:

68 Formulário e script para remover dados
À 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.

69 Formulário e script para remover dados
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:

70 Formulário e script para remover dados
Ainda dentro do formulário, temos um botão do tipo submit com a palavra”Remover”:

71 Formulário e script para remover dados
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:

72 Formulário e script para remover dados
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:

73 Formulário e script para remover dados
Segue-se a conhecida instrução com que se faz a ligação ao servidor:

74 Formulário e script para remover dados

75 Formulário e script para remover dados
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:

76 Formulário e script para remover dados
— que define a consulta; seguindo-se a instrução:

77 Formulário e script para remover dados
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:

78 Formulário e script para remover dados
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.

79 Formulário e script para remover dados
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.

80 Formulário e script para remover dados
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

81 Formulário e script para remover dados
dá-nos a indicação se foi removido algum registo ou não.

82 Um script para procurar um nome na tabela Contactos

83 Um script para procurar um nome na tabela Contactos
Na figura anterior, é apresentado o documento entrada.html e o seu formulário, com o seguinte cabeçalho:

84 Um script para procurar um nome na tabela Contactos
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.

85 Um script para procurar um nome na tabela Contactos
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:

86 Um script para procurar um nome na tabela Contactos
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.

87 Um script para procurar um nome na tabela Contactos
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:

88 Um script para procurar um nome na tabela Contactos
Se a ligação não se tiver concretizado, é escrita a mensagem indicada e o script termina com o comando PHP exit.

89 Um script para procurar um nome na tabela Contactos

90 Um script para procurar um nome na tabela Contactos
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.

91 Um script para procurar um nome na tabela Contactos
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.

92 Um script para procurar um nome na tabela Contactos
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

93 Um script para procurar um nome na tabela Contactos
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:

94 Um script para procurar um nome na tabela Contactos
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

95 Um script para procurar um nome na tabela Contactos
escreve o nome (campo ‘Nome’) do registo contido na variável $registo; etc.

96 Fim


Carregar ppt "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ções semelhantes


Anúncios Google