Caderno DS - Linguagem de Programação para Web (2019.2 ETEPAC) PDF
Caderno DS - Linguagem de Programação para Web (2019.2 ETEPAC) PDF
Caderno DS - Linguagem de Programação para Web (2019.2 ETEPAC) PDF
Web
Witalo Diego Matias Nunes
Educação a Distância
Recife - PE
Revisão Diagramação
Witalo Diego Matias Nunes Jailson Miranda
José Américo Barros
Coordenação Executiva
Coordenação de Curso George Bento Catunda
José Américo Barros Renata Marques de Otero
Manoel Vanderley dos Santos Neto
Coordenação Design Educacional
Deisiane Gomes Bazante Coordenação Geral
Maria de Araújo Medeiros Souza
Design Educacional Maria de Lourdes Cordeiro Marques
Ana Cristina do Amaral e Silva Jaeger
Fernanda Paiva Furtado da Silveira Secretaria Executiva de
Izabela Pereira Cavalcanti Educação Integral e Profissional
Jailson Miranda
Roberto de Freitas Morais Sobrinho Escola Técnica Estadual
Professor Antônio Carlos Gomes da Costa
Descrição de imagens
Sunnye Rose Carlos Gomes Gerência de Educação a distância
N972l
Nunes, Witalo Diego Matias.
Linguagem de Programação para Web: Curso Técnico em Desenvolvimento de Sistemas:
Educação a distância / Witalo Diego Matias Nunes. – Recife: Escola Técnica Estadual Professor
Antônio Carlos Gomes da Costa, 2019.
77 p.: tab.
2.2 Echo........................................................................................................................................................... 22
2.6.1 If ............................................................................................................................................................. 31
2.6.2 If-Else...................................................................................................................................................... 31
2.8 Criando uma aplicação para realizar operações matemáticas simples .................................................... 36
3.Competência 03 | Desenvolver uma aplicação para realizar inclusão de registro em banco de dados
.............................................................................................................................................................. 37
3.9 Criando uma aplicação para realizar inclusão de registro em banco de dados ....................................... 48
5.Competência 05| Projeto: Desenvolver uma aplicação para emissão de um relatório a partir de um
banco de dados. ................................................................................................................................... 66
Conclusão ............................................................................................................................................. 74
Referências ........................................................................................................................................... 75
Vamos começar?
7
Competência 01
DICA IMPORTANTE!
Que tal pesquisar um pouco mais sobre o sistema binário? Acesse:
https://brasilescola.uol.com.br/matematica/sistema-numeracao-
binaria.htm
Esta linguagem é usada para criar aplicações, mas isso exige conhecimento específico e
ao mesmo tempo amplo, pois a falta de visão geral das tecnologias e protocolos envolvidos neste
processo comprometem o seu desenvolvimento.
8
Competência 01
9
Competência 01
Não parece muito complicado não é mesmo? Agora que conhecemos um pouco mais
sobre o funcionamento das páginas web, vamos nos aprofundar na linguagem que escolhemos, o
PHP.
DICA IMPORTANTE!
Quanto a execução, linguagens de programação podem ser dividas em
interpretadas e compiladas. Você sabe as diferenças entre elas? Acesse o link:
https://tinyurl.com/y5nxt6ll
O PHP (um acrônimo recursivo para Hypertext Preprocessor) é uma linguagem de script
de código aberto e de uso geral, muito utilizada e especialmente adequada para o desenvolvimento
web e que pode ser embutida dentro do HTML.
10
Competência 01
<!DOCTYPE HTML>
<html>
<head>
<title>Exemplo</title>
</head>
<body>
<?php
echo "Olá, eu sou um script PHP!";
?>
</body>
</html>
Em vez de muitos comandos para mostrar HTML (como acontece com as linguagens C ou
Perl), as páginas PHP contêm HTML em código mesclado que faz "alguma coisa" (neste caso, mostra
"Olá, eu sou um script PHP!"). O código PHP é delimitado por instruções de processamento (tags) de
início e fim <?php e ?> permitindo que você entre e saia do "modo PHP". (The PHP Group, 2019).
PHP é também uma linguagem de programação dinâmica repleta de funções capazes de
manipular banco de dados, formulários, documentos e até mesmo diretórios. Praticamente qualquer
projeto relacionado a websites pode ser desenvolvido utilizando esta linguagem.
1.3 História
O PHP nasceu em 1994 e traçou um caminho muito longo até os dias de hoje. Criado por
Rasmus Lerdof, foi inicialmente um conjunto simples de binários CGI (Common Gateway Interface)
escrito em linguagem C. Rasmus projetou neste início alguns scripts para acompanhar as visitas ao
11
Competência 01
seu currículo online. Posteriormente, novas funcionalidades foram desenvolvidas dando um novo
corpo ao que ele denominou de PHP Tools.
SAIBA MAIS!
Ficou curioso para conhecer toda a história e evolução desta
linguagem? Acesse:
https://www.php.net/manual/pt_BR/history.php
A linguagem PHP é bastante completa e possui uma série de vantagens que facilitam a
vida do desenvolvedor web. Podemos elencar algumas características importantes:
12
Competência 01
1.5 IDE
Figura 03 – Notepad++
Fonte: autor
Descrição: Tela principal da IDE Notepad++. A parte superior da tela é composta de menu e abas de formatação,
13
Competência 01
configuração e edição dos códigos em desenvolvimento. Logo abaixo, todo o espaço para digitação do código fonte da
aplicação em desenvolvimento.
14
Competência 01
15
Competência 01
Figura 07 – gEdit
Fonte: https://commons.wikimedia.org/wiki/File:Gedit_screenshot_(en).png
Descrição: Tela principal do programa gEdit. Na parte superior encontra-se a barra de título e menu. Abaixo, espaço
para digitação do código fonte.
16
Competência 01
Figura 08 – text-edit
Fonte: https://support.apple.com/pt-br/guide/textedit/welcome/mac
Descrição: Tela principal do programa text-edit. Na parte superior encontra-se a barra de título e logo abaixo, espaço
para digitação do código fonte.
Para executar os scripts escritos em PHP, precisamos de um servidor web que contenha
o módulo PHP interligado. Este servidor pode ser instalado em nosso próprio computador (servidor
local).
Porém, instalar um servidor web manualmente não é uma tarefa fácil. E agora?
Primeiro vamos conhecer como funciona um servidor web com o módulo PHP. O usuário
acessa o website (solicitação). Em seguida, o Apache executa o módulo PHP para interpretar o código
17
Competência 01
e caso necessário, consulta também o banco de dados. Por fim, o servidor gera o resultado em HTML
e envia a resposta ao usuário. Veja o esquema na figura 9:
Entendemos com um servidor web funciona? Vamos agora aprender como configura-lo
de maneira simples e fácil.
Graças a Apache Friends, um projeto sem fins lucrativos, temos o XAMPP. O XAMPP é um
pacote de softwares que reúne o servidor web Apache, o módulo PHP e Perl e também o banco de
dados MySQL. Sua instalação é simples e compatível com diversos sistemas operacionais.
https://sourceforge.net/projects/xampp/files/XAMPP%20Windows
/5.6.39/xampp-portable-win32-5.6.39-0-VC11.zip/download
18
Competência 01
VIDEOAULA!
A configuração do XAMPP é explicada em nossa primeira videoaula,
assista.
19
Competência 02
Cada linguagem de programação possui uma maneira específica de ser escrita. Em PHP,
para que a linguagem seja compreendida pelo computador são necessárias duas tarefas. A primeira
é que todo o script desenvolvido seja salvo com a extensão .php. A segunda e tão importante quanto
é que todo o código escrito seja delimitado pelas tags <?php no início e ?> ao final.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php echo "<p>Olá Mundo</p>"; ?>
</body>
</html>
20
Competência 02
Perceba que na construção das páginas web com PHP, códigos HTML também estão
inseridos em conjunto e que o resultado final gerado pelo servidor será uma página em HTML. Veja
o fluxo de processamento na figura 10, abaixo:
Vale salientar que somente o código presente entre as tags <?php e ?> é interpretado
pelo servidor.
SAIBA MAIS!
À medida que vamos escrevendo nossos códigos, centenas de linhas
podem compor o projeto. Para organizar, podemos utilizar
comentários dentro do próprio script. Aprenda a usar os
comentários em:
https://www.php.net/manual/pt_BR/language.basic-
syntax.comments.php
21
Competência 02
2.2 Echo
A instrução echo é utilizada em PHP para exibir uma ou mais strings (sequência de
caracteres). Veja o exemplo:
<html>
<head>
<title>Exemplo echo</title>
</head>
<body>
<?php echo "exibindo texto"; ?>
</body>
</html>
2.3 Variáveis
22
Competência 02
2.3.1 Tipos
O PHP suporta diversos tipos de dados. Quando declaramos variáveis, o PHP utiliza a
checagem de tipos dinâmica, ou seja, uma variável pode conter valores de diferentes tipos durante a
execução de um script. Deste modo, podemos afirmar que o PHP é uma linguagem dinamicamente
tipada ou ainda, fracamente tipada.
Os tipos de dados suportados são:
• Inteiro – utilizado para números inteiros.
• Ponto flutuante – utilizado para números reais.
• String – usado para strings de caracteres.
• Array – usado para comportar vários itens de dados do mesmo tipo.
• Objeto – específico para armazenar instâncias de classes.
• Booleanos – para valores verdadeiros ou falsos.
Usamos o termo declarar para dizer que estamos criando uma variável. Para criar uma
variável, devemos respeitar as características da linguagem e atribuir um valor utilizando o sinal de
igualdade (=).
Confira o exemplo 4:
23
Competência 02
<?php
$var = 'Marcos';
$Var = 'Helena';
echo "$var, $Var"; // exibe "Marcos, Helena"
Quando declaramos uma variável, esta pertence a um determinado local do código e este
local se chama escopo. A maioria das variáveis que criamos pertencem ao escopo local, mas nem
sempre é assim. Vamos conhecer os tipos de escopo?
• Escopo local
• Escopo global
• Escopo estático
• Escopo parâmetro
Variáveis criadas dentro de uma função, por exemplo, são por padrão introduzidas ao
escopo local. Desta maneira seu escopo está restrito, não havendo visibilidade de seu valor fora da
função.
24
Competência 02
SAIBA MAIS!
Funções em PHP são conjuntos de códigos responsáveis por
desempenhar uma determinada tarefa. Fazer um cálculo matemático
específico é um exemplo de função. Conheça um pouco mais em:
https://www.php.net/manual/pt_BR/functions.user-defined.php
Perceba no exemplo 5 que a variável $y está dentro da função teste(). Assim, a instrução
echo que neste código está fora da função teste(), não trará nenhum resultado na tela.
<?php
function teste() { //início da função
$y = 2 + 4; // variável $y no escopo local
} //fim da função
echo $y;
?>
No escopo global as variáveis declaradas têm seus valores disponíveis na memória para
todo o script, até o fim de sua execução. Entretanto, para que estas possam ser utilizadas dentro de
funções, precisamos “chama-las” usando a palavra-chave global. Confira no exemplo 6 abaixo:
<?php
$y = 4; //variável $y declarada globalmente
$z = 2; //variável $z declarada globalmente
function teste() { //iníco da função
global $y, $z; // declarando globalmente as variáveis dentro da
função teste()
$y = $y + $z; //soma das variáveis
} //fim da função
teste(); //carrega a função
echo $y; //exibe o valor de $y que é 6
?>
25
Competência 02
Conforme o exemplo 7 abaixo, entenda que cada vez que a função teste() for requisitada,
haverá um incremento no valor da variável $x, pois a mesma foi declarada como estática. O resultado
que irá aparecer na tela após a execução deste script é 123.
<?php
function teste() { //inicio da função teste
static $x=1; // variável $x declarada com a palavra-chave static
echo $x;
$x++; //operação de incremento
}
teste();
teste();
teste();
?>
2.4 Operadores
Nesta competência iremos desenvolver uma aplicação simples em PHP capaz de realizar
uma ou mais operações matemáticas. Para tanto, precisamos aprender também como funciona os
operadores.
26
Competência 02
Vejamos um exemplo:
<?php
$x = 1;
$y = 2;
echo $x + $y; //exemplo do uso do operador aritmético de soma
?>
É óbvio que o PHP não possui apenas este operador. Vamos conhece-los?
27
Competência 02
$x += $y $x = $x + $y Soma $y a $x
$x -= $y $x = $x - $y Subtrai $y de $x
$x *= $y $x = $x * $y Multiplica $x por $y
$x /= $y $x = $x / $y Divide $x por $y
$x %= $y $x = $x % $y Atribui a a $x o resto da divisão de $x por $y
28
Competência 02
Descrição: Tabela composta de três colunas, sendo a primeira a lista dos operadores, a segunda o seu nome e a
terceira, a sua descrição.
Como visto, o PHP possui uma série de operadores capazes de executar operações
específicas como as aritméticas, comparativas, incremento e decremento (unárias) e também lógicas.
Entenda também que estes operadores podem ser utilizados em conjunto.
2.5 Arrays
Vimos anteriormente que uma variável é capaz de armazenar um valor por vez. Porém,
ao contrário das variáveis, os arrays são capazes de guardar uma lista de dados, relacionados entre
chave e valor.
Fazendo uma breve analogia, podemos dizer que as variáveis são gavetas e que os arrays
são os armários.
29
Competência 02
Você pode estar se perguntando para que usar arrays, correto? Se você tivesse uma lista
com centenas de alunos e precisasse utilizar estes nomes em um script PHP, você iria declarar
variáveis com estes nomes uma a uma? Isso seria muito trabalhoso! Com os arrays esta tarefa se
torna muito mais simples, veja um exemplo prático:
<?php
$alunos = array("Joao", "Pedro", "Alberto", "Maria", "Helena");
?>
Em competências futuras do nosso curso, o array será necessário para exibir informações
que estão em um banco de dados, por exemplo. Desta maneira, é importantíssimo que o conceito de
array fique bastante claro. Se ficou alguma dúvida, confira nossos materiais completares e discuta no
fórum!
30
Competência 02
2.6.1 If
O if é uma estrutura de controle condicional que verifica uma condição e se esta for
verdadeira, o comando é executado. Vejamos a sua sintaxe:
<?php
$nota = 5;
$media = 6;
if ($nota < $media) {
echo "Sua nota está abaixo da média, estude mais um pouco!";
}
?>
2.6.2 If-Else
Na estrutura if-else temos uma espécie de duplo teste. Quando usamos if e else juntos,
podemos determinar ações distintas quando o if for falso. Veja a sintaxe:
<?php
$nota = 10;
$media = 6;
if ($nota < $media) {
echo "Sua nota está abaixo da média, estude mais um pouco!";
31
Competência 02
} else {
echo "A sua nota está acima da média, parabéns!";
}
?>
Se você não percebeu ainda, if significa SE e else significa SENÃO. Portanto, lendo o script
do exemplo 11 temos que: “ - Se $nota for menor que $media, exiba a mensagem: Sua nota está
abaixo da média, estude mais um pouco! Senão, exiba a mensagem: A sua nota está acima da média,
parabéns!
2.6.3 Switch
<?php
$nota = 5;
switch ($nota) {
case 0:
echo "a sua nota é zero";
break;
case 1:
echo "a sua nota é 1";
break;
case 5:
echo "a sua nota é cinco, você está próximo da média";
break;
case 10:
echo "parabéns! Você atingiu a maior nota.";
break;
}
?>
32
Competência 02
Note no exemplo 12 acima que quatro casos foram disponibilizados para a estrutura de
controle switch. Caso o valor da variável $nota fosse 0, o comando echo exibe na tela a mensagem “a
sua nota é zero”. Caso o valor de $nota fosse 5, o comando echo exibe na tela a mensagem "a sua
nota é cinco, você está próximo da média” e assim sucessivamente.
2.7.1 While
A estrutura while tem a função de repetir uma instrução enquanto uma expressão for
verdadeira.
33
Competência 02
<?php
$i = 1;
while ($i <= 10) {
echo "Esse número é " .$i. "\n";
$i++;
}
?>
No exemplo 13 acima temos que enquanto a variável $i for menor ou igual a 10, execute
o comando echo e incremente a variável em 1. Esse laço irá se repetir até que a variável $i seja igual
a 10.
2.7.2 Do-while
<?php
$x = 0;
do {
echo "esse numero é " .$x. "\n";
$x++;
} while ($x <= 4);
?>
34
Competência 02
verdadeira e então o comando echo é novamente acionado. Esse laço irá ocorrer até que $x seja
menor ou igual a quatro.
2.7.3 For
<?php
for ($x = 0; $x <= 5; $x++) {
echo "Esse numero é: " .$x. "\n";
}
?>
No exemplo 15, sabemos que a instrução deverá ser executada 5 vezes, portanto, o
comando echo será executado até que $x seja menor que ou igual a cinco.
2.7.4 Foreach
O foreach é utilizando apenas para criar laços a partir de arrays. Para cada repetição, o
valor do elemento é selecionado e atribuindo e sua respectiva chave relacionada, percorrendo a
matriz até o último elemento. Vejamos o exemplo 16 para um melhor entendimento:
<?php
$alunos = array("Pedro", "Helena", "Marcos", "Maria");
35
Competência 02
Neste exemplo, para cada aluno, temos uma chave que o identifica e
qual o seu valor (no caso nome). Confira o resultado desse script em:
https://ideone.com/PLPKBE
Você percebeu a importância das estruturas de repetição? Elas são indispensáveis para o
desenvolvimento de scripts em PHP e por isso, dedique-se e simule os exemplos no seu computador,
através do ambiente de testes que configuramos ou através da plataforma online Ideone.
Como dito anteriormente, o objetivo desta competência é criar uma aplicação para
realizar operações matemáticas simples.
Esta aplicação deverá ser entregue na atividade roteirizada da competência, pelo fórum.
Para norteá-lo, vamos usar alguns temas como exemplo:
• calcular a área de uma circunferência;
• identificar a idade atual de uma pessoa;
• descobrir o resto de uma divisão;
36
Competência 03
Pronto para se aprofundar um pouco mais? Tenho certeza que sim! Nesta competência
vamos aprender como o PHP se relaciona com o banco de dados MySQL.
Nos primeiros momentos desta competência iremos explorar e compreender alguns
conceitos importantes para manipular banco de dados usando PHP. Estudaremos as funções, os
formulários em HTML, as sessões e por fim, a introdução ao banco de dados propriamente dito.
Utilizar banco de dados com PHP não é uma tarefa difícil, basta dedicação a atenção ao
conteúdo que será estudado.
Agora vamos iniciar a competência estudando funções.
3.1 Funções
<?php
echo ucwords("seja bem-vindo");
?>
Outro exemplo a destacar é a função mysqli_connect(). Com ela faremos a conexão com
o banco de dados MySQL sem dificuldades.
37
Competência 03
<?php
mysqli_connect("localhost", "usuario", "senha", "base_dados");
?>
Mais à frente, na sessão 3.7 desta competência, iremos aprender como fazer na prática
esta conexão.
38
Competência 03
39
Competência 03
Descrição: Formulário de login do ava, contendo no topo a palavra acessar. Logo abaixo, o campo identificação do
usuário seguido do campo senha.
Quando as informações são enviadas para o script, o PHP recebe a informação através de
métodos e as manipula de acordo com o que foi programado. Vamos conhecer estes métodos?
Dissemos anteriormente que o PHP pode receber dados através de formulários HTML,
mas para que essa comunicação ocorra, é necessário utilizar um método. O POST é um dos métodos
responsáveis por capturar dados.
Quando criamos o formulário, devemos indicar no parâmetro method o seu tipo, neste
caso o post. Assim, quando clicarmos em cadastrar, o formulário irá enviar os dados dos campos
nome e sobrenome para a página acao.php.
Ótimo! Entendemos como funciona este método. Agora vamos aprender como o PHP
“captura” os dados deste formulário. Leia o código abaixo:
<?php
$nome = $_POST["nome"]; //captura o nome
$sobrenome = $_POST["sobrenome"]; //captura o sobrenome
40
Competência 03
Além do método POST que já estudamos, o PHP trabalha também com outro método
semelhante, o GET. As requisições do tipo GET são muito comuns e estão presentes em grande parte
dos websites da internet, com certeza você já deve ter visto o seu funcionamento na prática.
http://www.meusite.com.br/pagina.php?nome=maria
41
Competência 03
Adicionalmente, não é interessante utilizar este método para enviar dados confidenciais
como senhas, haja visto que a informação será visível a todos na própria URL. Para estes casos é mais
viável utilizar o método POST.
Que legal! Até agora entendemos como a informação pode ser enviada, só falta
entendermos como o PHP captura as informações utilizando este novo método.
<?php
$nome = $_GET["nome"]; //captura o nome
echo $nome; //exibe o nome na tela
?>
Conforme o exemplo 22 acima, para o que o PHP capture a informação vinda da URL,
basta que o verbo $_GET[ ] seja utilizado.
Desta forma, o script “pagina.php” receberá o valor “maria” da variável “nome” contidos
na url do exemplo 21 e exibirá o respectivo nome na tela.
3.4 Sessões
42
Competência 03
Os carrinhos de compra são apenas um exemplo do que as sessões são capazes de fazer.
Outras interações como login de acesso e personalização de cores e estilos nos websites também
fazem parte deste contexto.
Neste cenário o PHP mais uma vez facilita o nosso trabalho, disponibilizando funções
específicas para criar e manipular sessões. Para começar, devemos declarar no script a sua criação,
utilizando a função session_start(). Em seguida, definimos o(s) valor(res) que queremos gravar
usando o comando $_SESSION[ ].
<?php
session_start();
$_SESSION['nome'] = "Roberto";
if(isset($_SESSION['nome']))
echo "A sessão " . $_SESSION['nome'] . " existe!";
else
echo "A sessão não existe";
?>
43
Competência 03
Atualmente na versão 8.0, podemos destacar algumas das suas principais características
de acordo com (Oracle Corporation and/or its affiliates , 2019):
• Escrito em C e C++;
• Suporte a diversas plataformas como Linux, Windows, Solaris, Apple e FreeBSD;
• Armazena vários tipos de dados (https://dev.mysql.com/doc/refman/8.0/en/data-
types.html);
• Uso de autenticação criptografada, tornando-o seguro;
• Alta capacidade de armazenamento;
Para que possamos inserir dados no MySQL é preciso que haja a conexão entre o banco e
o script. Esta conectividade ocorrerá usando funções específicas do PHP.
44
Competência 03
Vamos começar?
<?php
$link = mysqli_connect("localhost", "root", "", "test");
//checando a conexão
if(!$link) {
printf ("Erro ao conectar ao banco de dados: ",
mysqli_connect_errno());
}
?>
Quadro 24 – Código fonte do script “conectar.php” para conectar ao banco de dados MySQL
Fonte: autor
Descrição: Código fonte demonstrando a conexão com PHP ao banco de dados MySQL.
45
Competência 03
No segundo parâmetro temos o usuário. Para este, o XAMPP define por padrão o usuário
root. O root possui todos os privilégios de administrador, permitindo que qualquer tarefa relacionada
ao banco de dados seja executada.
A senha, terceiro parâmetro presente na função, deixamos em branco. Sabemos que o
ambiente que configuramos no início do curso é de testes, então não há preocupação neste momento
como senhas.
O quarto e último parâmetro é o nome do banco de dados. Esta informação é importante
pois o MySQL é capaz de armazenar muitas bases ao mesmo tempo, por isso devemos identificar
exatamente qual deles iremos usar. Neste caso vamos usar o nome da nossa escola, etepac.
No tópico anterior aprendemos como conectar o PHP ao banco de dados MySQL. Nosso
trabalho agora será incluir registros.
Para fazer estas inclusões, utilizamos uma linguagem específica chamada SQL (Structured
Query Language) junto com a função mysqli_query() do PHP. O SQL é uma linguagem padrão para
criar, armazenar, manipular bancos e também recuperar dados (W3Schools, 2019).
Figura 15 – Linguagem PHP e SQL unidas para manipular um banco de dados MySQL
Fonte: autor
Descrição: Ao lado esquerdo em um retângulo azul, as linguagens PHP e SQL unidas. Ao centro, uma caixa de texto com
os dizeres “inserir dados (insert)”. Ao lado direito, o banco de dados MySQL.
Assim como acontece com todas as linguagens de programação, para programar em SQL
é preciso conhecer a sua sintaxe básica. Com este entendimento poderemos inserir, consultar,
atualizar e deletar informações em um banco de dados MySQL.
Vamos começar com o comando inserir (INSERT), pois o objetivo desta competência três
é que você aprenda a registrar dados.
46
Competência 03
De acordo como exemplo 25 acima, podemos entender que ao utilizar o comando insert,
devemos informar o nome da tabela e entre colchetes, os respectivos nomes dos campos. Em
seguida, definimos os valores.
tabela_1 etepac
• id • nome
• senha • nota
Banco de Dados
Muito bom! Já sabemos como conectar ao banco, o que é SQL e o que é tabela, agora
podemos desenvolver a nossa aplicação.
47
Competência 03
3.9 Criando uma aplicação para realizar inclusão de registro em banco de dados
Você lembra que na competência dois foi proposto que a aplicação fosse desenvolvida na
atividade roteirizada? Nesta competência não será diferente. Porém, precisaremos de algumas
informações preliminares para criá-la.
<!DOCTYPE html>
<html>
<head>
<title>Formulário de cadastro</title>
<style>
body { text-align:center; }
#ret div {
margin: 20px auto;
width: 50px;
height: 50px;
}
48
Competência 03
</style>
</head>
<body>
<div id="ret" class="retangulo" style="text-align: center;" >
<br />
<label id="texto01">CADASTRO</label>
<br /><br />
<form action="inserir.php" method="post">
<p>Nome do Aluno: <input type="text" name="aluno" /></p>
<p>Disciplina: <input type="text" name="disciplina" /></p>
<p>Nota1: <input type="text" name="nota1" /></p>
<p>Nota2: <input type="text" name="nota2" /></p>
<p>Nota3: <input type="text" name="nota3" /></p>
<p><input type="submit" name="submit" value="cadastrar" /></p>
</form>
</body>
</html>
Muito bem! Temos a parte um e dois disponíveis, partiremos então para a parte três. Este
script PHP é responsável por registrar as informações no banco de dados e será seu papel desenvolvê-
lo.
Para este processo precisaremos definir inicialmente cinco variáveis, sendo elas: aluno,
disciplina, nota1, nota2 e nota3. Após isso, escolhemos o método para capturar os valores do
formulário e em seguida, implementamos a instrução SQL com o comando INSERT.
49
Competência 03
50
Competência 04
Com o comando SELECT podemos realizar pesquisas e colher informações das tabelas do
banco de dados. Certamente este comando é uma das mais importantes instruções SQL, pois é com
ele que buscamos os dados de forma precisa.
Dentro da instrução SELECT, alguns parâmetros e cláusulas podem ser utilizados para
organizar os dados. Temos como exemplo o caractere asterisco “*” cuja a função é selecionar todas
as colunas de uma tabela. Outro parâmetro importante é o FROM, responsável por selecionar uma
tabela específica em um banco de dados.
Vejamos no exemplo a seguir como é simples utilizar a instrução:
51
Competência 04
Neste exemplo, dissemos através da linguagem SQL que todas as colunas da tabela etepac
devem ser selecionadas.
Ótimo! Chegamos a um ponto muito importante da nossa competência, pois agora iremos
desenvolver a parte da aplicação que consulta e exibe os dados.
Você lembra que na competência três desenvolvemos uma aplicação que registra dados
em um banco de dados? Tenho certeza que sim. Abra novamente esta aplicação e adicione alguns
alunos, sua disciplina e suas respectivas notas.
Feito isto, vamos aprender como utilizar uma função PHP muito importante, a
mysqli_fetch_array(). Esta função tem o papel fundamental de “puxar” os dados e guarda-los em
índices associativos, usando o nome dos campos como chave, em uma matriz. Talvez seja importante
rever o conceito de arrays, então, siga para a sessão 2.5 deste e-book.
O próximo passo será criar um script que consulte os dados no banco MySQL e retorne
o(s) valor(res), exibindo na tela.
Vamos recordar também que o PHP funciona com o HTML embutido, então não teremos
dificuldade em gerar uma página que contenha tanto a parte dinâmica, responsável pela manipulação
dos dados com o PHP, como também a parte visual, promovida pelo HTML.
Vamos a pratica:
Inicialmente, precisamos definir o layout HTML que irá mostrar as notas.
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border-collapse: collapse;
}
th, td {
52
Competência 04
padding: 5px;
}
th {
text-align: left;
}
</style>
</head>
<body>
<h2>Notas</h2>
<table style="width:100%">
<tr>
<th>Nome do Aluno</th>
<th>Disciplina</th>
<th>Nota 1</th>
<th>Nota 2</th>
<th>Nota 3</th>
</tr>
<tr>
<td>Aluno</td>
<td>Disciplina</td>
<td>Nota1</td>
<td>Nota2</td>
<td>Nota3</td>
</tr>
</table>
</body>
</html>
Este exemplo 29 trata-se apenas dos comandos HTML, ilustrando como as informações
serão exibidas na tela. Veja o resultado no navegador:
53
Competência 04
<?php
//fazendo a conexão com o banco de dados test
$link = mysqli_connect("localhost", "root", "", "test");
//checando a conexão
if(!$link) {
printf ("Erro ao conectar ao banco de dados: ",
mysqli_connect_errno());
}
//query SQL para selecionar os dados
$lista = mysqli_query($link, "SELECT * FROM etepac");
?>
<!DOCTYPE html>
54
Competência 04
<html>
<head>
<style>
table, th, td {
border-collapse: collapse;
}
th, td {
padding: 5px;
}
th {
text-align: left;
}
</style>
</head>
<body>
<h2>Notas</h2>
<table style="width:100%">
<tr>
<th>Nome do Aluno</th>
<th>Disciplina</th>
<th>Nota 1</th>
</tr>
<?php
//instrução de repetição while com a função mysqli_fetch_array
while($linha = mysqli_fetch_array($lista)) {
?>
<tr>
<td><?= $linha['aluno'] ?></td>
<td><?= $linha['disciplina'] ?></td>
<td><?= $linha['nota1'] ?></td>
</tr>
<?php
}
?>
</table>
</body>
</html>
55
Competência 04
específico, usando o nome do campo que desejamos. No caso do campo aluno, usamos a expressão
“<?= $linha['aluno'] ?>”. Veja o resultado final no navegador:
Você percebeu que no código novo do script consulta.php os campos nota 2 e nota 3
foram removidos? Esta ação foi intencional, pois você é quem irá desenvolver esta aplicação por
completo. 😊
Mas tenha calma, temos mais dois tópicos para estudar antes de postar a aplicação na
atividade roteirizada de número quatro!
Vamos em frente. Agora é a vez de aprender a alterar os dados que já foram registrados
anteriormente.
56
Competência 04
O comando UPDATE é mais uma instrução de suma importância na linguagem SQL. Com
esta, podemos modificar os dados que já foram inseridos no banco.
Se um cadastro foi feito erroneamente, este precisa ser corrigido e será com a instrução
UPDATE que fazemos isso.
Sintaxe do UPDATE:
UPDATE tabela SET coluna1 = valor1, coluna2 = valor2, ... WHERE condição
Para usar o UPDATE, devemos definir o nome da tabela e informar o parâmetro SET,
seguido das colunas e dos seus respectivos novos valores. Para selecionarmos uma determinada
informação no banco, usamos o parâmetro WHERE e expressamos a condição.
Na nossa aplicação, criamos uma coluna chamada “id” no banco de dados e será ela a
nossa referência para definir a condição.
Porém, antes de aplicar o comando UPDATE, precisamos recuperar os dados do banco e
gerar um link para efetivar essa modificação.
Vamos praticar? Analise o código a seguir:
<?php
$link = mysqli_connect("localhost", "root", "", "test");
//checando a conexão
if(!$link) {
printf ("Erro ao conectar ao banco de dados: ",
mysqli_connect_errno());
}
//query SQL para selecionar os dados
$lista = mysqli_query($link, "SELECT * FROM etepac");
?>
<!DOCTYPE html>
<html>
57
Competência 04
<head>
<style>
table, th, td {
border-collapse: collapse;
}
th, td {
padding: 5px;
}
th {
text-align: left;
}
</style>
</head>
<body>
<h2>Notas</h2>
<table style="width:100%">
<tr>
<th>Nome do Aluno</th>
<th>Disciplina</th>
<th>Nota 1</th>
</tr>
<?php
while($linha = mysqli_fetch_array($lista)) {
?>
<tr>
<td><?= $linha['aluno'] ?></td>
<td><?= $linha['disciplina'] ?></td>
<td><?= $linha['nota1'] ?></td>
<td><a href="formularioalterar.php?id=<?= $linha['id'] ?>">Alterar</td>
</tr>
<?php
}
?>
</table>
</body>
</html>
58
Competência 04
<?php
//usando o método GET para capturar o valor do campo id do formulário
$id = $_GET['id'];
//fazendo a conexão
$link = mysqli_connect("localhost", "root", "", "test");
//checando a conexão
if(!$link) {
printf ("Erro ao conectar ao banco de dados: ",
mysqli_connect_errno());
}
//query SQL para selecionar os dados
$lista = mysqli_query($link, "SELECT * FROM etepac WHERE id='$id'");
?>
<!DOCTYPE html>
<html>
59
Competência 04
<head>
<title>Formulario de cadastro</title>
<style>
body { text-align:center; }
#ret div {
margin: 20px auto;
width: 50px;
height: 50px;
}
</style>
</head>
<body>
<div id="ret" class="retangulo" style="text-align: center;" >
<br />
<label id="texto01">ATUALIZACAO DE CADASTRO</label>
<br /><br />
<form action="alterar.php" method="post">
<p>Nome do Aluno: <input type="text" name="aluno" value="<?=
$linha['aluno'] ?>" /></p>
<p>Disciplina: <input type="text" name="disciplina" value="<?=
$linha['disciplina'] ?>" /></p>
<p>Nota1: <input type="text" name="nota1" value="<?=
$linha['nota1'] ?>" /></p>
<input type="hidden" name="id" value="<?= $linha['id'] ?>" />
<p><input type="submit" name="submit" value="alterar" /></p>
</form>
</body>
</html>
Outra função presente neste formulário é o envio das informações para outro script, o
alterar.php, utilizando o método POST. Portanto, quando clicarmos no botão “alterar”, a modificação
será concluída.
O resultado do exemplo acima, quando clicamos em alterar a linha do aluno Diego, é:
60
Competência 04
<?php
$link = mysqli_connect("localhost", "root", "", "test");
//checando a conexão
if(!$link) {
printf ("Erro ao conectar ao banco de dados: ",
mysqli_connect_errno());
}
//definindo as variaveis para receber os dados do formulario
$id = $_POST['id'];
$aluno = $_POST['aluno'];
$disciplina = $_POST['disciplina'];
$nota1 = $_POST['nota1'];
61
Competência 04
Como podemos ver, o script alterar.php faz a conexão com o banco de dados, recebe os
valores das variáveis através do método POST e em seguida executa a instrução UPDATE, modificando
os dados conforme configurado. Ao final, a mensagem “Dados atualizados!” é exibida na tela.
Assim como no comando UPDATE, será necessário criar um link para deletar a
informação. Desta forma, iremos implementar este novo link no script consulta.php já criado
anteriormente.
Código fonte do arquivo consulta.php com o novo link excluir:
<?php
$link = mysqli_connect("localhost", "root", "", "test");
//checando a conexão
if(!$link) {
printf ("Erro ao conectar ao banco de dados: ",
mysqli_connect_errno());
}
//query SQL para selecionar os dados
$lista = mysqli_query($link, "SELECT * FROM etepac");
?>
62
Competência 04
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border-collapse: collapse;
}
th, td {
padding: 5px;
}
th {
text-align: left;
}
</style>
</head>
<body>
<h2>Notas</h2>
<table style="width:100%">
<tr>
<th>Nome do Aluno</th>
<th>Disciplina</th>
<th>Nota 1</th>
</tr>
<?php
while($linha = mysqli_fetch_array($lista)) {
?>
<tr>
<td><?= $linha['aluno'] ?></td>
<td><?= $linha['disciplina'] ?></td>
<td><?= $linha['nota1'] ?></td>
<td><a href="formularioalterar.php?id=<?= $linha['id'] ?>">Alterar</td>
<td><a href="excluir.php?id=<?= $linha['id'] ?>">Excluir</td>
</tr>
<?php
}
?>
</table>
</body>
</html>
63
Competência 04
<?php
$link = mysqli_connect("localhost", "root", "", "test");
//checando a conexão
if(!$link) {
printf ("Erro ao conectar ao banco de dados: ",
mysqli_connect_errno());
}
//definindo a variavel id utilizando o método GET
$id = $_GET['id'];
64
Competência 04
Descrição: Código fonte do script excluir.php responsável por apagar os dados em um banco utilizando o comando
DELETE em linguagem SQL.
65
Competência 05
Nesta competência vamos aprender como gerar relatórios em PDF utilizando uma
biblioteca PHP específica, a FPDF.
Sendo assim, o nosso objetivo específico será gerar um boletim de notas em PDF, usando
os dados que registramos anteriormente no banco MySQL.
66
Competência 05
FPDF é uma biblioteca livre e de código aberto escrita em PHP que permite gerar arquivos
no formato PDF.
Para utilizar a FPDF precisaremos antes de mais nada, fazer o seu download no link
http://www.fpdf.org/en/dl.php?v=181&f=zip.
O primeiro passo é criar um link redirecionando para o script criapdf.php. Vamos mais
uma vez utilizar o arquivo consulta.php que já conhecemos.
<?php
$link = mysqli_connect("localhost", "root", "", "test");
//checando a conexão
if(!$link) {
printf ("Erro ao conectar ao banco de dados: ",
mysqli_connect_errno());
}
67
Competência 05
<h2>Notas</h2>
<table style="width:100%">
<tr>
<th>Nome do Aluno</th>
<th>Disciplina</th>
<th>Nota 1</th>
</tr>
<?php
while($linha = mysqli_fetch_array($lista)) {
?>
<tr>
<td><?= $linha['aluno'] ?></td>
<td><?= $linha['disciplina'] ?></td>
<td><?= $linha['nota1'] ?></td>
<td><a href="formularioalterar.php?id=<?= $linha['id'] ?>">Alterar</td>
<td><a href="excluir.php?id=<?= $linha['id'] ?>">Excluir</td>
<td><a href="criapdf.php?id=<?= $linha['id'] ?>">Gerar boletim</td>
</tr>
<?php
}
?>
</table>
</body>
</html>
Diante do código acima, a linha hachurada em amarelo demonstra a criação do link que
encaminha a requisição ao script criapdf.php, responsável por gerar o documento em questão. Mais
uma vez utilizamos o campo “id” como referência na consulta ao banco de dados.
68
Competência 05
Acompanhe o código:
<?php
//informa ao script que o arquivo fpdf.php é requerido
require 'fpdf/fpdf.php';
//checando a conexão
if(!$link) {
69
Competência 05
$pdf->SetFont('arial','B',12);
$pdf->Cell(100,20,"Nome do Aluno: ",0,0,'L');
$pdf->setFont('arial','',12);
$pdf->Cell(0,20,$linha['aluno'],0,1,'L');
$pdf->SetFont('arial','B',12);
$pdf->Cell(100,20,"Disciplina: ",0,0,'L');
$pdf->setFont('arial','',12);
$pdf->Cell(0,20,$linha['disciplina'],0,1,'L');
$pdf->Ln(20);
$pdf->SetFont('arial','B',12);
$pdf->Cell(100,20,"NOTA 1: ",0,0,'L');
$pdf->setFont('arial','',12);
$pdf->Cell(0,20,$linha['nota1'],0,1,'L');
}
Uma das novidades apresentadas no exemplo acima é a declaração require. Esta função
tem por objetivo informar ao servidor PHP que o arquivo mencionado é necessário para que o resto
do script funcione. Caso este arquivo não esteja presente ou ainda com a nomenclatura errada, o
processo será interrompido e uma mensagem de erro será mostrada, conforme a imagem abaixo:
70
Competência 05
Você conseguiu identificar o motivo pelo qual este erro ocorreu? Caso não, perceba que
o arquivo chamado foi “dfpdf.php” e não “fpdf.php” que é o correto.
Dando continuidade na leitura do código, temos as linhas referentes a criação do nosso
boletim em PDF.
Vamos entender como funciona estas linhas:
• $pdf->Image('imagens/logo.jpg');
é a linha destinada para colocar uma imagem na página.
• $pdf->SetFont('arial','',12);
71
Competência 05
define a fonte que será usada para imprimir a informação. O primeiro parâmetro
define a família da fonte, o segundo o estilo de fonte e o terceiro, o seu tamanho.
• $pdf->Cell(30,20,"ID: ",0,0,'L');
tem a função de imprimir uma célula na página. Os parâmetros 30, 20, "ID: ", 0, 0 e
'L' são respectivamente largura, altura, texto a ser impresso, borda, posição e
alinhamento do texto.
• $pdf->Ln(20);
efetua a quebra de linha. O valor 20 é um parâmetro que define a altura desta
quebra.
• $pdf->Output('boletim.pdf', 'I');
gera o documento final com o nome “boletim.pdf” e com o parâmetro ‘I’, abre
automaticamente no navegador, caso um plugin para leitura de pdf esteja instalado.
Agora que sabemos com estas linhas de código funcionam, vamos acessar o script
consulta.php e gerar o boletim da aluna Helena, clicando no link “Gerar boletim”.
72
Competência 05
73
Conclusão
Prezado Aluno,
74
Referências
THE PHP GROUP. Sobre o PHP. Site do PHP, 2019. Disponivel em:
<https://www.php.net/manual/pt_BR/intro-whatis.php>. Acesso em: 04 Julho 2019.
WELLING, L.; THOMSON, L. PHP e Mysql - Desenvolvimento Web. 3ª. ed. Rio da Janeiro:
Elsevier, v. II, 2005.
FPDF Library. Site da biblioteca FPDF, 2019. Disponível em: < http://www.fpdf.org/>. Acesso
em: 23 de Agosto de 2019.
75
Minicurrículo do Professor
76