SlideShare uma empresa Scribd logo
Agrupamento de
                                                                    Escolas da Batalha      160301



                                                 O PHP e as Bases de Dados

Neste módulo, iremos ver como poderemos utilizar as funcionalidades das bases de dados em conjunto com o
desenvolvimento das aplicações de Web. A linguagem PHP permite conferir às aplicações de Web a ligação
necessária e obrigatória dos sistemas mais modernos a bases de dados, dando-lhe o dinamismo necessário para
uma maior interatividade.

                                            Interatividade das Aplicações de Web

Um dos aspetos mais interessantes que permitem um maior dinamismo com as páginas de Web é obtido com o
recurso à interacção com bases de dados. Assim, é possível manipular os dados aí armazenados e criar páginas
instantaneamente consoante os pedidos dos utilizadores, obtendo-se uma maior interatividade.

Iremos debruçarmo-nos sobre a forma como o PHP consegue manipular dados externos armazenados em bases
de dados com o recurso a comandos básicos SQL (Structured Query Language). É necessário ainda possuir
conhecimentos mínimos de HTML, além do básico sobre bases de dados e principalmente linguagem SQL.

Para que se consiga entender melhor as caraterísticas do PHP relativamente às potencialidades de interação
com bases de dados, iremos criar uma base de dados simples em MySQL, e desenvolveremos uma pequena
aplicação constituída por um variado grupo de scripts capazes de efetuarem um conjunto de operações básicas,
tais como selecionar, inserir, eliminar e alterar registos de uma base de dados. Indicar-se-á também o
procedimento a tomar para usar bases de dados em Microsoft Access e indicar-se-á, exemplificando, as
potencialidades de uma ferramenta capaz, de, juntamente com o PHP, usar um conjunto de instruções que
atuam de modo idêntico nos vários tipos de bases de dados suportados.

Iremos acrescentar a estes scripts um conjunto de funcionalidades (navegação entre páginas contendo registos;
envio de emails e realização de uploads; redirecionamento de páginas; autenticação de utilizadores; limitação
de endereços) capazes de permitirem a criação de uma aplicação suficientemente elucidativa das capacidades
desta linguagem e a sua integração com base de dados.

                  Fases do Processo de consulta a uma base de dados via Web e com PHP




            Figura 1 - Representação esquemática do funcionamento de uma consulta a uma base de dados via Web com scripts PHP



CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18                                                                      1
Agrupamento de
                                                             Escolas da Batalha   160301




Este processo passa pelas seguintes fases principais:

1 – O Web Browser ou cliente Web (por exemplo o Internet Explorer) envia um pedido, através de um
formulário, para acesso a uma base de dados que está dentro ou ligada ao servidor Web.

 2 – O Servidor Web recebe a comunicação dos dados do formulário (pelo método Get ou Post) e detecta a
indicação de um script PHP (no atributo “action” do formulário) e chama esse script para que ele receba e
processe os dados.

3 – O Interpretador de PHP faz a interpretação do script mencionado e detecta um pedido de ligação a um
sistema de bases de dados, tenta efectivar essa ligação e, se o conseguir, envia-lhe um comando SQL a executar
na base de dados em causa.

4 – O Servidor de Base 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.

5 – O Interpretador de Scripts PHP recebe os resultados enviados pelo servidor da base de dados e prepara
esses resultados para os poder entregar ao servidor Web em formato compatível com o HTML.

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

Acabámos de ver com detalhe todos os passos de uma consulta (ou outro tipo de acção) em relação a uma
base de dados com scripts PHP.

Vejamos agora os passos ou etapas que um programador deste tipo de serviços Web deve ter em conta ao
escrever um script PHP:



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 ou conexão ao sistema de base de dados que estiver a ser utilizado.

3 – Elaborar e aplicar um determinado comando SQL com que se pretendem obter determinados resultados
em relação à base de dados visada.

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.




CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18                                              2
Agrupamento de
                                                                Escolas da Batalha     160301



                                                  Introdução ao MySQL

Iremos efetuar uma abordagem à forma como selecionar, adicionar, eliminar e alterar dados em MySQL.
Criamos então uma base de dados simples de modo a mostrar aspetos básicos do uso do MySQL, utilizando
como interface de ligação a linguagem SQL.

Pressupõe-se que possui o MySQL corretamente instalado, permitindo ao servidor de MySQL estabelecer
ligações a possíveis clientes.




                                   Figura 2 - Prompt MySQL numa janela DOS em ambiente Windows




A partir do momento em que se obtenha ligação ao servidor MySQL poderemos usar um conjunto bastante
grande de instruções para obter informações acerca das bases de dados e respetivas tabelas. Assim, e de entre
outras poderemos usar as seguintes instruções para:

1 -Visualizar as bases de dados já existentes no servidor MySQL: Show databases;

2 – Seleccionar uma base de dados do servidor MySQL: Use nome_base_dados;

3 – Saber qual a base de dados actualmente seleccionada (em uso): Select database();

4 – Saber quais as tabelas que constituem a base de dados em uso: Show tables;

5 – Saber a estrutura de uma das tabelas da base de dados: Describe nome_tabela;

A base de dados a criar terá o nome “vendas” e será constituída por uma única tabela de nome
“clientes” com apenas 3 colunas(atributos/campos): cod_cli (código do cliente); nome e morada.

         Criação da base de dados “vendas”: Create database vendas;
         Adição de tabelas na base de dados “vendas”:
                 Use vendas;
                 Create table clientes
                 (cod_cli int not null auto_increment primary key,
                  nome varchar(40),
                  morada varchar (12));
Primary key – chave primária
Auto_increment – o campo é automaticamente incrementado de uma unidade sempre que se adiciona um registo.
Not Null – o campo não poderá ficar vazio.


         Por fim, insira alguns registos na base de dados “vendas” criada.

CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18                                                  3
Agrupamento de
                                                             Escolas da Batalha   160301



                                       LIGAÇÃO A BASES DE DADOS EM PHP

1 - Principais funções com suporte ao MySQL
Para conseguir efetuar as ligações a base de dados e posteriormente, se consigam manusear os dados aí
armazenados, o PHP fornece um conjunto suficientemente vasto de funções para o MySQL, que de seguida
iremos descrever, dando alguns exemplos onde se verifica a sua utilização:
      mysql_connect – estabelece uma ligação ao servidor MySQL;
      mysql_pconnect – estabelece uma ligação persistente ao servidor MySQL ;

A ligação ao MySQL não termina após a execução do script nem com o mysql_close(), permanecendo ativa
para o uso futuro.

    mysql_close – a ligação ao servidor é cortada após a execução do script sendo por isso necessária uma
     certa razoabilidade na sua utilização(ligação);
    mysql_create_db – cria uma base de dados (base de dados, ligação);
    mysql_drop_db – Elimina uma base de dados( base de dados, ligação);
    mysql_select_db – Selecciona para uso uma base de dados (base de dados, ligação);
    mysql_db_query – selecciona e interroga uma base de dados(base de dados, pergunta_sql, ligação);
    mysql_query – interroga uma base de dados (pergunta_sql, ligação);
    mysql_fetch_row – selecciona uma linha (registo) do resultado da interrogação previamente efectuada à
     base de dados. O registo é armazenado sob a forma de uma matriz(array), correspondendo cada campo ao
     número do índice do array. A sua utilização obedece aos seguintes parâmetros:
     mysql_fetch_row($resultado). A execução subsequente de um novo mysql_fetch_row() faz avançar para o
     registo seguinte seleccionando-o;
    mysql_fetch_array ($resultado, $tipo_de_resultado)
    mysql_result – armazena o conteúdo de um campo a partir de uma interrogação previamente efectuada à
     base de dados;
    mysql_result ( $resultado,$numero_linha, $campo) – por questões de performance, é sempre preferível
     usar as funções anteriores.

2 – Exemplo de Aplicação das Funções PHP de ligação a base de dados MySQL
Seguidamente, vamos exemplificar usando algumas destas funções sobre a base de dados “vendas” criada
previamente em MySQL. Note que o utilizador e a respetiva password varia consoante o servidor, devendo por
isso adaptar-se à sua situação em concreto.
    Esquema Global da aplicação criada para aceder a uma base de dados a partir de formulários HTML e scripts PHP




CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18                                                    4
Agrupamento de
                                                             Escolas da Batalha   160301



2.1. Criação de um formulário de entrada de dados na base de dados e um script em PHP para tratar os dados
enviados

2.1.1. Entra_clientes.html:


                            <html>

                            <head> <title>Entrar</title> </head>

                            <body> <h2> Entrar e inserir dados </h2>

                            <form action="insere_clientes.php" method="post">

                            <table border="1">

                            <tr> <td> Código do cliente: </td>

                            <td> <input type="text" name="cod_cli"> </td>

                            </tr>

                            <tr> <td> Nome do cliente: </td>

                            <td> <input type="text" name="nome"> </td>

                            </tr>

                            <tr> <td> Morada do cliente: </td>

                            <td> <input type="text" name="morada"> </td>

                            </tr>

                            <tr> <td colspan="2" align="center">

                               <input type="submit" value="Registar"> </td></tr>

                            </table>

                            </form>

                            <a href="lista_clientes.php">Listar registos </a><p>

                            <a href="procura_clientes.html">Procurar registos</a>

                            </body>

                            </html>




CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18                                         5
Agrupamento de
                                                              Escolas da Batalha   160301



2.1.2. Insere_clientes.php:


                    <html>

                    <head> <title> Inserir </title> </head>

                    <body> <h2> Inserir Registos </h2>

                    <?php

                    $cod_cli = $_POST['cod_cli'];

                    $nome = $_POST['nome'];

                    $morada = $_POST['morada'];

                    if (!$cod_cli || !$nome || !$morada) {

                      echo 'Campos em falta.

                      Volte atrás e tente de novo.'; exit;}

                    echo 'Dados recebidos: <br />';

                    echo 'Código: '.$cod_cli.'<br />';

                    echo 'Nome: '.$nome.'<br />';

                    echo 'Morada: '.$morada.'<br />';

                    $ligax = mysqli_connect('localhost', 'root','');

                    if (!$ligax)

                      {echo '<p> Erro: Falha na ligação.'; exit;}

                    mysqli_select_db($ligax, 'vendas');

                    $insere = "insert into Clientes values

                         ('".$cod_cli."','".$nome."', '".$morada."')";

                    $result = mysqli_query($ligax, $insere);

                    if ($result==1) echo "<p>Dados inseridos<br>";

                    else "<p>Dados não inseridos<br>";

                    ?>

                    <p> <a href="entra_clientes.html">Voltar à entrada</a>

                    <p> <a href="lista_clientes.php">Listar registos</a>

                    </body>

                    </html>

CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18                                  6
Agrupamento de
                                                             Escolas da Batalha    160301



Explicação das instruções que compõem o script anterior:

Este script começa com as instruções típicas para captar os dados recebidos do formulário com o método POST:

                          $cod_cli = $_POST['cod_cli'];

                          $nome = $_POST['nome'];

                          $morada = $_POST['morada'];

       A primeira instrução capta para a variável $cod_cli, o conteúdo do campo [‘cod_cli’] do array associativo
        $_POST. Este campo diz respeito à primeira caixa de Input do form. As outras 2 instruções fazem o
        mesmo para com os outros dois campos do formulário (nome e morada).

       if (!$cod_cli || !$nome || !$morada) – esta condição avalia se alguma das variáveis contém um valor
        nulo ou string vazia – por exemplo: (!cod_cli); se isso acontecer, então é apresentada a mensagem:
        Campos em falta. Volte atrás e tente de novo. Além disso, o script termina com a instrução”exit”. Se a
        condição não se verificar, então, o script continua. E começa por apresentar os dados recebidos do
        formulário, com instruções como o seguinte: echo 'Código: '.$cod_cli.'<br />';


Esta foi a primeira fase das 4 fases deste tipo de scripts – captar e verificar os dados.
Segue-se a 2ª fase que consiste em estabelecer a ligação ao sistema da base de dados – neste caso, ao
MySQL. E, neste caso, isso é feito com a seguinte instrução:
                                  $ligax = mysqli_connect('localhost', 'root',' ');

A ligação é efetuada através de uma função predefinida do PHP: mysqli_connect(). Em qualquer dessas funções
temos de indicar os seguintes 3 parâmetros:

       Localhost – nome do servidor;
       Root – nome do utilizador;
       ‘ ‘ – palavra passe vazia
       Se a ligação for bem sucedida, a variável $ligax recebe o recurso que controla a ligação; se, por
        algum motivo, a ligação falhar, a variável $ligax fica com o valor nulo. No script anterior, temos
        a seguinte instrução:

                                   if (!$ligax)

                                     {echo '<p> Erro: Falha na ligação.'; exit;}

       Se variável $ligax tiver valor nulo então, é apresentada uma mensagem de erro e o script
        termina com “exit”.
       Se a ligação for bem sucedida, o script continua. Para completar a ligação à base de dados
        temos de indicar o seu nome.



CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18                                                7
Agrupamento de
                                                             Escolas da Batalha   160301



       Com a seguinte instrução: mysqli_select_db($ligax, 'vendas'); A função mysqli_select_db() permite
        seleccionar a base de dados e pede os dois seguintes parâmetros:
    
                                   $ligax – a variável do recurso da ligação;
                                   Vendas – o nome da base de dados.


Se a ligação à base de dados for bem sucedida, passamos à 3ª fase do script – a acção sobre a base
de dados. Neste caso, a acção consiste num comando SQL para inserir os dados na tabela.

                $insere = "insert into Clientes values (' ".$cod_cli." ',' ".$nome." ', ' ".$morada." ')";



É habitual usar-se uma variável para escrever o comando SQL. Neste caso, a variável $insere recebe a
string com o comando: “insert into clientes values …”

Os valores a inserir são indicados com os nomes das variáveis que contêm os dados: $cod_cli, $nome e
$morada. Os nomes estão escritos dentro das aspas que iniciam a string do comando “insert”. Cada
dado a inserir na tabela tem de ser incluído dentro de aspas. Neste caso, as strings a inserir são
fornecidas através de variáveis.

Um comando SQL é enviado à base de dados através de uma função PHP:

                                        $result = mysqli_query($ligax, $insere);

A função mysqli_query() usa neste caso os seguintes argumentos:



       $ligax – a variável do recurso da ligação;
       $insere – variável que contém o comando.

O resultado do comando SQL é devolvido á variável $result.




CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18                                                   8
Agrupamento de
                                                                Escolas da Batalha   160301




2.2. Para visualizar os resultados aramazenados na tabela “clientes”, foi criado o script
Lista_clientes.PHP:

           <html>

           <head> <title>Listar</title> </head>

           <body> <h3> Listar Registos </h3>

           <a href="entrar.htm">Voltar à entrada</a> <p>

           <?php

            $ligax = mysqli_connect('localhost', 'root', '');

            if (!$ligax){echo '<p> Falha na ligação.'; exit;}

            mysqli_select_db($ligax, 'vendas');

            $consulta = "Select * From clientes";

            $result = mysqli_query($ligax, $consulta);

            $nregistos = mysqli_num_rows($result);

            echo 'Nº de registos encontrados: '.$nregistos;

           ?>

           <table border="1">

           <tr><td> Código cliente: <td> Nome: <td> Morada: </tr>

           <?php

            for ($i=0; $i <$nregistos; $i++) {

                $registo = mysqli_fetch_assoc($result);

                echo '<tr>';

                echo '<td>'.$registo['cod_cli'].'</td>';

                echo '<td>'.$registo['Nome'].'</td>';

                echo '<td>'.$registo['Morada'].'<td>';

                echo '</tr>'; echo '</p>';

            }

           ?>

           </table>

           </body>

           </html>

CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18                                    9
Agrupamento de
                                                             Escolas da Batalha   160301




Explicação das instruções que compõem o script anterior:



       $ligax = mysqli_connect('localhost', 'root', ''); - Ligação ao servidor MySQL;

       mysqli_select_db($ligax, 'vendas'); - indica o nome da base de dados a ligar;

       $consulta = "Select * From clientes"; - comando SQL que mostra todos os dados da tabela;

       $result = mysqli_query($ligax, $consulta); - envia o comando (query) à base de dados através

        da função mysqli_query(). Neste caso, é a variável consulta que contém o comando SQL para

        efectuar a consulta e seleccionar todos os dados da tabela.

       $nregistos = mysqli_num_rows($result); - a variável $result recebe o resultado da consulta

        efectuada e usa a função mysqli_num_rows() para contar o nº total de registos encontrados na

        consulta. Este número é atribuído à variável $nregistos.

       $registo = mysqli_fetch_assoc($result); - esta instrução que está dentro do ciclo For usa a

        função mysqli_fetch_assoc() com a variável $result para captar, através da variável $registo,

        cada um dos registos contidos no resultado da consulta; as outras instruções do ciclo escrevem

        os valores dos campos da tabela clientes; por exemplo: echo '<td>'.$registo['Nome'].'</td>';




CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18                                       10
Agrupamento de
                                                             Escolas da Batalha   160301



2.3. Criação de um formulário e um script para efectuar uma pesquisa na base de dados

2.3.1. procura_clientes.html:




                                      <html>

                                      <head> <title>Procurar</title> </head>

                                      <body> <h3>Escreva o nome a procurar</h3>

                                      <form action="mostra_clientes.php" method="post">

                                      <table border="1">

                                      <tr> <td> Nome a procurar: </td>

                                         <td> <input type="text" name="nome"></tr>

                                      <tr> <td colspan="2" align="center">

                                         <input type="submit"

                                         value="Procurar registos"> </td></tr>

                                      </table>

                                      </form>

                                      <p> <a href="entra_clientes.html">Voltar à entrada</a>

                                      <p> <a href="lista_clientes.php">Listar registos</a>

                                      </body>

                                      </html>


Explicação das instruções que compõem o script anterior:

Foi concebido para o utilizador escrever um nome a procurar na tabela clientes. O formulário contém
apenas um input do tipo “text” para a introdução de um nome e um botão do tipo “submit” para
enviar os dados.

<form action="mostra_clientes.php" method="post"> - indica o nome do script que irá tratar os dados.

<p> <a href="entra_clientes.html">Voltar à entrada</a> - volta ao formulário inicial.

<p> <a href="lista_clientes.php">Listar registos</a> - passa ao script lista_clientes.php.



CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18                                             11
Agrupamento de
                                                                     Escolas da Batalha   160301



2.3.2. Mostra_clientes.php:

               <html> <head> <title>Mostrar</title> </head>

               <body> <h3>Mostrar nome procurado</h3>

               <?php

                $nomeproc = $_POST['nome'];

                if (!$nomeproc)

                 {echo 'Volte atrás e escreva o nome.'; exit;}

                echo '<p>Nome procurado: '.$nomeproc. '<p>';

                $ligax = mysqli_connect('localhost', 'root','');

                if (!$ligax){echo '<p> Falha na ligação.'; exit; }

                mysqli_select_db($ligax, 'vendas');

                $procura = "Select * From Clientes

                       where nome like '%".$nomeproc."%'";

                $result = mysqli_query($ligax, $procura);

                $nregistos = mysqli_num_rows($result);

                echo 'Nº de registos encontrados: '.$nregistos;

               ?>

               <table border="1">

               <tr><td> Código: <td> Nome: <td> Morada: </tr>

               <?php

                for ($i=0; $i <$nregistos; $i++) {

                 $registo = mysqli_fetch_assoc($result);

                 echo '<tr> <td>'.$registo['cod_cli'].'</td>';

                 echo '<td>'.$registo['Nome'].'</td>';

                 echo '<td>'.$registo['Morada'].'<td></tr>'; }

               ?> </table>

               <p> <a href="lista_clientes.php"> Listar registos </a>

               <form action="remove_clientes.php" method="post">

               <p>Para apagar um registo, escreva aqui o nome</p>

               <input type="text" name="nome">

               <input type="submit" value="Apagar registo"></form></body></html>

CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18                                         12
Agrupamento de
                                                             Escolas da Batalha   160301




Explicação das instruções que compõem o script anterior:

Neste script temos todas as 4 fases relativas a este tipo de scripts para interação com as bases de dados.

1ª FASE – captar e validar a base de dados:

$nomeproc = $_POST['nome']; - a variável $nomeproc(nome procurado) recebe o dado proveniente do
formulário procura_clientes.php( campo nome).

if (!$ligax){echo '<p> Falha na ligação.'; exit; } – avalia se a variável $nomeproc tem um valor nulo ou
string vazia e, se for esse o caso, é enviada uma mensagem a informar desse facto e o script termina
com a instrução exit.



2ª FASE – Ligar ao MySQL e base de dados:

Esta fase começa com a seguinte instrução: $ligax = mysqli_connect('localhost', 'root','');

Se a ligação não for bem sucedida, o script continua e indicamos a base de dados que pretendemos
usar com a seguinte instrução: mysqli_select_db($ligax, 'vendas');



3ª FASE – Interagir com a base de dados:

Esta fase começa com a seguinte instrução: $procura = "Select * From Clientes where nome like
'%".$nomeproc."%'";



Nesta instrução criamos a variável $procura para receber o comando SQL. Neste caso, trata-se de uma
consulta (SQL) com uma condição: where nome like… Usamos aqui Like e não igual a para permitir
encontrar nomes parecidos com outras palavras antes e/ou depois.



Em seguida, esta consulta é enviada à base de dados com a seguinte instrução:

$result = mysqli_query($ligax, $procura);

A variável $result recebe o resultado desta consulta ou procura.

A instrução que se segue:

$nregistos = mysqli_num_rows($result); - capta para a variável $nregistos, número de registos
encontrados na consulta.




CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18                                                   13
Agrupamento de
                                                             Escolas da Batalha   160301




4ª FASE – Preparar os dados a apresentar:

Neste caso, estamos a admitir a hipótese de serem encontrados vários registos com o nome indicado
para a procura. Usa-se um ciclo for para escrever os registos encontrados:

for ($i=0; $i <$nregistos; $i++) {

 $registo = mysqli_fetch_assoc($result);

 echo '<tr> <td>'.$registo['cod_cli'].'</td>';

 echo '<td>'.$registo['Nome'].'</td>';

 echo '<td>'.$registo['Morada'].'<td></tr>'; }



Na parte final deste script, temos um pequeno formulário embebido no código php. Destina-se a
permitir que um utilizador insira um nome para remover da base de dados e começa com a seguinte
instrução:

<form action="remove_clientes.php" method="post"> - indica que os dados enviados serão recebidos
e tratados pelo script remove_clientes.php




CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18                                   14
Agrupamento de
                                                                Escolas da Batalha   160301



2.4. Criação de um script para remover um registo numa tabela da base de dados

2.4.1. remove_clientes.php:

                            <html>

                            <head> <title> Remover </title> </head>

                            <body> <h2> Remover registo </h2>

                            <?php

                            $nomrem = $_POST['nome'];

                            if (!$nomrem)

                              {echo 'Volte atrás e escreva o nome.'; exit;}

                            echo 'Nome a remover: '.$nomrem. '<p>';

                            $ligax = mysqli_connect('localhost', 'root','');

                            if (!$ligax){echo '<p>Falha na ligação.'; exit; }

                            mysqli_select_db($ligax, 'vendas');

                            $consulta = "Select * From Clientes";

                            $result = mysqli_query($ligax, $consulta);

                            $nr_antes = mysqli_num_rows($result);

                            $remove = "delete from clientes

                                  where nome = '".$nomrem."'";

                            $result = mysqli_query($ligax, $remove);

                            if ($result==0) echo "<p>Não removido<br>";

                            $consulta = "Select * From Clientes";

                            $result = mysqli_query($ligax, $consulta);

                            $nr_depois = mysqli_num_rows($result);

                            $nr_removidos = $nr_antes - $nr_depois;

                            echo 'Nº de registos removidos: '.$nr_removidos;

                            ?>

                            <p> <a href="lista_clientes.php"> Listar registos </a>

                            </body> </html>



CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18                                    15
Agrupamento de
                                                                Escolas da Batalha     160301




Explicação das instruções que compõem o script anterior:

Este script destina-se a remover registos na tabela clientes e também contém as 4 fases.

1ª FASE – Captar e validar os dados:

Esta fase começa com a instrução:

$nomrem = $_POST['nome']; - a variável $nomerem (nome a remover) recebe o valor do campo
[‘nome’] proveniente do formulário do script anterior (procura_clientes.php).

Segue-se uma instrução com if ($nomerem) que avalia se a variável $nomerem contém um valor nulo,
caso em que o script terminará.

2ªFASE – Ligar ao MySQL e à base de dados:

Esta fase começa com a instrução:

                                        $ligax = mysqli_connect('localhost', 'root',' ');

Se a ligação falhou o script termina. Se a ligação foi bem sucedida, o script continua, indicando-se a base de dados a usar:

                                             mysqli_select_db($ligax, 'vendas');

3ªFASE – Interagir com a base de dados:

        $consulta = "Select * From Clientes";

        $remove = "delete from clientes where nome = ' ".$nomrem." ' ";




4ªFASE – Preparar os dados a apresentar:

Não tem dados a apresentar mas escreve o número de registos removidos.




CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18                                                             16

Mais conteúdo relacionado

Mais procurados

Aula 08 - Introdução ao banco de dados MySQL - Programação Web
Aula 08 - Introdução ao banco de dados MySQL - Programação WebAula 08 - Introdução ao banco de dados MySQL - Programação Web
Aula 08 - Introdução ao banco de dados MySQL - Programação Web
Dalton Martins
 
Apostila access 2010
Apostila access 2010Apostila access 2010
Apostila access 2010
Antonio Marcos Batista dos Santos
 
Apostila oracle
Apostila oracleApostila oracle
Apostila oracle
Sandro Freitas
 
Banco de dadados MySQL com PHP
Banco de dadados MySQL com PHPBanco de dadados MySQL com PHP
Banco de dadados MySQL com PHP
Leonardo Soares
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
Marco Pinheiro
 
SAN: Storage Area Network
SAN: Storage Area NetworkSAN: Storage Area Network
SAN: Storage Area Network
Fernando Palma
 
Unidade 2.4 Configuração do Windows Server 2008
Unidade 2.4 Configuração do Windows Server 2008Unidade 2.4 Configuração do Windows Server 2008
Unidade 2.4 Configuração do Windows Server 2008
Juan Carlos Lamarão
 
Unidade 2.2 Novidades Windows Server 2008
Unidade 2.2 Novidades Windows Server 2008Unidade 2.2 Novidades Windows Server 2008
Unidade 2.2 Novidades Windows Server 2008
Juan Carlos Lamarão
 
ODI Series - Exportar Tabelas para Arquivo Texto
ODI Series -  Exportar Tabelas para Arquivo TextoODI Series -  Exportar Tabelas para Arquivo Texto
ODI Series - Exportar Tabelas para Arquivo Texto
Caio Lima
 
Mysql for IBMers
Mysql for IBMersMysql for IBMers
Mysql for IBMers
Wagner Bianchi
 
Apostila asp
Apostila aspApostila asp
Banco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosBanco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de Dados
Leinylson Fontinele
 
05 - Acesso e Manipulação de Dados através de Classes do ADO.NET
05 - Acesso e Manipulação de Dados através de Classes do ADO.NET05 - Acesso e Manipulação de Dados através de Classes do ADO.NET
05 - Acesso e Manipulação de Dados através de Classes do ADO.NET
filipe-lemos
 
ESSBASE Series - Excel Add-in Essbase
ESSBASE Series - Excel Add-in EssbaseESSBASE Series - Excel Add-in Essbase
ESSBASE Series - Excel Add-in Essbase
Caio Lima
 
SQL Server 2012
SQL Server 2012SQL Server 2012
SQL Server 2012
Hcode
 
Rm1150130412rmglobais
Rm1150130412rmglobaisRm1150130412rmglobais
Rm1150130412rmglobais
Tiago Henrique Ribeiro Ferreira
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
Rangel Javier
 
Alo mundojpa
Alo mundojpaAlo mundojpa
Alo mundojpa
Sonia Góes
 
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
Dirceu Resende
 

Mais procurados (19)

Aula 08 - Introdução ao banco de dados MySQL - Programação Web
Aula 08 - Introdução ao banco de dados MySQL - Programação WebAula 08 - Introdução ao banco de dados MySQL - Programação Web
Aula 08 - Introdução ao banco de dados MySQL - Programação Web
 
Apostila access 2010
Apostila access 2010Apostila access 2010
Apostila access 2010
 
Apostila oracle
Apostila oracleApostila oracle
Apostila oracle
 
Banco de dadados MySQL com PHP
Banco de dadados MySQL com PHPBanco de dadados MySQL com PHP
Banco de dadados MySQL com PHP
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
 
SAN: Storage Area Network
SAN: Storage Area NetworkSAN: Storage Area Network
SAN: Storage Area Network
 
Unidade 2.4 Configuração do Windows Server 2008
Unidade 2.4 Configuração do Windows Server 2008Unidade 2.4 Configuração do Windows Server 2008
Unidade 2.4 Configuração do Windows Server 2008
 
Unidade 2.2 Novidades Windows Server 2008
Unidade 2.2 Novidades Windows Server 2008Unidade 2.2 Novidades Windows Server 2008
Unidade 2.2 Novidades Windows Server 2008
 
ODI Series - Exportar Tabelas para Arquivo Texto
ODI Series -  Exportar Tabelas para Arquivo TextoODI Series -  Exportar Tabelas para Arquivo Texto
ODI Series - Exportar Tabelas para Arquivo Texto
 
Mysql for IBMers
Mysql for IBMersMysql for IBMers
Mysql for IBMers
 
Apostila asp
Apostila aspApostila asp
Apostila asp
 
Banco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosBanco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de Dados
 
05 - Acesso e Manipulação de Dados através de Classes do ADO.NET
05 - Acesso e Manipulação de Dados através de Classes do ADO.NET05 - Acesso e Manipulação de Dados através de Classes do ADO.NET
05 - Acesso e Manipulação de Dados através de Classes do ADO.NET
 
ESSBASE Series - Excel Add-in Essbase
ESSBASE Series - Excel Add-in EssbaseESSBASE Series - Excel Add-in Essbase
ESSBASE Series - Excel Add-in Essbase
 
SQL Server 2012
SQL Server 2012SQL Server 2012
SQL Server 2012
 
Rm1150130412rmglobais
Rm1150130412rmglobaisRm1150130412rmglobais
Rm1150130412rmglobais
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Alo mundojpa
Alo mundojpaAlo mundojpa
Alo mundojpa
 
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
 

Semelhante a Apontamentos psi m18

3260 php truquesmagicos %281%29
3260 php truquesmagicos %281%293260 php truquesmagicos %281%29
3260 php truquesmagicos %281%29
Juliana Nascimento
 
3260 php truquesmagicos
3260 php truquesmagicos3260 php truquesmagicos
3260 php truquesmagicos
Juliana Nascimento
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application Server
Fabricio Carvalho
 
Crud
CrudCrud
MODELO ASP
MODELO ASPMODELO ASP
MODELO ASP
ProfessorBillGates
 
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
Professor Samuel Ribeiro
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVC
Michael Costa
 
Apostila de sql basico
Apostila de sql basicoApostila de sql basico
Apostila de sql basico
Fernando Palma
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EE
Luan Felipe Knebel
 
Poster08
Poster08Poster08
Poster08
Simba Samuel
 
Introdução a data warehouse e olap
Introdução a data warehouse e olapIntrodução a data warehouse e olap
Introdução a data warehouse e olap
Flavia Martins Bispo
 
Introdução a data warehouse e olap
Introdução a data warehouse e olapIntrodução a data warehouse e olap
Introdução a data warehouse e olap
Fernando Palma
 
Web Sphere
Web SphereWeb Sphere
Web Sphere
Fabricio Carvalho
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
Rodolfo Fadino Junior
 
Oficina cake php
Oficina cake phpOficina cake php
Oficina cake php
Allan George
 
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Thyago Maia
 
Tutorial struts
Tutorial strutsTutorial struts
Tutorial struts
Fernando Palma
 
Prog web 05-php-mysql
Prog web 05-php-mysqlProg web 05-php-mysql
Prog web 05-php-mysql
Regis Magalhães
 
teste86940.78038637294
teste86940.78038637294teste86940.78038637294
teste86940.78038637294
Sávio Carvalho
 
Jsp+Jdbc+Servlets
Jsp+Jdbc+ServletsJsp+Jdbc+Servlets
Jsp+Jdbc+Servlets
Sávio Carvalho
 

Semelhante a Apontamentos psi m18 (20)

3260 php truquesmagicos %281%29
3260 php truquesmagicos %281%293260 php truquesmagicos %281%29
3260 php truquesmagicos %281%29
 
3260 php truquesmagicos
3260 php truquesmagicos3260 php truquesmagicos
3260 php truquesmagicos
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application Server
 
Crud
CrudCrud
Crud
 
MODELO ASP
MODELO ASPMODELO ASP
MODELO ASP
 
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVC
 
Apostila de sql basico
Apostila de sql basicoApostila de sql basico
Apostila de sql basico
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EE
 
Poster08
Poster08Poster08
Poster08
 
Introdução a data warehouse e olap
Introdução a data warehouse e olapIntrodução a data warehouse e olap
Introdução a data warehouse e olap
 
Introdução a data warehouse e olap
Introdução a data warehouse e olapIntrodução a data warehouse e olap
Introdução a data warehouse e olap
 
Web Sphere
Web SphereWeb Sphere
Web Sphere
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
Oficina cake php
Oficina cake phpOficina cake php
Oficina cake php
 
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1
 
Tutorial struts
Tutorial strutsTutorial struts
Tutorial struts
 
Prog web 05-php-mysql
Prog web 05-php-mysqlProg web 05-php-mysql
Prog web 05-php-mysql
 
teste86940.78038637294
teste86940.78038637294teste86940.78038637294
teste86940.78038637294
 
Jsp+Jdbc+Servlets
Jsp+Jdbc+ServletsJsp+Jdbc+Servlets
Jsp+Jdbc+Servlets
 

Último

Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
TomasSousa7
 
0002_matematica_6ano livro de matemática
0002_matematica_6ano livro de matemática0002_matematica_6ano livro de matemática
0002_matematica_6ano livro de matemática
Giovana Gomes da Silva
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
mamaeieby
 
Atividade letra da música - Espalhe Amor, Anavitória.
Atividade letra da música - Espalhe  Amor, Anavitória.Atividade letra da música - Espalhe  Amor, Anavitória.
Atividade letra da música - Espalhe Amor, Anavitória.
Mary Alvarenga
 
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
MessiasMarianoG
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
RenanSilva991968
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
DECIOMAURINARAMOS
 
Aula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sonsAula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sons
Érika Rufo
 
Egito antigo resumo - aula de história.pdf
Egito antigo resumo - aula de história.pdfEgito antigo resumo - aula de história.pdf
Egito antigo resumo - aula de história.pdf
sthefanydesr
 
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.pptEstrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
livrosjovert
 
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Centro Jacques Delors
 
educação inclusiva na atualidade como ela se estabelece atualmente
educação inclusiva na atualidade como ela se estabelece atualmenteeducação inclusiva na atualidade como ela se estabelece atualmente
educação inclusiva na atualidade como ela se estabelece atualmente
DeuzinhaAzevedo
 
Funções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prismaFunções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prisma
djincognito
 
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdfCaderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
enpfilosofiaufu
 
Livro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo FreireLivro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo Freire
WelberMerlinCardoso
 
Sócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slidesSócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slides
jbellas2
 
Caça-palavras - ortografia S, SS, X, C e Z
Caça-palavras - ortografia  S, SS, X, C e ZCaça-palavras - ortografia  S, SS, X, C e Z
Caça-palavras - ortografia S, SS, X, C e Z
Mary Alvarenga
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
Pastor Robson Colaço
 
“A classe operária vai ao paraíso os modos de produzir e trabalhar ao longo ...
“A classe operária vai ao paraíso  os modos de produzir e trabalhar ao longo ...“A classe operária vai ao paraíso  os modos de produzir e trabalhar ao longo ...
“A classe operária vai ao paraíso os modos de produzir e trabalhar ao longo ...
AdrianoMontagna1
 
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdfCADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
NatySousa3
 

Último (20)

Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
 
0002_matematica_6ano livro de matemática
0002_matematica_6ano livro de matemática0002_matematica_6ano livro de matemática
0002_matematica_6ano livro de matemática
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
 
Atividade letra da música - Espalhe Amor, Anavitória.
Atividade letra da música - Espalhe  Amor, Anavitória.Atividade letra da música - Espalhe  Amor, Anavitória.
Atividade letra da música - Espalhe Amor, Anavitória.
 
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
 
Aula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sonsAula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sons
 
Egito antigo resumo - aula de história.pdf
Egito antigo resumo - aula de história.pdfEgito antigo resumo - aula de história.pdf
Egito antigo resumo - aula de história.pdf
 
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.pptEstrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
 
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
 
educação inclusiva na atualidade como ela se estabelece atualmente
educação inclusiva na atualidade como ela se estabelece atualmenteeducação inclusiva na atualidade como ela se estabelece atualmente
educação inclusiva na atualidade como ela se estabelece atualmente
 
Funções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prismaFunções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prisma
 
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdfCaderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
 
Livro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo FreireLivro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo Freire
 
Sócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slidesSócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slides
 
Caça-palavras - ortografia S, SS, X, C e Z
Caça-palavras - ortografia  S, SS, X, C e ZCaça-palavras - ortografia  S, SS, X, C e Z
Caça-palavras - ortografia S, SS, X, C e Z
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
 
“A classe operária vai ao paraíso os modos de produzir e trabalhar ao longo ...
“A classe operária vai ao paraíso  os modos de produzir e trabalhar ao longo ...“A classe operária vai ao paraíso  os modos de produzir e trabalhar ao longo ...
“A classe operária vai ao paraíso os modos de produzir e trabalhar ao longo ...
 
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdfCADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
 

Apontamentos psi m18

  • 1. Agrupamento de Escolas da Batalha 160301 O PHP e as Bases de Dados Neste módulo, iremos ver como poderemos utilizar as funcionalidades das bases de dados em conjunto com o desenvolvimento das aplicações de Web. A linguagem PHP permite conferir às aplicações de Web a ligação necessária e obrigatória dos sistemas mais modernos a bases de dados, dando-lhe o dinamismo necessário para uma maior interatividade. Interatividade das Aplicações de Web Um dos aspetos mais interessantes que permitem um maior dinamismo com as páginas de Web é obtido com o recurso à interacção com bases de dados. Assim, é possível manipular os dados aí armazenados e criar páginas instantaneamente consoante os pedidos dos utilizadores, obtendo-se uma maior interatividade. Iremos debruçarmo-nos sobre a forma como o PHP consegue manipular dados externos armazenados em bases de dados com o recurso a comandos básicos SQL (Structured Query Language). É necessário ainda possuir conhecimentos mínimos de HTML, além do básico sobre bases de dados e principalmente linguagem SQL. Para que se consiga entender melhor as caraterísticas do PHP relativamente às potencialidades de interação com bases de dados, iremos criar uma base de dados simples em MySQL, e desenvolveremos uma pequena aplicação constituída por um variado grupo de scripts capazes de efetuarem um conjunto de operações básicas, tais como selecionar, inserir, eliminar e alterar registos de uma base de dados. Indicar-se-á também o procedimento a tomar para usar bases de dados em Microsoft Access e indicar-se-á, exemplificando, as potencialidades de uma ferramenta capaz, de, juntamente com o PHP, usar um conjunto de instruções que atuam de modo idêntico nos vários tipos de bases de dados suportados. Iremos acrescentar a estes scripts um conjunto de funcionalidades (navegação entre páginas contendo registos; envio de emails e realização de uploads; redirecionamento de páginas; autenticação de utilizadores; limitação de endereços) capazes de permitirem a criação de uma aplicação suficientemente elucidativa das capacidades desta linguagem e a sua integração com base de dados. Fases do Processo de consulta a uma base de dados via Web e com PHP Figura 1 - Representação esquemática do funcionamento de uma consulta a uma base de dados via Web com scripts PHP CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 1
  • 2. Agrupamento de Escolas da Batalha 160301 Este processo passa pelas seguintes fases principais: 1 – O Web Browser ou cliente Web (por exemplo o Internet Explorer) envia um pedido, através de um formulário, para acesso a uma base de dados que está dentro ou ligada ao servidor Web. 2 – O Servidor Web recebe a comunicação dos dados do formulário (pelo método Get ou Post) e detecta a indicação de um script PHP (no atributo “action” do formulário) e chama esse script para que ele receba e processe os dados. 3 – O Interpretador de PHP faz a interpretação do script mencionado e detecta um pedido de ligação a um sistema de bases de dados, tenta efectivar essa ligação e, se o conseguir, envia-lhe um comando SQL a executar na base de dados em causa. 4 – O Servidor de Base 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. 5 – O Interpretador de Scripts PHP recebe os resultados enviados pelo servidor da base de dados e prepara esses resultados para os poder entregar ao servidor Web em formato compatível com o HTML. 6 – O Servidor Web recebe os dados do interpretador de PHP, inere-os num documento HTML ou página Web e envia essa informação ao cliente (Web browser) que a solicitou. Acabámos de ver com detalhe todos os passos de uma consulta (ou outro tipo de acção) em relação a uma base de dados com scripts PHP. Vejamos agora os passos ou etapas que um programador deste tipo de serviços Web deve ter em conta ao escrever um script PHP: 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 ou conexão ao sistema de base de dados que estiver a ser utilizado. 3 – Elaborar e aplicar um determinado comando SQL com que se pretendem obter determinados resultados em relação à base de dados visada. 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. CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 2
  • 3. Agrupamento de Escolas da Batalha 160301 Introdução ao MySQL Iremos efetuar uma abordagem à forma como selecionar, adicionar, eliminar e alterar dados em MySQL. Criamos então uma base de dados simples de modo a mostrar aspetos básicos do uso do MySQL, utilizando como interface de ligação a linguagem SQL. Pressupõe-se que possui o MySQL corretamente instalado, permitindo ao servidor de MySQL estabelecer ligações a possíveis clientes. Figura 2 - Prompt MySQL numa janela DOS em ambiente Windows A partir do momento em que se obtenha ligação ao servidor MySQL poderemos usar um conjunto bastante grande de instruções para obter informações acerca das bases de dados e respetivas tabelas. Assim, e de entre outras poderemos usar as seguintes instruções para: 1 -Visualizar as bases de dados já existentes no servidor MySQL: Show databases; 2 – Seleccionar uma base de dados do servidor MySQL: Use nome_base_dados; 3 – Saber qual a base de dados actualmente seleccionada (em uso): Select database(); 4 – Saber quais as tabelas que constituem a base de dados em uso: Show tables; 5 – Saber a estrutura de uma das tabelas da base de dados: Describe nome_tabela; A base de dados a criar terá o nome “vendas” e será constituída por uma única tabela de nome “clientes” com apenas 3 colunas(atributos/campos): cod_cli (código do cliente); nome e morada.  Criação da base de dados “vendas”: Create database vendas;  Adição de tabelas na base de dados “vendas”: Use vendas; Create table clientes (cod_cli int not null auto_increment primary key, nome varchar(40), morada varchar (12)); Primary key – chave primária Auto_increment – o campo é automaticamente incrementado de uma unidade sempre que se adiciona um registo. Not Null – o campo não poderá ficar vazio.  Por fim, insira alguns registos na base de dados “vendas” criada. CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 3
  • 4. Agrupamento de Escolas da Batalha 160301 LIGAÇÃO A BASES DE DADOS EM PHP 1 - Principais funções com suporte ao MySQL Para conseguir efetuar as ligações a base de dados e posteriormente, se consigam manusear os dados aí armazenados, o PHP fornece um conjunto suficientemente vasto de funções para o MySQL, que de seguida iremos descrever, dando alguns exemplos onde se verifica a sua utilização:  mysql_connect – estabelece uma ligação ao servidor MySQL;  mysql_pconnect – estabelece uma ligação persistente ao servidor MySQL ; A ligação ao MySQL não termina após a execução do script nem com o mysql_close(), permanecendo ativa para o uso futuro.  mysql_close – a ligação ao servidor é cortada após a execução do script sendo por isso necessária uma certa razoabilidade na sua utilização(ligação);  mysql_create_db – cria uma base de dados (base de dados, ligação);  mysql_drop_db – Elimina uma base de dados( base de dados, ligação);  mysql_select_db – Selecciona para uso uma base de dados (base de dados, ligação);  mysql_db_query – selecciona e interroga uma base de dados(base de dados, pergunta_sql, ligação);  mysql_query – interroga uma base de dados (pergunta_sql, ligação);  mysql_fetch_row – selecciona uma linha (registo) do resultado da interrogação previamente efectuada à base de dados. O registo é armazenado sob a forma de uma matriz(array), correspondendo cada campo ao número do índice do array. A sua utilização obedece aos seguintes parâmetros: mysql_fetch_row($resultado). A execução subsequente de um novo mysql_fetch_row() faz avançar para o registo seguinte seleccionando-o;  mysql_fetch_array ($resultado, $tipo_de_resultado)  mysql_result – armazena o conteúdo de um campo a partir de uma interrogação previamente efectuada à base de dados;  mysql_result ( $resultado,$numero_linha, $campo) – por questões de performance, é sempre preferível usar as funções anteriores. 2 – Exemplo de Aplicação das Funções PHP de ligação a base de dados MySQL Seguidamente, vamos exemplificar usando algumas destas funções sobre a base de dados “vendas” criada previamente em MySQL. Note que o utilizador e a respetiva password varia consoante o servidor, devendo por isso adaptar-se à sua situação em concreto. Esquema Global da aplicação criada para aceder a uma base de dados a partir de formulários HTML e scripts PHP CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 4
  • 5. Agrupamento de Escolas da Batalha 160301 2.1. Criação de um formulário de entrada de dados na base de dados e um script em PHP para tratar os dados enviados 2.1.1. Entra_clientes.html: <html> <head> <title>Entrar</title> </head> <body> <h2> Entrar e inserir dados </h2> <form action="insere_clientes.php" method="post"> <table border="1"> <tr> <td> Código do cliente: </td> <td> <input type="text" name="cod_cli"> </td> </tr> <tr> <td> Nome do cliente: </td> <td> <input type="text" name="nome"> </td> </tr> <tr> <td> Morada do cliente: </td> <td> <input type="text" name="morada"> </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="Registar"> </td></tr> </table> </form> <a href="lista_clientes.php">Listar registos </a><p> <a href="procura_clientes.html">Procurar registos</a> </body> </html> CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 5
  • 6. Agrupamento de Escolas da Batalha 160301 2.1.2. Insere_clientes.php: <html> <head> <title> Inserir </title> </head> <body> <h2> Inserir Registos </h2> <?php $cod_cli = $_POST['cod_cli']; $nome = $_POST['nome']; $morada = $_POST['morada']; if (!$cod_cli || !$nome || !$morada) { echo 'Campos em falta. Volte atrás e tente de novo.'; exit;} echo 'Dados recebidos: <br />'; echo 'Código: '.$cod_cli.'<br />'; echo 'Nome: '.$nome.'<br />'; echo 'Morada: '.$morada.'<br />'; $ligax = mysqli_connect('localhost', 'root',''); if (!$ligax) {echo '<p> Erro: Falha na ligação.'; exit;} mysqli_select_db($ligax, 'vendas'); $insere = "insert into Clientes values ('".$cod_cli."','".$nome."', '".$morada."')"; $result = mysqli_query($ligax, $insere); if ($result==1) echo "<p>Dados inseridos<br>"; else "<p>Dados não inseridos<br>"; ?> <p> <a href="entra_clientes.html">Voltar à entrada</a> <p> <a href="lista_clientes.php">Listar registos</a> </body> </html> CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 6
  • 7. Agrupamento de Escolas da Batalha 160301 Explicação das instruções que compõem o script anterior: Este script começa com as instruções típicas para captar os dados recebidos do formulário com o método POST: $cod_cli = $_POST['cod_cli']; $nome = $_POST['nome']; $morada = $_POST['morada'];  A primeira instrução capta para a variável $cod_cli, o conteúdo do campo [‘cod_cli’] do array associativo $_POST. Este campo diz respeito à primeira caixa de Input do form. As outras 2 instruções fazem o mesmo para com os outros dois campos do formulário (nome e morada).  if (!$cod_cli || !$nome || !$morada) – esta condição avalia se alguma das variáveis contém um valor nulo ou string vazia – por exemplo: (!cod_cli); se isso acontecer, então é apresentada a mensagem: Campos em falta. Volte atrás e tente de novo. Além disso, o script termina com a instrução”exit”. Se a condição não se verificar, então, o script continua. E começa por apresentar os dados recebidos do formulário, com instruções como o seguinte: echo 'Código: '.$cod_cli.'<br />'; Esta foi a primeira fase das 4 fases deste tipo de scripts – captar e verificar os dados. Segue-se a 2ª fase que consiste em estabelecer a ligação ao sistema da base de dados – neste caso, ao MySQL. E, neste caso, isso é feito com a seguinte instrução: $ligax = mysqli_connect('localhost', 'root',' '); A ligação é efetuada através de uma função predefinida do PHP: mysqli_connect(). Em qualquer dessas funções temos de indicar os seguintes 3 parâmetros:  Localhost – nome do servidor;  Root – nome do utilizador;  ‘ ‘ – palavra passe vazia  Se a ligação for bem sucedida, a variável $ligax recebe o recurso que controla a ligação; se, por algum motivo, a ligação falhar, a variável $ligax fica com o valor nulo. No script anterior, temos a seguinte instrução: if (!$ligax) {echo '<p> Erro: Falha na ligação.'; exit;}  Se variável $ligax tiver valor nulo então, é apresentada uma mensagem de erro e o script termina com “exit”.  Se a ligação for bem sucedida, o script continua. Para completar a ligação à base de dados temos de indicar o seu nome. CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 7
  • 8. Agrupamento de Escolas da Batalha 160301  Com a seguinte instrução: mysqli_select_db($ligax, 'vendas'); A função mysqli_select_db() permite seleccionar a base de dados e pede os dois seguintes parâmetros:  $ligax – a variável do recurso da ligação; Vendas – o nome da base de dados. Se a ligação à base de dados for bem sucedida, passamos à 3ª fase do script – a acção sobre a base de dados. Neste caso, a acção consiste num comando SQL para inserir os dados na tabela. $insere = "insert into Clientes values (' ".$cod_cli." ',' ".$nome." ', ' ".$morada." ')"; É habitual usar-se uma variável para escrever o comando SQL. Neste caso, a variável $insere recebe a string com o comando: “insert into clientes values …” Os valores a inserir são indicados com os nomes das variáveis que contêm os dados: $cod_cli, $nome e $morada. Os nomes estão escritos dentro das aspas que iniciam a string do comando “insert”. Cada dado a inserir na tabela tem de ser incluído dentro de aspas. Neste caso, as strings a inserir são fornecidas através de variáveis. Um comando SQL é enviado à base de dados através de uma função PHP: $result = mysqli_query($ligax, $insere); A função mysqli_query() usa neste caso os seguintes argumentos:  $ligax – a variável do recurso da ligação;  $insere – variável que contém o comando. O resultado do comando SQL é devolvido á variável $result. CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 8
  • 9. Agrupamento de Escolas da Batalha 160301 2.2. Para visualizar os resultados aramazenados na tabela “clientes”, foi criado o script Lista_clientes.PHP: <html> <head> <title>Listar</title> </head> <body> <h3> Listar Registos </h3> <a href="entrar.htm">Voltar à entrada</a> <p> <?php $ligax = mysqli_connect('localhost', 'root', ''); if (!$ligax){echo '<p> Falha na ligação.'; exit;} mysqli_select_db($ligax, 'vendas'); $consulta = "Select * From clientes"; $result = mysqli_query($ligax, $consulta); $nregistos = mysqli_num_rows($result); echo 'Nº de registos encontrados: '.$nregistos; ?> <table border="1"> <tr><td> Código cliente: <td> Nome: <td> Morada: </tr> <?php for ($i=0; $i <$nregistos; $i++) { $registo = mysqli_fetch_assoc($result); echo '<tr>'; echo '<td>'.$registo['cod_cli'].'</td>'; echo '<td>'.$registo['Nome'].'</td>'; echo '<td>'.$registo['Morada'].'<td>'; echo '</tr>'; echo '</p>'; } ?> </table> </body> </html> CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 9
  • 10. Agrupamento de Escolas da Batalha 160301 Explicação das instruções que compõem o script anterior:  $ligax = mysqli_connect('localhost', 'root', ''); - Ligação ao servidor MySQL;  mysqli_select_db($ligax, 'vendas'); - indica o nome da base de dados a ligar;  $consulta = "Select * From clientes"; - comando SQL que mostra todos os dados da tabela;  $result = mysqli_query($ligax, $consulta); - envia o comando (query) à base de dados através da função mysqli_query(). Neste caso, é a variável consulta que contém o comando SQL para efectuar a consulta e seleccionar todos os dados da tabela.  $nregistos = mysqli_num_rows($result); - a variável $result recebe o resultado da consulta efectuada e usa a função mysqli_num_rows() para contar o nº total de registos encontrados na consulta. Este número é atribuído à variável $nregistos.  $registo = mysqli_fetch_assoc($result); - esta instrução que está dentro do ciclo For usa a função mysqli_fetch_assoc() com a variável $result para captar, através da variável $registo, cada um dos registos contidos no resultado da consulta; as outras instruções do ciclo escrevem os valores dos campos da tabela clientes; por exemplo: echo '<td>'.$registo['Nome'].'</td>'; CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 10
  • 11. Agrupamento de Escolas da Batalha 160301 2.3. Criação de um formulário e um script para efectuar uma pesquisa na base de dados 2.3.1. procura_clientes.html: <html> <head> <title>Procurar</title> </head> <body> <h3>Escreva o nome a procurar</h3> <form action="mostra_clientes.php" method="post"> <table border="1"> <tr> <td> Nome a procurar: </td> <td> <input type="text" name="nome"></tr> <tr> <td colspan="2" align="center"> <input type="submit" value="Procurar registos"> </td></tr> </table> </form> <p> <a href="entra_clientes.html">Voltar à entrada</a> <p> <a href="lista_clientes.php">Listar registos</a> </body> </html> Explicação das instruções que compõem o script anterior: Foi concebido para o utilizador escrever um nome a procurar na tabela clientes. O formulário contém apenas um input do tipo “text” para a introdução de um nome e um botão do tipo “submit” para enviar os dados. <form action="mostra_clientes.php" method="post"> - indica o nome do script que irá tratar os dados. <p> <a href="entra_clientes.html">Voltar à entrada</a> - volta ao formulário inicial. <p> <a href="lista_clientes.php">Listar registos</a> - passa ao script lista_clientes.php. CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 11
  • 12. Agrupamento de Escolas da Batalha 160301 2.3.2. Mostra_clientes.php: <html> <head> <title>Mostrar</title> </head> <body> <h3>Mostrar nome procurado</h3> <?php $nomeproc = $_POST['nome']; if (!$nomeproc) {echo 'Volte atrás e escreva o nome.'; exit;} echo '<p>Nome procurado: '.$nomeproc. '<p>'; $ligax = mysqli_connect('localhost', 'root',''); if (!$ligax){echo '<p> Falha na ligação.'; exit; } mysqli_select_db($ligax, 'vendas'); $procura = "Select * From Clientes where nome like '%".$nomeproc."%'"; $result = mysqli_query($ligax, $procura); $nregistos = mysqli_num_rows($result); echo 'Nº de registos encontrados: '.$nregistos; ?> <table border="1"> <tr><td> Código: <td> Nome: <td> Morada: </tr> <?php for ($i=0; $i <$nregistos; $i++) { $registo = mysqli_fetch_assoc($result); echo '<tr> <td>'.$registo['cod_cli'].'</td>'; echo '<td>'.$registo['Nome'].'</td>'; echo '<td>'.$registo['Morada'].'<td></tr>'; } ?> </table> <p> <a href="lista_clientes.php"> Listar registos </a> <form action="remove_clientes.php" method="post"> <p>Para apagar um registo, escreva aqui o nome</p> <input type="text" name="nome"> <input type="submit" value="Apagar registo"></form></body></html> CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 12
  • 13. Agrupamento de Escolas da Batalha 160301 Explicação das instruções que compõem o script anterior: Neste script temos todas as 4 fases relativas a este tipo de scripts para interação com as bases de dados. 1ª FASE – captar e validar a base de dados: $nomeproc = $_POST['nome']; - a variável $nomeproc(nome procurado) recebe o dado proveniente do formulário procura_clientes.php( campo nome). if (!$ligax){echo '<p> Falha na ligação.'; exit; } – avalia se a variável $nomeproc tem um valor nulo ou string vazia e, se for esse o caso, é enviada uma mensagem a informar desse facto e o script termina com a instrução exit. 2ª FASE – Ligar ao MySQL e base de dados: Esta fase começa com a seguinte instrução: $ligax = mysqli_connect('localhost', 'root',''); Se a ligação não for bem sucedida, o script continua e indicamos a base de dados que pretendemos usar com a seguinte instrução: mysqli_select_db($ligax, 'vendas'); 3ª FASE – Interagir com a base de dados: Esta fase começa com a seguinte instrução: $procura = "Select * From Clientes where nome like '%".$nomeproc."%'"; Nesta instrução criamos a variável $procura para receber o comando SQL. Neste caso, trata-se de uma consulta (SQL) com uma condição: where nome like… Usamos aqui Like e não igual a para permitir encontrar nomes parecidos com outras palavras antes e/ou depois. Em seguida, esta consulta é enviada à base de dados com a seguinte instrução: $result = mysqli_query($ligax, $procura); A variável $result recebe o resultado desta consulta ou procura. A instrução que se segue: $nregistos = mysqli_num_rows($result); - capta para a variável $nregistos, número de registos encontrados na consulta. CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 13
  • 14. Agrupamento de Escolas da Batalha 160301 4ª FASE – Preparar os dados a apresentar: Neste caso, estamos a admitir a hipótese de serem encontrados vários registos com o nome indicado para a procura. Usa-se um ciclo for para escrever os registos encontrados: for ($i=0; $i <$nregistos; $i++) { $registo = mysqli_fetch_assoc($result); echo '<tr> <td>'.$registo['cod_cli'].'</td>'; echo '<td>'.$registo['Nome'].'</td>'; echo '<td>'.$registo['Morada'].'<td></tr>'; } Na parte final deste script, temos um pequeno formulário embebido no código php. Destina-se a permitir que um utilizador insira um nome para remover da base de dados e começa com a seguinte instrução: <form action="remove_clientes.php" method="post"> - indica que os dados enviados serão recebidos e tratados pelo script remove_clientes.php CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 14
  • 15. Agrupamento de Escolas da Batalha 160301 2.4. Criação de um script para remover um registo numa tabela da base de dados 2.4.1. remove_clientes.php: <html> <head> <title> Remover </title> </head> <body> <h2> Remover registo </h2> <?php $nomrem = $_POST['nome']; if (!$nomrem) {echo 'Volte atrás e escreva o nome.'; exit;} echo 'Nome a remover: '.$nomrem. '<p>'; $ligax = mysqli_connect('localhost', 'root',''); if (!$ligax){echo '<p>Falha na ligação.'; exit; } mysqli_select_db($ligax, 'vendas'); $consulta = "Select * From Clientes"; $result = mysqli_query($ligax, $consulta); $nr_antes = mysqli_num_rows($result); $remove = "delete from clientes where nome = '".$nomrem."'"; $result = mysqli_query($ligax, $remove); if ($result==0) echo "<p>Não removido<br>"; $consulta = "Select * From Clientes"; $result = mysqli_query($ligax, $consulta); $nr_depois = mysqli_num_rows($result); $nr_removidos = $nr_antes - $nr_depois; echo 'Nº de registos removidos: '.$nr_removidos; ?> <p> <a href="lista_clientes.php"> Listar registos </a> </body> </html> CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 15
  • 16. Agrupamento de Escolas da Batalha 160301 Explicação das instruções que compõem o script anterior: Este script destina-se a remover registos na tabela clientes e também contém as 4 fases. 1ª FASE – Captar e validar os dados: Esta fase começa com a instrução: $nomrem = $_POST['nome']; - a variável $nomerem (nome a remover) recebe o valor do campo [‘nome’] proveniente do formulário do script anterior (procura_clientes.php). Segue-se uma instrução com if ($nomerem) que avalia se a variável $nomerem contém um valor nulo, caso em que o script terminará. 2ªFASE – Ligar ao MySQL e à base de dados: Esta fase começa com a instrução: $ligax = mysqli_connect('localhost', 'root',' '); Se a ligação falhou o script termina. Se a ligação foi bem sucedida, o script continua, indicando-se a base de dados a usar: mysqli_select_db($ligax, 'vendas'); 3ªFASE – Interagir com a base de dados: $consulta = "Select * From Clientes"; $remove = "delete from clientes where nome = ' ".$nomrem." ' "; 4ªFASE – Preparar os dados a apresentar: Não tem dados a apresentar mas escreve o número de registos removidos. CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 16