Prévia do material em texto
PROGRAMAÇÃO CODING WEB (PHP) Unidade 3 Acessando Banco de Dados em PHP CEO DAVID LIRA STEPHEN BARROS Diretora Editorial ALESSANDRA FERREIRA Gerente Editorial LAURA KRISTINA FRANCO DOS SANTOS Projeto Gráfico TIAGO DA ROCHA Autoria LUIZ FERNANDO CORCINI 4 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 A U TO RI A Luiz Fernando Corcini Sou formado em Engenharia Eletrônica, com especialização em Administração de TI, Mestre em Educação e Novas Tecnologias e Doutorando em Sistemas Tutores Inteligentes. Tenho experiência técnico-profissional na área de desenvolvimento e gestão da produção de softwares nas áreas de Gerenciamento de Processos Empresariais. Uso os recursos disponibilizados pela Web, há mais de 20 anos. Sou professor universitário, há mais de 15 anos, e já publiquei vários livros técnicos sobre assuntos voltados à área de informática. Sou apaixonado pelo que faço e adoro transmitir minha experiência de vida àqueles que estão iniciando em suas profissões. Por isso, fui convidado pela Editora Telesapiens a integrar seu elenco de autores independentes. Estou muito feliz em poder ajudar você nesta fase de muito estudo e trabalho. Conte comigo! 5PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 ÍC O N ES 6 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Introdução ao Banco de Dados .............................................. 10 Conceitos importantes .....................................................................................11 O que são Banco de Dados? .............................................................11 Outros conceitos .................................................................................12 Propriedades gerais do Banco de Dados ......................................................12 Atributo-chave ....................................................................................................15 Banco de Dados MySQL ...................................................................................17 Acessando o phpMyAdmin ................................................................17 Criando o primeiro Banco de Dados em MySQL .......................... 19 Manipulação de tabelas e campos .................................................................24 Inserindo registros numa tabela ......................................................24 Alterando registros em uma tabela ................................................. 28 Excluindo registros numa tabela ...................................................... 30 Localizando registros em uma tabela ............................................. 31 Usando banco de dados no Blog Pessoal .................................................... 35 Manipulação de dados no MySQL via PHP ............................ 40 Conectando a página web ao Banco de Dados via PHP ............................. 40 Atualizando a tabela de apresentação pessoal via MySQL ......... 43 Lendo os dados da tabela de apresentação via php ................... 44 Atualizando o Blog Pessoal ..............................................................................45 Funções e manipulação de arquivos .................................... 50 Funções ...............................................................................................................50 Usando funções no Blog ....................................................................52 Manipulação de arquivos .................................................................................57 Criar ou abrir um arquivo texto........................................................ 58 SU M Á RI O 7PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Fechar um arquivo texto ....................................................................59 Ler um arquivo texto ..........................................................................61 Ler uma linha do arquivo...................................................................62 Inserir conteúdo num arquivo txt .................................................... 64 Cookies, sessões e tratamento de erros ............................... 66 Cookies ...............................................................................................................66 Sessões ................................................................................................................68 Tratamento de erros .........................................................................................70 8 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 A PR ES EN TA ÇÃ O Seja bem-vindo à Unidade 3 – Utilizando Banco de Dados com PHP - da disciplina de Introdução ao Coding Web. O conteúdo desta Unidade está dividido em quatro módulos. No primeiro módulo, vamos entender o que é e para que serve um banco de dados. Conhecer quais são os principais tipos. Aprender os principais conceitos e funcionalidades do Banco de Dados MySQL. No segundo módulo, vamos aprender como manipular dados, armazenados em bancos de dados MySQL, por meio da linguagem PHP e suas interfaces de controle. No módulo três, aprenderemos como ler e gravar dados em arquivos texto. E por fim, no quarto módulo, aprenderemos aperfeiçoar programas em PHP por meio do uso de cookies e sessões de transação, bem como conhecer quais os tipos de erros detectados pela linguagem PHP. É claro que existe muito mais a aprender, mas o aprofundamento de cada um desses conhecimentos pode ser feito, acessando os links indicados durante o texto ou verificando as referências. Vamos começar? Excelente estudo para você! 9PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 O BJ ET IV O S Olá. Seja muito bem-vindo a nossa Unidade 3. O nosso objetivo é auxiliar você no desenvolvimento das seguintes competências profissionais até o término desta etapa de estudos: 1. Entender o que é e para que serve um banco de dados. Conhecer quais são os principais tipos. Conhecer os principais conceitos e funcionalidades do Banco de Dados MySQL. 2. Manipular dados armazenados em bancos de dados MySQL por meio da linguagem PHP e suas interfaces de controle. 3. Reconhecer a sintaxe e a funcionalidade das principais funções em PHP, com destaque para aquelas que permitem a manipulação de arquivos. 4. Aperfeiçoar programas em PHP por meio do uso de cookies e sessões de transação, bem como o tratamento de erros. Então? Preparado para uma viagem sem volta rumo ao conhecimento? Ao trabalho! 10 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Introdução ao Banco de Dados OBJETIVO Ao término deste capítulo, você será capaz de entender o que é e para que serve um banco de dados. Conhecer quais são os principais tipos. Conhecer os principais conceitos e funcionalidades do banco de dados MYSQ. E então? Motivado para desenvolver essa competência? Então vamos lá. Avante! Você já deve ter percebido, nas unidades anteriores, que as páginas Web contêm informações que poderiam ser armazenadas em algum lugar e apresentadas, conforme a necessidade ou perfil do usuário que a acessa. Isso faria com que as informações da página passassem a ter características dinâmicas, ou seja, poderiam ser alteradas, automaticamente, conforme o dia, o perfil do usuário, a relevância ou validade de uma informação. Pois bem, para armazenar esses textos, imagens ou qualquer outro dado, precisamos de um banco de dados. Mas, para utilizar os seus recursos, precisamos conhecer “o que ele é” e “como ele funciona”. Em outra disciplina, nomeadamente, “Banco de Dados”, você aprenderá mais detalhes sobre esta magnífica ferramenta. Aqui, nessa unidade letiva, trataremos apenas da introdução e das informações relevantes para que você compreenda como armazenar e utilizar dados, gravados em um banco de dados em sua página web. IMPORTANTE Banco de Dados não é a mesma coisa que Base de Dados, apesar de encontrarmos muitos livrose sites que os apresentam como sinônimos. Tudo tranquilo por enquanto? Então vamos lá! A aprendizagem não pode parar! 11PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Conceitos importantes O que são Banco de Dados? Pesquisamos autores/escritores e trouxemos algumas definições pra você: DEFINIÇÃO Banco de Dados é um conjunto de registros de dados que pode conter elementos para atender uma ou mais bases de dados. Exemplo: O Banco de Dados de RH contém as bases de dados de folha de pagamento, plano de férias, contribuições, treinamentos etc. Base de Dados é um conjunto de dados considerados para gerar uma determinada informação. Segundo Chu (1983), é um conjunto de arquivos ou tabelas relacionados entre si. Segundo o site Hostnet, disponível aqui, é um conjunto de dados inter-relacionados com uma estrutura regular (tabela) que organiza informação. Um Banco de Dados normalmente agrupa informações utilizadas para um mesmo fim. Conforme Matozzo (2000), é uma coleção de dados inter- relacionados logicamente. Exemplo: agendas de telefone. Para Silberschatz et al. (2012), é uma coleção de dados inter-relacionados, representando informações sobre um domínio específico. E, por fim, Rezende (2006), aponta que, sempre que for possível, agrupar informações que se relacionam e tratam de um mesmo assunto, podemos dizer que temos um banco de dados. 12 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Outros conceitos Das definições anteriores, você pode perceber alguns termos como: “dados”, “tabelas”, “registros” etc. que fazem parte desse universo de bando de dados e precisam ser esclarecidos. Então vamos a eles: • Dados- fatos ou acontecimentos que podem ser armazenados. Exemplo: nome, endereço, data de aniversário, dia da Independência, descrição, peso ou valor de um produto, conteúdo ou número de postagens em um blog etc. • Tabelas - são as estruturas de armazenamento de dados. • Campo da tabela - nome de uma posição na tabela na qual deve ser armazenado um dado. Exemplo: na tabela de contatos deve haver um campo chamado “nome do contato”. É neste local que o dado referente ao nome do contato deve ser colocado. • Conteúdo do campo é o valor (dado) que é armazenado no campo da tabela do Banco de Dados. • Informação - conjunto de dados compilados e processados, de acordo com a solicitação de consultas e análises. Propriedades gerais do Banco de Dados Conforme destacado por Takai et al. (2005), seguem-se as propriedades gerais de um banco de dados: 13PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 • Devem ser uma coleção de dados logicamente relacionados, com algum significado. Associações aleatórias de dados não podem ser chamadas de banco de dados. • Devem ser projetadas, construídas e preenchidas (instanciadas) com dados para um propósito específico. Têm um grupo de usuários e algumas aplicações pré- concebidas para atendê-los. • Representam algum aspecto do mundo real, algumas vezes, chamado de “minimundo”, cujas alterações devem provocar mudanças no conteúdo do bando de dados. • Precisam ter algum grau de interação com eventos do mundo real. • Devem ter uma fonte de dados. • Precisam ter uma audiência (alguém interessado) em seu conteúdo. Depois de tantas definições importantes, um exemplo pode ajudar a perceber como todos esses conceitos trabalham juntos. EXEMPLO: imagine uma Companhia de Aviação. Ela precisa armazenar os dados dos seus voos que podem ser: o número do voo, a tarifa, classe, origem e destino e o local onde esses dados são armazenados, chamado de tabela de voos. Mas, a mesma Cia precisa armazenar os dados dos seus passageiros, tais como nome e telefone. Esses dados dos passageiros poderiam ser armazenados numa outra tabela chamada tabela de passageiros. 14 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Figura 1 -Exemplo de tabelas e conteúdo dos campos (dados) Fonte: Elaborado pelo autor (2022 ). Note pela figura anterior, que os dados ficam organizados em campos e todos os campos ficam agrupados em tabelas. Não faria sentido ter o campo número do voo na tabela de passageiros e nem faria sentido ter o campo telefone do passageiro na tabela de voo, não é verdade? NOTA Duas considerações importantes: (1) Tabelas também são chamadas de entidades e seus campos também são conhecidos como atributos. (2) O modelo de apresentação em tabelas, como na figura anterior é chamado de modelo lógico que define quais as tabelas e o nome das colunas que as compõem, dependendo.do Bando de Dados que foi escolhido para o projeto. (REZENDE, 2006). Existe também o modelo conceitual que não será abordado nesse material, mas sim na disciplina que trata de projetos de banco de dados. Além do modelo conceitual e lógico, existe o modelo físico que, segundo Rezende (2006), nada mais é que a tradução do modelo lógico para a linguagem do software, escolhido para implementar o sistema. 15PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Voltando ao exemplo da Cia de voo: no final, você já deve ter percebido que uma Cia de Aviação tem muitas tabelas, cada qual sobre um conjunto de dados importante que precisa ser armazenado para posterior utilização ou verificação. Todas essas tabelas formam um Banco de Dados da Cia de Aviação. Atributo-chave Também conhecido como chave-primária (Primary-key), é um conceito muito importante para se entender como funciona o armazenamento e recuperação de dados na perspectiva de banco de dados. Repare na tabela de passageiros (figura anterior) que, teoricamente, não poderia haver dois registros do mesmo passageiro. Porém, quando se trata de armazenamento e recuperação de dados de maneira confiável, faz-se necessário que a diferença entre os registros dos passageiros seja expressa por meio de um ou mais atributos da tabela (SANCHES, 2005). É importante entender que poderia haver dois passageiros com o mesmo nome e, sendo assim, como poderíamos diferenciá- los, em caso de cobrança da passagem, algum ressarcimento ou mesmo, para fazer uma promoção. Então, a tabela de passageiros precisa mais um campo que não pode ter conteúdo nulo e nunca pode ser repetido, independente, do número de registros da tabela. Figura 2 – Passageiros com chave-primária Fonte: Elaborado pelo autor (2022 ). 16 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Na figura anterior, existem dois passageiros com o mesmo nome e é, exatamente nesse caso, que a chave-primária se faz necessária para diferenciar um passageiro (José Bonifácio) de outro. Você poderia argumentar que o campo telefone (terceira coluna da figura anterior) poderia ser usado como informação para distinguir entre um passageiro e outro. Mas, lembre-se que o campo chave-primária não pode ter conteúdo nulo ou vazio e, muitas vezes, as pessoas não informam seu número de telefone, por vários motivos: perdeu o telefone, vai trocar de número e não escolheu ainda uma operadora que agrade e assim por diante. Você também poderia argumentar que o campo CPF do passageiro poderia ser inserido na tabela da figura anterior, utilizado como atributo chave ou chave-primária. Nesse caso, faço uma pergunta: se o passageiro não for brasileiro e estiver no Brasil para turismo? Nesse caso, ele não teria CPF para informar. Teria sim, o número do passaporte. Mas esse número tem formatação diferente do número de CPF e não poderia ser usado um mesmo campo da tabela para armazenar os dois. É claro que existem soluções mais arrojadas, como chaves compostas, mas por enquanto, vamos adotar que cada tabela deva ter um campo a mais, além dos necessários para armazenar os dados do assunto ou objeto a que se destina. Esse campo a mais é o atributo-chave, normalmente, um contador de 1 a infinito, que vai garantir a integridade dos dados. Agora que você já entendeu os conceitos básicos de um banco de dados e seus componentes, vamos tratar do banco de dados chamado MySQL, que utilizaremos junto com o PHP, nas páginasHTML5 para armazenar e recuperar os dados do Blog. 17PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Banco de Dados MySQL O MySQL é um SGBD (Sistema Gerenciador de Banco de Dados) que utiliza linguagem SQL (linguagem de consulta estruturada). Segundo Rezende (2006), um SGBD é um software que tem recursos capazes de manipular as informações de banco de dados e interagir com o usuário. São exemplos de SGBD: MySQL, Oracle, SQL Server, DB2, PostgreSQL, entre outros. Conforme aponta Freitas (2013), o MySQL tem como principais objetivos: velocidade, robustez e facilidade de uso. Nesse material, usaremos o phpMyAdmin, software que vem no pacote do WampServer que você já instalou em sua máquina para poder trabalhar com as páginas em php da unidade letiva 2. O phpMyAdmin é uma ferramenta gratuita, escrita em linguagem PHP, que tem como função permitir a manipulação de dados do MySQL na web. Operações frequentes como gerenciamento de base de dados, tabelas, colunas, relações entre tabelas, índices, permissões de usuários etc. podem ser realizados por meio de uma interface amigável. Acessando o phpMyAdmin Para ter acesso ao phpMyAdmin, você precisa clicar com o botão esquerdo do mouse sobre o ícone do WampServer (que precisa estar em cor verde) e selecionar a opção phpMyAdmin, conforme mostra a figura a seguir: 18 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Figura 3 – Acessando o phpMyAdmin Fonte: Elaborado pelo autor (2022). Uma vez selecionada a opção phpMySQL, uma tela do navegador vai abrir com a interface dessa ferramenta. Figura 4 – Interface phpMySQL Fonte: Elaborado pelo autor (2022). Como você pode notar, existe muita coisa a ser explorada nessa interface, mas para sermos produtivos, vamos trabalhar apenas os itens que nos interessam para essa unidade letiva, 19PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 apresentando logo sejam necessárias. Assim, vamos as primeiras configurações: 1. Na parte centrar da interface phpMyAdmin, você pode reparar logo abaixo da guia “Databases” um painel chamado “General Settings”. No item “Server connection collation”, selecione a opção “latin1_swedish_ci” ou “utf8_general_ci”. Qualquer uma dessas opções possibilita o phpMyAdmin a trabalhar com codificação de caracteres, apropriado para armazenar dados em língua portuguesa. Figura 5 – Interface phpMySQL – Primeiras configurações Fonte: Elaborado pelo autor (2022).- 2. No painel “Appearance Settings”, selecione a “Language” para português ou qualquer outra de sua preferência. O “Theme” e o “Font size” pode deixar como está. Criando o primeiro Banco de Dados em MySQL Na mesma figura anterior, podemos verificar a guia Databases (ou Base de Dados, se você trocou a configuração para a interface ser apresentada em língua portuguesa). Que 20 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 tal criar uma base de dados de contatos para aprender como o phpMyAdimin funciona? Vamos lá! 3. Clique nessa aba e será apresentada a interface como na figura a seguir: Figura 6- Criando banco de dados em phpMyadmin Fonte: Elaborado pelo autor (2022). Para criar uma base de dados, digite o nome na caixa de texto destacado em cor vermelha (figura anterior). Pode ser, por exem- plo “Lista de Contatos”. Na caixa de seleção ao lado do nome da base de dados, selecione “latin1_swedish_ci” ou “utf8_general_ci”. 4. Clique no botão “Criar” e você perceberá que mais um item (Lista de Contatos) apareceu na lista de bases de dados da figura anterior. 5. Clique nesse item (Lista de Contatos) e a tela apresentada será como mostra a figura a seguir: 21PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 6. Digite o nome da tabela. Por exemplo: “Contatos”. Mas agora temos um problema: quantas colunas deve ter nossa tabela de contatos? Isso depende de quais dados vamos querer armazenar sobre os contatos. Uma sugestão: podemos fazer uma tabela de contatos simples e armazenar apenas o nome e o telefone. Isso equivale a duas colunas, mais uma coluna para a chave-primária. Então, digite 3 para o número de colunas e clique no botão “executar”. 7. Nesse momento, a tela deve ter a seguinte aparência: Figura 7- Criando uma tabela no banco de dados Fonte: Elaborado pelo autor (2022). 8. Preencha os campos, conforme apresentado na figura a seguir: 22 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Figura 8– Criando uma tabela no banco de dados Fonte: Elaborado pelo autor (2022). Note que os nomes das colunas foram declaradas à esquerda da tela, na coluna “Nome”. Ao lado dessa coluna, existe a coluna “Tipo”. Quando criamos um campo em uma tabela, precisamos definir que tipo de dados esse campo vai armazenar, pois são vários disponíveis. Por enquanto, selecione INT (inteiro) para o campo “Código” e “Varchar” para os campos Nome e Telefone. A terceira coluna da figura anterior é chamada de “Tamanho/ Valores”. Nessa coluna, você precisa informar qual o tamanho do campo que você vai criar para a tabela, isto é, quantos caracteres ele pode comportar. Para o caso do Nome, definimos um tamanho de 200 caracteres e para o caso do “Telefone”, 25 caracteres. Isto quer dizer que o tamanho do nome do meu contato não pode passar de 200 caracteres e o tamanho do numero de telefone não pode passar de 25 caracteres. Como você deve ter notado, não foi informado tamanho para o campo “Código”. De fato, por enquanto, só precisaremos definir tamanho para os campos do tipo VARCHAR ou TEXT. A quarta coluna da figura anterior é chamada de “Predefinido”. Somente é usado, quando queremos ter um valor predefinido para o nosso campo. Por exemplo, vamos supor que tivéssemos o campo “País” na nossa tabela. Neste campo nós informaríamos o país de origem do nosso contato. Poderíamos colocar “Brasil” como valor predefinido, pois a grande parte dos contatos que tenho são desse país. Um valor predefinido não impossibilita de selecionarmos outro país, mas já deixa o país escolhido predefinido no campo. 23PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 A quinta coluna é o agrupamento. Sempre selecione “latin1_swedish_ci” ou “utf8_general_ci” ,se você estiver trabalhando com dados em língua portuguesa. A sexta coluna deixaremos de lado por enquanto. A sétima coluna é chamada de “Nulo”. Você deve marcar o checkbox dessa coluna, apenas os campos que não forem de preenchimento obrigatório. No nosso caso do contato, o número de telefone não é obrigatório, isto é, pode ser “Nulo”. A oitava coluna trata do índice. Por enquanto, vamos utilizar apenas o PRIMARY para o primeiro campo “Código”. Para os demais campos (“Nome” e “Telefone”) não é necessário selecionar nada. A nona coluna é chamada de A_I (Auto incremento). Marcamos então o checkbox dessa coluna para todos os campos que queremos que se incrementem, automaticamente, a cada registro. Esse é o caso do campo “Código”. A décima e última coluna é chamada “Comentários” e, como o próprio nome diz, serve para colocar alguma observação ou comentário que esclareça que tipo de dado ou regra de negócio é necessário para o preenchimento do campo correspondente. Por fim, clique no botão Salvar e sua tela deve ter ficado assim: Figura 9 – Estrutura da tabela Contatos Fonte: Elaborado pelo autor (2022). 24 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Se clicarmos na aba “Visualizar”, teremos o resultado apresentado: Figura 10 – Visualizando os dados da tabela Contatos Fonte: Elaborado pelo autor (2022). Note que um aviso (em amarelo) informa que não foram encontrados registros de dados na tabela “Contato”. É claro, acabamos de criá-la e ela está vazia. Abaixo do aviso em amarelo, há uma linha de comando em linguagem SQL: “Select * from contatos”. Esse comando significa que o phpMyAdmin executou um pesquisa da seguinte forma: “Selecione todos os registros da tabela contatos”. E foi o resultado desta pesquisa que não retornou nenhum registro. Vamos aprender mais sobre os comandos básicos da linguagem SQL .nopróximo tópico desse material. Manipulação de tabelas e campos Neste momento, você já deve ter criado um banco de dados chamado “Lista de Contato” e um tabela chamada “Contatos” (que deve estar vazia). Nesse tópico, iremos aprender a inserir, alterar, excluir e localizar registros na tabela. 25PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Inserindo registros numa tabela Para inserir registros dos seus contatos na “tabela de contatos”, clique na aba Inserir (figura anterior) e a seguinte tela lhe será apresentada: Figura 11 – Inserindo registros na tabela Fonte: Elaborado pelo autor (2022). Note que não é necessário preencher o valor do campo código (marcado em azul), por que ele é auto incrementável, isto é, vai iniciar em 1 e, a cada novo registro, ser incrementado de uma unidade. Os campos que precisam ser preenchidos estão marcados com retângulo em vermelho. No primeiro, deve digitar o nome do contato e no segundo, seu telefone. OBS: o campo relativo ao telefone pode ser deixado sem preencher porque, quando da construção da tabela, nós o marcamos com a possibilidade de ser um campo NULO. Ao preencher os campos e clicar no botão “executar”, a tela vai se modificar para o seguinte: Figura 12 – Primeiro registro inserido na tabela Contatos. Fonte: Elaborado pelo autor (2022). 26 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Repare que na figura anterior apareceu (em amarelo) o recado de que uma linha de registros foi inserida e que o Id (identificador) da linha é o número 2 (círculo em vermelho). No seu caso pode aparecer o número 1 ou outro número diferente, dependendo de quantos testes você já fez com essa tabela. O retângulo em vermelho mostra o comando SQL para inserir o registro solicitado. Vamos usar esses comandos em breve. Para verificar o registro inserido, você precisa clicar na aba “Visualizar” (figura anterior) e poderá ver o seguinte resultado: Figura 13 – Visualizando o registro inserido na tabela contatos Fonte: Elaborado pelo autor (2022). No primeiro retângulo em vermelho, podemos verificar o comando SQL usado para listar todos os registros da tabela. Ao contrário do que aconteceu na figura anterior (não encontrou registro algum), desta vez, um registro foi encontrado e ele está apresentado no segundo retângulo em vermelho. Caso tivéssemos mais registros, estariam todos listado aí, um abaixo do outro. 27PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 EXEMPLO: inserir mais um registro na tabela com os seguintes dados de contato: (Nome: Andreia ; Telefone: 555444) e apresentar a tela de visualização. Resolvendo a atividade apresentada, no exemplo, temos que clicar na aba “Inserir” e digitar os dados informados, conforme apresentado na figura a seguir: Figura 14 _ Inserindo novo contato Fonte: Elaborado pelo autor (2022). Depois, clicamos no botão “Executar” e a tela de confirmação a seguir é apresentada: Figura 15 – Tela de confirmação de inclusão de novo registro na tabela Fonte: Elaborado pelo autor (2022). Por fim, clicamos na aba “Visualizar” e verificamos os dois contatos (dois registros) cadastrados (ou inseridos) na tabela contatos, como mostra a figura a seguir: 28 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Figura 16– Visualizando os registros inseridos na tabela contatos Fonte: Elaborado pelo autor (2022). Alterando registros em uma tabela Para alterar um registro de uma tabela usando o phpMyAdmin, é só escolher o registro a ser alterado e clicar sobre o link “Editar”. Esse link fica está presente em todas as linhas de registros da tabela (ver figura anterior). Então, clicando no link, o phpMyAdmin disponibiliza a seguinte tela de alteração de registro: Figura 17 – Alteração de registro da tabela contatos Fonte: Elaborado pelo autor (2022). 29PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Note que clicamos no registro do Luiz e, então, os dados desse contato apareceram para alteração. Se tivesse clicado no segundo registro em Andreia, seriam os dados dela que apareceriam para alteração. Altere os dados que desejar e depois clique no botão “Executar”. Como exemplo, vamos alterar o número de telefone do Luiz para 998959794. O resultado, depois de clicar no botão executar, fica assim: Figura 18 – Registro alterado Fonte: Elaborado pelo autor (2022). 30 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Note que o primeiro retângulo vermelho marca o código SQL ,usado para alterar os dados solicitados. O segundo retângulo vermelho marca os registros da tabela contatos, com o telefone do contato Luiz alterado. Excluindo registros numa tabela Para excluir um registro de uma tabela, usando o phpMyAdmin, é só escolher o registro a ser alterado e clicar sobre o link “Remover” que ficará presente em todas as linhas de registros da tabela ( figura anterior.) Então, clicando neste link, o phpMyAdmin disponibiliza a seguinte tela de confirmação de exclusão: Figura 19 – Tela de confirmação de exclusão de registro Fonte: Elaborado pelo autor (2022). Note que a figura anterior mostra o comando SQL, utilizado para excluir o registro com o campo “código” = 2. Ao olharmos na figura, podemos perceber que o registro cujo campo “Código” é 2 é o registro do contato Luiz. Caso você tenha clicado para remover o registro do contato Andreia, a mensagem da figura anterior será idêntica, apenas trocando o número 2 pelo número 3 (que é o “Código” da Andreia). Ao clicar em OK ( confirmar a exclusão do registro de “Código” igual 2), o phpMyAdmin apresenta a seguinte tela: 31PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Figura 20 – Registro Excluído Fonte: Elaborado pelo autor (2022). Perceba que, além do aviso em amarelo, informando que uma linha foi excluída, mais abaixo, na mesma figura, pode-se verificar que o registro do contato Luiz não consta mais na lista de registros da tabela contatos. Localizando registros em uma tabela Para localizar o registro na tabela contatos, precisamos primeiro procurar essa tabela com alguns registros a mais. Portanto, insira mais dois registros de contatos, como : Nome: Geraldo – Telefone: 123456 e Nome = Marcos – Telefone: 991925254. Nossa tabela de contatos fica assim: Figura 21 – Tabela de contatos com três registros Fonte: Elaborado pelo autor (2022). 32 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Agora, imagine que sua tabela de contatos contenha mais de 100 ou mais de 1000 pessoas e você quisesse localizar uma delas. Para isso, clique na aba “Procurar” e o phpMyAdmim disponibiliza uma tela de consulta parecida com a figura a seguir: Figura 22 – Tela de consulta de registros Fonte: Elaborado pelo autor (2022). Vamos usar, por enquanto, apenas a “Pesquisa de Tabela”. Note na parte superior da figura anterior que existem três tipos de pesquisa possíveis. EXEMPLO 1: procurar registros por código do contato não é uma opção muito comum , já que normalmente se tem acesso ao nome do contato. Mas vamos fazer como exemplo: localizar um contato que tenha o código igual a 4. Figura 23 – Localização de registro de contato pelo código 4 Fonte: Elaborado pelo autor (2022). Ao selecionar o operador de igualdade, colocar o número 4 na caixa de texto (valor), na figura citada e pressionar o botão executar, o phpMyAdmin retorna o seguinte: 33PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Figura 24 – Resultado da localização dos registros da tabela pelo código do contato Fonte: Elaborado pelo autor (2022). Voltando à figura, se você clicar na caixa de combinação referente aos operadores possíveis, verá que pode fazer pesquisas mais elaboradas, como mostra a seguir: Figura 25 – Opções de pesquisa pelo campo código do contato Fonte: Elaborado pelo autor (2022). As pesquisas pelo “Nome” ou pelo “Telefone” do contato são diferentes da pesquisa pelo código do contato, pois esse último é do tipo INT e os dois primeiros são do tipo VARCHAR. A figura a seguir mostra as opções de operadores para pesquisas pelo “Nome”ou “Telefone” do contato: 34 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Figura 26 – Pesquisa de registro por nome do contato Fonte: Elaborado pelo autor (2022). Destaca-se nessa pesquisa a presença de um caractere coringa: “%”. Para ajudar a compreender como funciona, daremos três exemplos: o primeiro sem usar o coringa e os dois últimos usando-o. Localize todos os contatos cujo campo nome tem a letra “A”. Se você utilizar o operador “=” você estará procurando todos os contatos cujo nome é igual a “A”, o que deve retornar uma lista vazia. Se você utilizar o operador “LIKE” terá o mesmo resultado que o operador “=”, a não ser que você coloque o coringa, da seguinte maneira: 35PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Figura 27 – Localização de registros pelo nome, utilizando caractere coringa Fonte: Elaborado pelo autor (2022). A fazer como mostra a figura anterior , a pesquisa retornará uma lista de todos os contatos que começam com a letra “A” (apenas a Andreia). Mas, você pode utilizar o mesmo operador “LIKE” para buscar todos os contatos que têm a letra “A” no nome. Para isso deve utilizar o caractere coringa da seguinte maneira: Figura 28 - Localização de registros pelo nome, utilizando caractere coringa Fonte: Elaborado pelo autor (2022). Nesse caso, o resultado é uma lista de registros cujos nomes dos contatos contenham a letra “a” ou “A” em qualquer lugar de seus nomes. Agora que você já tem uma ideia de como funciona um banco de dados, já sabe criar uma tabela e manipular registros, vamos aplicar esse conhecimento no nosso blog pessoal. Usando banco de dados no Blog Pessoal No caso do Blog Pessoal, temos algumas informações importantes que podem ser gravadas em banco de dados para posterior apresentação, histórico ou mesmo contagem de publicações e geração de relatórios. Nesse sentido, cabe 36 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 aqui, antes de fazer qualquer tabela ou banco de dados no phpMyAdmin, entender quais sãos os valores e os tipos de dados, como se agrupam para formar tabelas e como elas devem ser dispostas. Figura 29- Esquema inicial do Blog Pessoal Fonte: Elaborado pelo autor (2022). Ele é dividido em duas colunas: (1) a coluna de postagens (à esquerda) e (2) a coluna da direita, que, por sua vez, é formada por três partes: a apresentação pessoal, a lista das cinco postagens mais comentadas e a lista de filtros de postagens. É importante lembrar que acima está o cabeçalho do site e abaixo, o rodapé. Primeiro, vejamos a coluna da direita. Nela, temos o painel de apresentação pessoal. Quais são as informações dispostas no site, referente a tal parte? São: o nome do dono do blog e uma breve descrição a respeito dele. Assim, podemos criar uma tabela com três campos: nome, descrição e foto. Essa tabela pode ter o nome de “T_Apres” (tabela de apresentação). Que tal? E ela pode ser mais ou menos assim: 37PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Tabela 1 – Tabela de apresentação pessoal T_Apres Nome Tipo Tam Nulo? Descrição Autor VarChar 50 Não Nome do autor do blog. Descr VarChar 500 Não Breve descrição sobre o autor do blog. Foto VarChar 200 Não Foto do autor. Fonte: Elaborado pelo autor (2022). Passando agora para o próximo painel da coluna da direita, temos o TOP5. Ele deve conter uma figura, o título da postagem e o número de comentários. A tabela poderia ser chamada de T_TOP5 e seria mais ou menos assim: Tabela 2 – Tabela das cinco postagens mais comentadas T_TOP5 Nome Tipo Tam Nulo? Descrição Código Int Não Chave-primária. Titulo VarChar 200 Não Título da postagem. NCom Int Não Número de comentários da postagem. Figura VarChar 300 Não Endereço da imagem da postagem. Data Date Não Data da coleta das informações para questão de histórico e verificação. Fonte: Elaborado pelo autor (2022). Passando agora para o próximo painel da coluna da direita, temos as categorias ou filtros de postagens, contendo apenas o nome da categoria. A tabela poderia ser chamada de T_Cat e seria mais ou menos assim: 38 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Tabela 3 – Tabela de categorias das postagens T_Cat Nome Tipo Tam Nulo? Descrição Código Int Não Chave-primária. Categoria VarChar 100 Não Categoria da postagem. Fonte: Elaborado pelo autor (2022). IMPORTANTE Note que a tabela 1 (T_Apres) não tem chave- primária e as outras (T_TOP5 e T_CAT) têm. Isso ocorre porque a primeira (T_Apres) só vai conter um registro. Passando agora para a próxima tabela, na coluna da esquerda, temos as postagens. Ela deve conter a figura, o título, o subtítulo, o texto completo, a data da postagem. A tabela poderia ser chamada de T_Post e seria mais ou menos assim: Tabela 4 – Tabela de postagens T_Post Nome Tipo Tam Nulo? Descrição Código Int Não Chave-primária. Titulo VarChar 200 Não Título da postagem. Subtítulo VarChar 100 Não Subtítulo da postagem. Figura VarChar 250 Não Endereço da imagem da postagem. Data Date Não Data da postagem. Texto VarChar 3000 Não Texto da postagem. Pronto! Todas as tabelas (ou quase todas) definidas. Agora precisamos criar um banco de dados no phpMyAdmin que contenha todas as tabelas, com seus respectivos campos. Esse 39PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Banco de Dados poderia ser chamado de BLOG. O que acha? Gostou? Então, mãos à obra! ACESSE Se você quiser aprofundar seus conhecimentos em phpMyAdmin, um bom lugar é o site “Home and Learn”, o tópico “Create a database with phpMyAdmin”. Vale a pena dar uma olhadinha, acesse pelo QR code . RESUMINDO E então? Gostou do que lhe mostramos? Aprendeu mesmo tudinho? Agora, só para termos certeza de que você realmente entendeu o tema de estudo deste capítulo, vamos resumir algo do que vimos. Você deve ter compreendido o que é e para que serve um banco de dados. Conhecer quais são os principais tipos. Conhecer os principais conceitos e funcionalidades do banco de dados MYSQL. https://www.homeandlearn.co.uk/php/php12p2.html> 40 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Manipulação de dados no MySQL via PHP OBJETIVO Neste momento, você já deve ter criado um Banco de Dados chamado BLOG, o qual deve ter quatro tabelas (T_Apres; T_Cat; T_Post; T_Top5), cada uma com seus respectivos campos. Vamos, agora, aprender a trabalhar com ele junto com o código PHP. Isso permite a manipulação dos dados do banco de dados nas páginas Web. Muito legal, não é? O primeiro passo é entender como se conectar ao banco de dados, usando PHP. Depois manipular os dados, isto é, aprender a inserir, alterar, localizar excluir dados das tabelas do banco de dados, via código PHP. Então vamos lá! Conectando a página web ao Banco de Dados via PHP Para conectar a página Web do Blog ao MySQL ,é necessário usar uma função em linguagem php chamada: mysqli_ connect, que tem a seguinte sintaxe: Obj_Conexão = mysqli_connect(, , , ); Assim, • Servidor é o localhost. • Usuário é aquele que você cadastrou, quando instalou o WampServer em sua máquina. • Senha é aquela que você cadastrou, quando instalou o WampServer em sua máquina. 41PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 • Banco de dados é o que definimos como BLOG no php MyAdmin. • Obj_conexão é o retorno da função e representa o objeto da conexão entre o php e o MySQL. IMPORTANTE Abra o NotePad++ e o arquivo php do Blog e o renomeie para Exe01_Blog_u3.php. Inserindo o comando php para conectar ao banco de dados MySQL, seu código deve ficar mais ou menos assim: Figura 30 – Código PHP para conectar ao banco de dados MySQL Fonte: Elaborado pelo autor (2022). Repare que, na figura anterior, ao invés de usar variáveis, usamos constantes (linhas 11 a 14), pois como você deve ter imaginado, esses valores não devem mudar no decorrer da execução do código. Na linha 9, o comando “header” avisa o navegador para usar um charset que permite a acentuação nos textos,apresentados na tela do navegador. Sempre que você for fazer uma conexão com banco de dados, usando a linguagem php ou qualquer outra, verifique se ela foi bem-sucedida. Para fazer essa verificação, devemos utilizar a função mysqli_connect_errno que retorna o número do 42 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 erro, ocorrido ao tentar conectar-se. Caso não haja erro, retorna zero. O código deve ficar mais ou menos assim: Figura 31 – Código php para conectar ao banco de dados MySQL, testar se a conexão foi bem- sucedida Fonte: Elaborado pelo autor (2022). Note que da linha 17 a 27, usamos um comando condicional que verifica se a conexão foi bem-sucedida, por meio da função php “mysqli_connect_errno”. Na linha 20, é usada outra função que retorna a descrição do erro, caso ele tenha ocorrido. Na linha 28, a função mysqli_close() fecha a conexão que foi aberta na linha 15. É muito importante não deixar conexões com banco de dados abertas, quando não são mais necessárias. Caso sua conexão tenha dado certo, a parte superior esquerda do blog deve ter ficado como mostra a figura a seguir: Figura 32 – Canto superior esquerdo do blog quando a conexão foi bem-sucedida Fonte: Elaborado pelo autor (2022). 43PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Atualizando a tabela de apresentação pessoal via MySQL Para que possamos fazer um teste adequado, no phpMySQL, insira alguns dados na tabela T_Apres, da seguinte maneira: (1) clique na banco de dados “blog” na coluna do lado esquerdo da tela ;(2) nessa mesma coluna, selecione a tabela “t_ apres”, que aparece no banco de dados “blog”, como mostramos a seguir: Figura 33 – Inserindo registros na tabela t_apres com phpMyAdmin Fonte: Elaborado pelo autor (2022). Depois de selecionar a tabela correta, (3) clique na aba “Inserir”, apresentada na figura e (4) preencha os campos na coluna valor. Não se esqueça de que a o conteúdo do campo foto deve ser um link para a sua foto ou você pode copiar o link que está disponível no código na página do Blog e colocá-lo ali (Foi o que fizemos na figura anterior). Uma vez preenchidos os campos, clique no botão “Executar”. 44 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Lendo os dados da tabela de apresentação via php Agora que a tabela T_Apres está preenchida, vamos testar, se conseguimos ler os dados registrados. Então, insira o código para fazer o seguinte teste, como mostra a figura: Figura 34 – Código php para leitura dos dados da tabela T_Apres Fonte: Elaborado pelo autor (2022). Explicando o código: Na linha 27, escrevemos um comando SQL e o atribuímos a uma variável $sql cujo comando pode ser traduzido da seguinte maneira: “Selecione todos os registros da tabela T_Apres”. Na linha 32, o comando “while” faz um laço de repetição para atribuir a variável $result a cada registro, selecionado na linha 27, um a cada repetição. Na linha 34, o comando “echo” apresenta na tela do navegador o campo 0 (autor), o campo 1 (descr) e o campo 2 (link da foto) do registro que foi selecionado. Como sabemos que a tabela T_Apres tem apenas um registro, o laço de repetição “while” vai acontecer apenas uma vez. 45PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Na linha 37, o conteúdo da variável $result é liberado e na linha 40, a conexão com o banco é finalizada. A tela do navegador deve ficar assim: Figura 35 – Blog Pessoal mostra os dados do status da conexão e os dados da tabela T_ Apres no canto superior esquerdo Fonte: Elaborado pelo autor (2022). Vamos em frente! Atualizando o Blog Pessoal É claro que você não quer que os dados do seu blog apareçam da maneira como estão na figura anterior. Então, vamos colocar esses dados no local correto, reposicionando o conteúdo das linhas 39 e 40 para o final do código php. A figura a seguir mostra como e onde as linhas de código devem ser reposicionadas. 46 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Figura 36 – Reposicionamento de linhas de código php no arquivo Fonte: Elaborado pelo autor (2022). Esse reposicionamento é necessário porque precisamos que todas as definições de matrizes sejam incluídas no comando condicional “IF – ELSE”, que , como podemos notar pela figura anterior, agora vai de 19-23 (IF) e 24 – 113 (“ELSE”). Em segundo lugar, precisamos localizar, no código php, o local onde foi definida a matriz (array) Apresentação, que fizemos na unidade passada e que contém os dados que estamos trabalhando agora. 47PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 A figura a seguir mostra o código Matriz Apresentação para que você possa localizá-lo no seu arquivo php: Figura 37 – Matriz Apresentação Fonte: Elaborado pelo autor. Você deve ter percebido que se esses dados atribuídos à matriz estão gravados em tabela num banco de dados, não é mais necessário que fiquem fixos no código. Assim, podemos trocar esses dados pelo conteúdo da tabela T_Apres. Para isso altere o código anterior para ficar como o código apresentado a seguir: Figura 38 – Matriz apresentação a buscar dados da tabela T_Apres. Fonte: Elaborado pelo autor (2022). Salve e atualize o navegador. Veja o que aconteceu com o Bloco Apresentação (lado direito da tela). Na figura a seguir, você poderá comparar o resultado no seu computador com o resultado que obtivemos aqui. Note que o conteúdo da variável “$registro”, que ainda aparece no canto 48 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 superior esquerdo do blog, também está aparecendo no local correto (Bloco de Apresentação). Figura 39 – Bloco de Apresentação Pessoal atualizado com dados da tabela T_Apres Fonte: Elaborado pelo autor (2022). Faça este teste fundamental! 1. Abra o phpMyAdmin e acesse a tabela T_apres. 2. Clique na aba SQL e clique no botão UPDATE, como mostra a figura a seguir: 49PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 O botão “UPDATE” está marcado em vermelho. Quando você clicar nele, verá que o código SQL padrão que iniciava com “SELECT” foi alterado para esse que está sendo mostrado. 3. Altere o conteúdo do campo “AUTOR” para qualquer nome diferente de “Marcos”. Para fazer isso, altere o código da figura para o seguinte: . Isso fará com que apenas o nome do autor seja alterado na tabela T_Apres. 4. Volte à tela do blog, pressione F5 e verifique o resultado. Não se preocupe em decorar os comandos SQL, você irá aprendê-los na disciplina de Banco de Dados, mais adiante no curso. Aqui só é uma amostra da sua potencialidade. Muito bom, não é? Agora, desafiamos você a fazer a mesma coisa com os demais blocos do blog. Vamos lá! A aprendizagem não pode parar! RESUMINDO E então? Gostou do que lhe mostramos? Aprendeu mesmo tudinho? Agora, só para termos certeza de que você realmente entendeu o tema de estudo deste capítulo, vamos resumir algo do que vimos. Você deve ter compreendido como manipular dados armazenados em bancos de dados MYSQL por meio da linguagem PHP e suas interfaces de controle. 50 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Funções e manipulação de arquivos OBJETIVO Ao término deste capítulo, você será capaz de reconhecer a sintaxe e a funcionalidade das principais funções em PHP, com destaque para aquelas que permitem a manipulação de arquivos. E então? Motivado para desenvolver essa competência? Então vamos lá. Avante! Funções Além das funções fornecidas pela linguagem PHP, podemos criar outras, de acordo com nossas necessidades. Mas o que são funções? Funções são trechos de código, criados para executar alguma determinada tarefa como somar um conjunto de números, validar se o CPF foi digitado corretamente ou confirmar o conteúdo de uma variável, entre diversas outras aplicações. Segundo Soares (2000), a função é uma agrupamento de códigos que realizam uma tarefa específica. Isso auxilia na organização e manutenção do programa. Já o site w3schools aponta três grandes características das funções: (1) podem ser utilizadas repetidamente em um programa;(2) não serão executadas, imediatamente, quando a página web é carregada pelo navegador; (3) podem ser executadas por meio de uma chamada para a função. EXEMPLO: imagine que num programa seja necessário realizar a soma de alguns números com grande frequência. Em alguns momentos, será preciso somar dois números, em outros três ou mais. Sem o uso de funções, seria 51PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 necessário criar um código específico para realizar a soma desses números. Utilizando funções, o código pode ser criado somente uma vez e quando houver a necessidade da soma de números, basta “chamar” a função, fornecendo o conjunto de números que ela devolveria o resultado da soma. Como você pode perceber, o uso de funções é essencial para se desenvolver um código de programa com qualidade. Lembre-se sempre que a repetição excessiva de código torna o programa muito trabalhoso tanto para construir, quanto para sua manutenção futura, além de se tornar bastante susceptível a erros. Com o uso de funções, os programas tornam-se menores e sua análise mais prática por ser feita modularmente. A sintaxe básica de uma função é: Assim, • Function - é o termo usado para declaração de uma função. • Nome_da_função - é o nome que identifica a função. Dar nomes às funções é algo muito importante para a construção de um código eficiente, por isso deve seguir algumas regras: • Deve ser único em toda a extensão do código. • Não pode iniciar com número e não pode conter caracteres como ponto, vírgula e espaço. 52 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 • Deve ser um nome que lembre o objetivo da função, isto é, se você está montando uma função que faz a soma de números, por favor, não a chame de “abacaxi”, “banana”, ou “maçã”! Chame-a simplesmente de SOMA! • Argumentos - são os valores que a função receberá para realizar os objetivos para os quais foi programada, lembrando que uma única função pode realizar mais de um objetivo. A utilização de argumentos na criação de funções é opcional. Quando o programa chama a função, envia parâmetros que são entendidos como seus argumentos. • Return - é o comando necessário para retornar um valor ou expressão, após a execução de uma função, sendo também um comando opcional, ou seja, algumas funções não precisam retornar um valor, após a execução de seus comandos internos. Obs.: não é possível que uma função retorne mais de um valor de uma única vez, mas é possível fazer com que devolva um valor composto como uma lista ou array. Sempre que o PHP encontra uma chamada para uma função, a execução do programa é interrompida e o fluxo da execução passa para o início dessa função. Após a sua execução, o fluxo retorna ao ponto do programa no qual foi feita a chamada e, então, o próximo comando será executado. Usando funções no Blog Abra o arquivo exe06_blog_u2.php e renomeio o para exe02_blog_u3.php. Agora, localize o bloco de código, referente 53PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 ao Bloco de categorias ou filtros. Ele deve ser parecido com o apresentado a seguir: Figura 40 – Bloco de filtros Fonte: Elaborado pelo autor (2022). Note que muitas linhas são idênticas, apenas se troca no nome do filtro de “Viagens” para “Esportes” e assim por diante. Podemos fazer uma função para não precisar ficar repetindo toda essa quantidade de classes W3.CSS. Para isso, precisamos verificar, se a opção “Todas” se encaixa na regra da função ou deve ficar de fora. Analisando o código da figura anterior, percebemos que a opção “Todas” está selecionada e por isso fica em preto (w3- black), enquanto que as outras ficam em cor cinza claro (w3- light-grey). Além disso, a opção “Todas” fica em tamanho de letra padrão, enquanto às demais é atribuída a classe w3-small, que diminui o tamanho da fonte. Visto isso, sabemos que nossa função deve tratar dois casos: (1) a categoria ou filtro que está selecionado; (2) as demais não selecionadas. Nossa função pode ser chamada de “Exibe_Categoria()” e deve ter dois argumentos: (1) O nome da categoria ou filtro; (2) 54 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 o status dessa categoria, que pode variar entre “selecionado” ou “não selecionado”. Dessa forma, nossa função poderia ser assim: Figura 41 – Minha primeira função em php no Blog Fonte: Elaborado pelo autor (2022). Assim, • $Nome - é o parâmetro do tipo texto que traz o nome da categoria ou filtro que será apresentado. • $Selecionado - é o parâmetro do tipo booleano que pode conter “true” ou “false”, dependendo se a categoria está ou não está selecionada. Veja que a função executa um comando condicional (IF) para verificar o parâmetro $Selecionado e atribui conteúdo para a variável interna $Texto, dependendo do caso. Se o parâmetro $Selecionado for “true”, a função executa a linha 15 do código, mas se $Selecionado for “false”, a função executa a linha 17 do código. Na linha 19, a função finaliza a composição do conteúdo da variável $Texto e, na linha 21, retorna essa variável para a mesma linha que a chamou. Agora precisamos chamar a função “Exibe_Categoria” lá do meio do código da página do Blog (no bloco de filtros). Fazendo as devidas alterações, seu código de chamada da função deve ficar mais ou menos assim: 55PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Figura 42 – Código melhorado para o Bloco de filtros da figura anterior Fonte:Elaborado pelo autor (2022). Salve o arquivo e atualize o navegador para verificar o resultado. Você também pode, se quiser, alterar a ordem dos parâmetros “true” e “false”, no código anterior, para verificar o que acontece, quando outra categoria ou filtro é selecionado. IMPORTANTE As variáveis, enviadas como parâmetros, não precisam ter os mesmos nomes dos argumentos definidos na função. Entretanto, é importante que as variáveis estejam na ordem correta para que a associação entre parâmetros e argumentos seja realizada da forma esperada. EXEMPLO: vamos ao desafio número 1: modifique o código do blog, inserindo todo o conteúdo do bloco em uma função. Resolvendo: para isso precisamos criar uma função (Monta_Cabecalho_Principal()) com um argumento chamado $autor. E colocar nessa função todo o conteúdo do bloco , concatenado numa variável do tipo texto e retorná-la para ser exibida no local onde foi chamada. A figura a seguir mostra a referida função: 56 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Figura 43 – Exemplo de função em php no blog pessoal Fonte: Elaborado pelo autor (2022). Note que essa função tem os mesmos moldes que a função feita, anteriormente. A chamada para essa função é tão simples quanto isso: Figura 44 – Chamada da função apresentada na figura anterior Fonte: Elaborado pelo autor (2022). Desafio 2 - Dê uma olhadinha no código referente ao rodapé da página: Figura 45 – Código html5 referente ao rodapé da página do blog Fonte: Elaborado pelo autor (2022). 57PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Tenho certeza que você consegue melhorar esse código, não é? Mas esse é por sua conta! ACESSE Se você quiser saber mais sobre as funções em PHP, acesse o QR code . Manipulação de arquivos Além de campos de tabelas (Banco de Dados) – como foi visto no item anterior – o PHP permite trabalhar com arquivos no formato texto (.txt). Para os exemplos desse tópico, utilizaremos o arquivo texto (Tamanho_Estados_BR.txt) a seguir: Tamanhos dos Estados Brasileiros em km2 AM – 1570,7 PA – 1247,6 MT – 903,3 MG – 587,5 BA – 564,6 MS -357,1 GO – 340,0 MA – 332,0 RS – 281,7 TO – 277,6 PI – 251,5 SP – 248,2 RO – 237,5 RR - 224,2 PR – 199,3 AC – 152,5 CE – 148,8 AP – 142,8 PE – 98,3 SC – 95,3 PB – 56,4 RN – 52,8 ES – 46,0 RJ – 43,6 AL – 27,7 SE – 21,9 DF – 5,8 Crie esse arquivo para você poder testar os códigos nos exemplos. https://www.w3schools.com/php/php_functions.asp 58 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Só porcuriosidade, Portugal tem 92,2 km2 . Criar ou abrir um arquivo texto Para ler ou gravar alguma informação, em um arquivo no formato txt, é necessário que ele exista e esteja aberto, com as permissões de leitura ou gravação habilitadas. A linguagem PHP tem a função fopen() (file open) que realiza essas tarefas. Sua sintaxe é: int fopen(arquivo, modo); Repare, pela sintaxe, que a função fopen() retorna um valor inteiro. Esse valor corresponde a um identificador – diferente de zero - que mostra o arquivo aberto no programa. Sendo diferente de zero, informa que a abertura ou criação do arquivo foi realizada com sucesso, mas se for zero, informa que o programa não conseguiu abrir ou mesmo criar o arquivo. É importante notar também que a função fopen() tem dois argumentos: (1) arquivo- faz referência ao arquivo que deve ser criado ou aberto. Deve conter todo o caminho (path) do arquivo e sua extensão. Exemplo: “c:\curso\u3\arq.txt”. (2) modo - define a maneira pela qual o arquivo vai ser criado ou aberto. A tabela a seguir apresenta as maneiras possíveis de se abrir ou criar um arquivo: 59PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Tabela 5 – Modos de abertura ou criação de arquivos txt em linguagem php Modo Descrição R Abre o arquivo apenas para leitura. r+ Abre o arquivo para leitura e escrita. O ponteiro de gravação ou leitura é posicionado no início do arquivo, o que faz, em caso de gravação, que o conteúdo do arquivo seja sobrescrito. w Abre o arquivo apenas para escrita. Caso o arquivo já exista, seu conteúdo é totalmente apagado. Caso contrário, o PHP tentará criá-lo. w+ Abre o arquivo com permissão para leitura e escrita. As demais condições seguem a mesma regra que o modo “w”. A Abre o arquivo apenas para escrita. Caso o arquivo ainda não exista, o PHP tentará criá-lo. O ponteiro de escrita é posicionado no final do arquivo, o que não permite sobreposição de conteúdo. a+ Abre o arquivo para leitura e escrita. As demais condições seguem o padrão do modo “a”. X Cria um arquivo apenas para escrita. Retorna “false” e um erro, se o arquivo já existir. x+ Cria um arquivo para leitura e escrita. Retorna “false” e um erro, se o arquivo já existir. Fonte: Elaborado pelo autor (2022). IMPORTANTE Para evitar erros ao tentar abrir um arquivo que não existe ou criar um arquivo que já existe, o php disponibiliza a função file_exists(a) que retorna true, se o arquivo já existe e retorna false, em caso contrário. Fechar um arquivo texto Exatamente como aconteceu no tratamento com banco de dados, o arquivo texto deve ser fechado tão logo o programa não precise mais utilizá-lo. 60 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 EXPLICANDO MELHOR Ao terminar as operações com um determinado arquivo, ele deve ser fechado para evitar riscos de erros de gravação ou até mesmo causar problemas na integridade do seu conteúdo. Para fazer isso, a linguagem php utiliza a função fclose() (File Close), cuja sintaxe é: fclose(arquivi); Note que a função não retorna qualquer valor e tem apenas um argumento que faz referência ao nome do arquivo (com respectivo caminho e extensão) que se deseja fechar. EXEMPLO: abra o NotePad++ e crie um arquivo php exe01_ u3.php . Para abrir o arquivo Tamanho_Estados_BR.txt, apresente o número identificador desse arquivo e depois feche-o. Seria mais ou menos assim: Figura 46 – Código para abrir e fechar arquivo txt apenas para leitura Fonte: Elaborado pelo autor (2022). 61PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Ler um arquivo texto A linguagem php usa a função fread() (file read), cuja sintaxe é: string fread(id, tamanho); Conforme a sintaxe, a função fread() retorna um valor string. Esse valor corresponde a parte do arquivo que o programa deseja ler. É importante notar também que tal função tem dois argumentos: (1) id- faz referência ao identificador do arquivo que se quer ler. Esse parâmetro corresponde ao identificador retornado pela função fopen(). (2) tamanho- informa o tamanho do bloco de texto (em número de bytes), no arquivo que se quer ler. Caso se queira ler todo o conteúdo do arquivo, deve ser usada a função filesize(arquivo);. EXEMPLO: abra o NotePad++ e crie um arquivo php exe02_ u3.php. Para abrir o arquivo Tamanho_Estados_BR.txt, apresentar o número identificador desse arquivo, ler os primeiros 40 bytes, colocá-los na tela e, por fim, fechar esse arquivo. (Cada byte corresponde a uma letra). Seria mais ou menos assim: 62 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Figura 47 – Código para ler os primeiros 40 bytes do arquivo txt Fonte: Elaborado pelo autor (2022). Lembre-se que para ler todo o conteúdo do arquivo txt, usar a função “filesize”(arquivo) no lugar da variável “$Tamanho.” Ler uma linha do arquivo Para ler uma linha do arquivo txt de cada vez, use a função fgets(), cuja sintaxe é: string = fgets(arquivo); EXEMPLO: abra o NotePad++ e crie um arquivo php exe03_u3.php . Para abrir o arquivo Tamanho_Estados_ BR.txt, apresentar o número identificador do arquivo, ler e colocar as primeiras quatro linhas, e fechá-lo. Fica mais ou menos assim: 63PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Figura 48 – Código para ler as quatro primeiras linhas do arquivo txt Fonte: Elaborado pelo autor (2022). Caso você precise ler todo o arquivo, use a função “feof()” que verifica, se o fim do arquivo texto já foi atingido, da seguinte maneira: Figura 49 – Código para ler todas as linhas do arquivo txt Fonte: Elaborado pelo autor (2022). 64 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Inserir conteúdo num arquivo txt Para escrever num arquivo txt, use a função “fwrite()”, cuja sintaxe é: fwrite(arquivo, texto); Assim, arquivo é o seu identificador que foi aberto para a inserção do conteúdo e texto é o conteúdo a ser inserido. EXEMPLO: abra o NotePad++ e crie um arquivo php exe04_ u3.php. Para esse exemplo, abriremos o arquivo para escrita, usando o modo “a”, no qual o ponteiro de gravação é posicionado no final do arquivo. O texto a ser inserido pode ser da sua escolha. Aqui vamos utilizar a frase: “teste de inserção de texto”. O código fica mais ou menos assim: Figura 50 – Código para gravar uma linha no arquivo txt Fonte: Elaborado pelo autor (2022). Depois de executar o código anterior, verifique o arquivo texto Tamanho_Estados_BR.txt. Agora você tem conhecimento para testar leituras e gravação de arquivos textos. 65PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 RESUMINDO E então? Gostou do que lhe mostramos? Aprendeu mesmo tudinho? Agora, só para termos certeza de que você realmente entendeu o tema de estudo deste capítulo, vamos resumir algo do que vimos. Você deve ter compreendido como reconhecer a sintaxe e a funcionalidade das principais funções em PHP, com destaque para aquelas que permitem a manipulação de arquivos. 66 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Cookies, sessões e tratamento de erros OBJETIVO Ao término deste capítulo, você será capaz de aperfeiçoar programas em PHP por meio do uso de cookies e sessões de transação, bem como o tratamento de erros E então? Motivado para desenvolver essa competência? Então vamos lá. Avante! Cookies Cookies são variáveis gravadas pelo navegador do usuário de forma remota. As informações são colocadas no disco rígido do usuário cliente, mais especificamente, no diretório de arquivos temporários e seu uso não é recomendado, quando se tratam de informações sigilosas. Para uma transmissão de dados segura é aconselhável o uso de sessões. Na gravação de um cookie, pode ser especificado seu tempo de duração, mas se esse tempo não for determinado, ele será válido até que o usuário encerre a sessão, ou seja, feche o navegador. Os cookies enviados são entendidos como variáveis PHP. Para criá-los, usa-se a função setcookies, que tem a seguinte sintaxe: setcookies(nome, valor, duração); Assim, nome designa o próprio cookie e se tornará o nomeda variável que o identifica como específico no programa php. Valor refere-se ao conteúdo do cookie, ou melhor, o valor da variável cookie no programa php. Duração define o tempo em segundos que o cookie irá permanecer no computador do visitante do site. 67PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 EXEMPLO: para gravar um cookie chamado “Usuário”, cujo conteúdo é o nome do usuário, armazenado na variável $usr que seja válido por uma hora, você deve fazer assim: setcookie(“Usuario”, $usr, 3600); EXEMPLO: para gravar um cookie chamado “Senha”, cujo conteúdo é o senha do usuário, armazenado na variável $pwd que seja válido até que o navegador seja fechado, você deve fazer assim: setcookie(“Senha”, $pwd); Para recuperar o conteúdo de um cookie gravado em seu computador, você deve usar o seguinte comando: $_COOKIE[nome]; Nome é o nome do cookie gravado pela função setcookie. EXEMPLO: abra o NotePad++ e crie um arquivo php exe05_u3.php. Imagine que você queira gravar em seu computador um cookie que contenha o valor do saldo de sua conta corrente, depois de uma atualização de valores. O cookie deve durar por 2 horas. Figura 51 – Código para gravar e recuperar um cookie Fonte: Elaborado pelo autor (2022). 68 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Sessões Quando você trabalha com uma aplicação desktop não on-line, você executa várias atividades com ela e depois a fecha. Na internet, isso se torna complicado porque o navegador não consegue saber quem é você, depois que o fecha e o abre novamente. As variáveis de sessão conseguem resolver esse problema, armazenando informações do usuário, durante toda a sua navegação. Sessões são estruturas bastante semelhantes aos cookies. Sua principal diferença está no fato de que elas são armazenadas no servidor e não expiram a menos que o isso seja programado no código fonte do programa. As funções mais usadas em sessões são: • session_start() que é responsável por criar ou restaurar dados de uma sessão; • session_destroy() que finaliza todas as sessões do visitante. EXEMPLO: abra o NotePad++ e crie um arquivo php exe06_ u3.php. Vamos iniciar uma sessão e gravar os dados de um formulário em variáveis dessa sessão. O código fica mais ou menos assim: 69PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Figura 52 – Exemplo de gravação de variáveis de sessão Fonte: Elaborado pelo autor (2022). EXEMPLO: abra o NotePad++ e crie um arquivo php exe07_ u3.php. Esse código irá recuperar os dados gravados no código do exemplo anterior. Fica mais ou menos assim: Figura 53 -Recuperação de variáveis de sessão gravadas no exemplo anterior Fonte: Elaborado pelo autor (2022). 70 PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 Tratamento de erros Atualmente, na linguagem PHP existem quatro tipos de erros para indicar problemas, encontrados no código ou que impactem o funcionamento de um programa, durante sua execução. A tabela a seguir apresenta esses tipos: Tabela – Tratamento de erros Tipo de Erro Descrição Warnings Avisos que não impedem o funcionamento do programa. Geralmente, sinalizam possíveis erros estruturais ou de lógica. Parser Error São erros de processamento. Notice São apenas observações. Assim como os warnings, este tipo de erro não impede o funcionamento do programa. Function Errors São erros de funções. Geralmente, ocorrem quando uma função não recebe todos os argumentos necessários ou recebem dados inválidos. Como você deve ter percebido, é possível fazer muito mais com o PHP. Mas, nessa unidade é só. Não deixe de verificar as referências para aprender mais. Isto é só o começo e a aprendizagem não pode parar! Sucesso para você! RESUMINDO E então? Gostou do que lhe mostramos? Aprendeu mesmo tudinho? Agora, só para termos certeza de que você realmente entendeu o tema de estudo deste capítulo, vamos resumir algo do que vimos. Você deve ter compreendido como aperfeiçoar programas em PHP por meio do uso de cookies e sessões de transação, bem como o tratamento de erros. 71PROGRAMAÇÃO CODING WEB (PHP) U ni da de 3 CHU, S. Y. Banco de dados: organizacao, sistemas e administração. São Paulo: Atlas, 1983. 397 p. FREITAS, L. Introdução ao MySQL, [s.d.]. Goiânia: UEG., p. 15. 2013. Disponível em: Acesso em: 24 ago.2018. MAIA, J. P. Iniciantes ao PHP (Fórum). PHP Brasil, 2018. Disponível em: http://phpbrasil.com/phorum/. Acesso em: 19 ago. 2018. MATOZZO, M. Introdução a Banco de Dados: o modelo relacional. . RJ: UFRJ, p. 55, 2000. Disponível em: Acesso em: 21 ago.2018. PHP. Manual PHP - Referência de Linguagem. PHP.net, 2018. Disponivel em: http://php.net/manual/pt_BR/. Acesso em: 17 ago. 2018. REZENDE, R. Conceitos fundamentais de Banco de Dados, 2006. DevMedia. Disponivel em: https://www.devmedia.com.br/ conceitos-fundamentais-de-banco-de-dados/1649. Acesso em: 22 ago. 2018. SANCHES, A. R. Fundamentos de armazenamento e manipulação de dados. São Paulo: IME-USP., 2005. Disponível em: https://www. ime.usp.br.- Acesso em: 23 ago.2018. SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistemas de Bancos de Dados. Trad. D. VIEIRA. 6a. ed. RJ: Elsevier, 2012. SOARES, W. Programando em PHP: conceitos e aplicações. SP: Érica, 2000. SOURCEFORGE. WampServer Web Development platform. SourceForge, 2018. Disponivel em: https://sourceforge.net/ projects/wampserver/. Acesso em:15 ago. 2018. TAKAI, O.; ITALIANO, I.; FERREIRA, J. Introdução a Banco de dados. DCC-IME-USP. [S.l.], p. 124, 2005. TEIXEIRA, J. Introdução ao MySQL. DevMedia, 2013. Disponivel em: https://www.devmedia.com.br/introducao-ao-mysql/27799. Acesso em: 20 ago. 2018. W3SCHOLLS. W3CSS. w3schools.com/. Disponivel em: https:// www.w3schools.com/w3css/index.htm. Acesso em: 1 ago. 2018. RE FE RÊ N CI A S Introdução ao Banco de Dados Conceitos importantes O que são Banco de Dados? Outros conceitos Propriedades gerais do Banco de Dados Atributo-chave Banco de Dados MySQL Acessando o phpMyAdmin Criando o primeiro Banco de Dados em MySQL Manipulação de tabelas e campos Inserindo registros numa tabela Alterando registros em uma tabela Excluindo registros numa tabela Localizando registros em uma tabela Usando banco de dados no Blog Pessoal Manipulação de dados no MySQL via PHP Conectando a página web ao Banco de Dados via PHP Atualizando a tabela de apresentação pessoal via MySQL Lendo os dados da tabela de apresentação via php Atualizando o Blog Pessoal Funções e manipulação de arquivos Funções Usando funções no Blog Manipulação de arquivos Criar ou abrir um arquivo texto Fechar um arquivo texto Ler um arquivo texto Ler uma linha do arquivo Inserir conteúdo num arquivo txt Cookies, sessões e tratamento de erros Cookies Sessões Tratamento de erros