ESTA OBRA PODE SER REPRODUZIDA E DISTRIBUÍDA PARCIAL OU INTEGRALMENTE DESDE QUE CITADA A FONTE.
VENDA PROIBIDA
CID – COORDENADORIA DE INCLUSÃO DIGITAL IDORT – INSTITUTO DE ORGANIZAÇÃO RACIONAL DO TRABALHO EQUIPE CAPACITAÇÃO – ÁREA TÉCNICA
DOUGLAS DINIZ ALVES DANIEL PEREIRA MARTINS PAULO JORDÃO DA SILVA BOCCATTO
site: www.telecentros.sp.gov.br email:
[email protected]
Indice
Objetivo Objetivo .............. ..................... .............. .............. .............. ............. ............. .............. .............. .............. ......... .. Justificati Justificativa va ............. .................... .............. ............. ............. .............. .............. .............. .............. ............ ..... Lógica de Programaçã Programação o ........ ............... .............. .............. .............. .............. .............. ............. ........ Seqüência Seqüência Lógica ............. .................... .............. .............. ............. ............. .............. .............. ........... .... Exercícios Exercícios – Lógica Lógica ............. .................... .............. .............. ............. ............. .............. .............. ......... .. PHP – História ............ ................... .............. ............. ............. .............. .............. .............. .............. .......... ... O que é PHP? ............. ................... ............. .............. .............. .............. ............. ............. .............. ........... .... Em que consiste consiste uma página página dinâmica dinâmica?? ............. .................... ............. ............. ......... .. Comunicaçã Comunicação o Cliente x Servidor Servidor ............. .................... ............. ............. .............. ............ ..... Delimitand Delimitando o o código código PHP PHP ........... ................. ............. .............. .............. .............. .............. ......... .. Exercício Exercício 01 .............. .................... ............. .............. .............. .............. .............. .............. ............. ........... ..... Comentários Comentários no PHP ............. .................... .............. ............. ............. .............. .............. .............. ....... Exercício Exercício 02 .............. .................... ............. .............. .............. .............. .............. .............. ............. ........... ..... Variáveis Variáveis ................... .......................... .............. .............. ............. ............. .............. .............. .............. .......... ... Exercício Exercício 03 .............. .................... ............. .............. .............. .............. .............. .............. ............. ........... ..... Tipos de Dados Dados Suportados Suportados .............. ..................... .............. ............. ............. .............. ........... .... Integer Integer (Inteiro) (Inteiro) ............. .................... .............. .............. .............. ............. ............. .............. ............. ...... Double Double (Dupla (Dupla Precisão) Precisão) ............. .................... .............. .............. ............. ............. .............. ......... .. Strings Strings .............. ..................... ............. ............. .............. .............. .............. .............. .............. ............. ........... ..... Exercício Exercício 04 .............. .................... ............. .............. .............. .............. .............. .............. ............. ........... ..... Exercício Exercício 05 .............. .................... ............. .............. .............. .............. .............. .............. ............. ........... ..... Booleano Booleano ............. .................... ............. ............. .............. .............. .............. .............. .............. ............. ......... ... Array Array ............. .................... .............. .............. .............. ............. ............. .............. .............. .............. .............. ....... Objeto Objeto ........ ............... .............. .............. .............. .............. .............. ............. ............. .............. .............. .......... ... Caracteres Caracteres de Escape Escape ................ ....................... .............. .............. .............. .............. ............. ......... ...
01 01 03 03 04 05 06 07 07 08 09 09 10 11 11 12 12 13 13 13 14 14 14 14 14
Exercício Exercício 06 ................... .......................... ............. ............. .............. .............. .............. .............. ............. ...... Operadores Operadores ............. .................... .............. ............. ............. .............. .............. .............. .............. ............ ..... Aritméticos Aritméticos ............. .................... .............. .............. ............. ............. .............. .............. .............. ............. ...... String String .......... ................. .............. .............. .............. ............. ............. .............. .............. .............. .............. ......... .. Exercício Exercício 07 ................... .......................... ............. ............. .............. .............. .............. .............. ............. ...... Atribuição Atribuição .............. .................... ............. .............. .............. .............. .............. .............. ............. ............. ......... Exercício Exercício 08 ................... .......................... ............. ............. .............. .............. .............. .............. ............. ...... Incrementaç Incrementação ão .............. .................... ............. .............. .............. .............. .............. .............. ............. ........ Lógicos Lógicos ............. .................... ............. ............. .............. .............. .............. .............. .............. ............. ........... ..... Comparação Comparação ............. .................... .............. ............. ............. .............. .............. .............. .............. ........... .... Integrando Integrando o PHP PHP ao HTML .............. ..................... .............. ............. ............. .............. ........... .... Métodos Métodos GET e POST .............. ..................... .............. .............. ............. ............. .............. ............ ..... Exercício Exercício 09 ................... .......................... ............. ............. .............. .............. .............. .............. ............. ...... Estruturas Estruturas de Controle Controle ............. .................... ............. ............. .............. .............. .............. ........... .... If .............. ..................... .............. ............. ............. .............. .............. .............. .............. .............. ............. ........... ..... Exercício Exercício 10 ................... .......................... ............. ............. .............. .............. .............. .............. ............. ...... Else ................. ........................ .............. .............. ............. ............. .............. .............. .............. .............. ............ ..... Exercício Exercício 11 ................... .......................... ............. ............. .............. .............. .............. .............. ............. ...... Elseif Elseif ......... ................ .............. ............. ............. .............. .............. .............. .............. .............. ............. ........... ..... Exercício Exercício 12 ................... .......................... ............. ............. .............. .............. .............. .............. ............. ...... Laços Laços ............. ................... ............. .............. .............. .............. .............. .............. ............. ............. .............. ......... While ................. ........................ .............. ............. ............. .............. .............. .............. .............. .............. .......... ... Exercício Exercício 13 ................... .......................... ............. ............. .............. .............. .............. .............. ............. ...... For ............ .................. ............. .............. .............. .............. ............. ............. .............. .............. .............. ............ ..... Exercício Exercício 14 ................... .......................... ............. ............. .............. .............. .............. .............. ............. ...... Include Include ............. .................... .............. .............. ............. ............. .............. .............. .............. .............. ........... .... Exercício Exercício 15 ................... .......................... ............. ............. .............. .............. .............. .............. ............. ......
15 16 16 16 16 17 17 18 19 19 20 20 21 21 21 22 22 22 23 23 24 24 24 25 25 25 26
Array Array .................... ........................... .............. .............. ............. ............. .............. .............. .............. .............. ....... Exercício Exercício 16 ................... .......................... ............. ............. .............. .............. .............. .............. ............. ...... Listas Listas .............. ..................... .............. .............. .............. ............. ............. .............. .............. .............. ............ ..... Exercício Exercício 17 ................... .......................... ............. ............. .............. .............. .............. .............. ............. ...... MySql MySql – Banco de Dados .............. ..................... .............. ............. ............. .............. .............. ....... Popularizaçã Popularização o dos Banco de Dados ............. .................... ............. ............. .............. ......... O que que é um Sistema Sistema de Gerenc Gerenciament iamento o de Banco Banco de Dados? Dados? ...... PHP MyAdmin MyAdmin ............. .................... .............. ............. ............. .............. .............. .............. .............. ......... .. MySql MySql ......... ............... ............. .............. .............. .............. .............. .............. ............. ............. .............. ........... .... Como Como utiliza utilizarr o SQL para para mani manipula pularr os banco bancoss de dados dados MySQL MySQL . Comandos Comandos SQL ............. .................... .............. .............. .............. .............. .............. ............. ............. ....... Comando Comando SHOW ................. ........................ .............. .............. .............. .............. .............. ............. ........ .. Comando Comando USE ............ .................. ............. .............. .............. .............. .............. .............. ............. .......... .... Comando Comando CREATE .................. ......................... .............. .............. .............. .............. .............. ............ ..... Comando Comando INSERT INSERT ............. .................... .............. .............. .............. ............. ............. .............. ........... .... Comando Comando SELECT SELECT .......... ................. .............. .............. .............. ............. ............. .............. .............. ....... Comando Comando DESCRIBE DESCRIBE .............. ..................... ............. ............. .............. .............. .............. ............. ...... Comando Comando DROP ............. .................... .............. .............. .............. ............. ............. .............. .............. ....... Comando Comando DELETE DELETE ............ ................... .............. .............. .............. ............. ............. .............. ............ ..... Comando Comando UPDATE UPDATE ............. .................... .............. .............. .............. .............. ............. ............. .......... ... Roteiro Roteiro – Criação Criação de B.D. ............. .................... .............. .............. .............. ............. ............. ....... Estabelecen Estabelecendo do conexões conexões eentre ntre PHP e M MySql ySql .............. ..................... .............. ......... Selecionand Selecionando o a base de dados dados ......... ................ .............. ............. ............. .............. ............ ..... Realizando Realizando consultas consultas ................ ....................... .............. .............. ............. ............. .............. ........... .... Apagando Apagando resultados resultados ............. .................... .............. .............. .............. ............. ............. ............. ...... Número Número de linhas .............. ..................... .............. .............. .............. ............. ............. .............. .......... ... Utilizando Utilizando os resultados resultados ................. ........................ .............. .............. .............. .............. ............ .....
27 27 27 28 29 29 31 33 33 35 36 36 36 36 38 39 40 41 41 42 43 44 45 46 46 47 47
CRUD ............. .................... ............. ............. .............. .............. .............. .............. ............. ............. .............. ....... Projeto Projeto ............. .................... .............. ............. ............. .............. .............. .............. .............. .............. ............ ..... Respostas Respostas dos dos exercícios exercícios de lógica lógica ......... ............... ............. .............. .............. ............. ...... Plano de aula aula ............ ................... .............. .............. .............. .............. ............. ............. .............. ........... .... Bibliografi Bibliografia a .............. ..................... .............. .............. .............. .............. ............. ............. .............. ............ .....
48 54 78 79 84
PHP & MySql
1
Objetivo Capacitar os colaboradores dos Telecentros com o objetivo de criarem programas voltados à web para manipulação de páginas HTML, como como ta tamb mbém ém dese desenv nvol olvi vime ment nto o de raci racioc ocín ínio io lógi lógico co e noçõ noções es de gerenciamento de banco de dados relacional.
PHP & MySql
2
Justificativa Atualmente, com o avanço tecnológico, necessitamos cada vez mais da automatização de sistemas para facilitarmos e agilizarmos serviços, principalmente no que diz respeito à internet. Com o curso de PHP & MySql poderemos integrar a linguagem de programação com o acesso online onde será possível um ótimo controle das informações através de banco de dados.
PHP & MySql
3
Lógica de Programação O estudo da lógica é o estudo dos métodos e princípios usados para distinguir o raciocínio correto do incorreto. Esta definição não quer dize dizerr que que some soment ntee uma uma pess pessoa oa que que te tenh nhaa estu estuda dado do lógi lógica ca poss possaa raciocinar corretamente e encontrar soluções para diversos problemas. A habilidade de resolver problemas é natural em todo ser humano. Uma parte do estudo da lógica consiste no exame e na análise dos métodos incorretos do raciocínio (falácias), isto nos dá uma visão mais mais prof profun unda da dos dos prin princí cípi pios os do raci racioc ocín ínio io em gera gerall e nos nos auxi auxililiaa tamb ta mbém ém a ev evit itáá-lo los. s. Por Por últi último mo,, prop propor orci cion onaa ao estu estuda dant ntee cert certas as técnicas e métodos de fácil aplicação para determinar a correção ou incorreção de todos os raciocínios. O valor deste conhecimento reside no fato de ser menor a possibilidade de se cometer erros, quando é possível localizá-los mais facilmente. Lógi Lógica ca vem de “log “logos os”” que sig signifi nificca pala palavvra, ra, ex exp press ressãão, conceito, pensamento, discurso, razão.
Seqüência Lógica Estes pensamentos podem ser descritos como uma seqüência de instruções que devem ser seguidas para cumprir uma determinada tarefa, portanto, seqüência lógica são passos executados até atingir um objetivo ou solução de um problema.
PHP & MySql
4
Exercícios - Lógica 1) Quanto Quantoss retâng retângulo uloss existe existem m na figu figura ra abaix abaixo: o:
2. Uma lesma lesma está está num poço poço de 30m de de profun profundida didade. de. A cada cada dia dia ela sobe 3m e escorrega 2m. Em quantos dias sairá do poço? 3) O PR PRISIONEI NEIRO No antigo Egito, havia um prisioneiro em uma cela com duas saídas, cada uma delas com um guarda. Cada saída dava para um corredor diferente em que um dava para o campo e, portanto, para a liberdade e o outro para um fosso de crocodilos. Só os guardas sabiam qual a saída certa, mas um deles dizia sempre a verdade e outro mentia sempre. O prisioneiro não sabia nem qual a saída certa nem qual o guarda verdadeiro. Qual a pergunta (e uma só pergunta) que o prisioneiro deveria fazer a um dos guardas ao acaso, para saber qual a porta certa? 4) Una estes estes quatr quatro o pontos pontos apenas apenas com com três três retas, retas, sem leva levanta ntarr a pon ponta do lápis ou da caneta e acaban bando no ponto onto onde nde começou.
PHP & MySql
5
PHP - História A linguagem de programação PHP foi criada no outono de 1994 por Rasmus Lerford. No início era formada por um conjunto de scripts voltados à criação de páginas dinâmicas que Rasmus utilizava para monitorar o acesso ao seu currículo na internet. À medida que essa ferramenta foi crescendo em funcionalidades, Rasmus teve de escrever uma implementação em C, a qual permitia às pessoas desenvolverem de forma muito simples as suas aplicações aplicações para web. Rasmus Rasmus nomeou essa versão de PHP/FI (Personal Home Page / Forms Intepreter) e decidiu disponibilizar seu código na web, em 1995, para compartilhar com outras pessoas, bem como receber ajuda e correção de bugs. Em novembro de 1997 foi lançada a segunda versão do PHP. Naquel Naqu elee mome moment nto, o, apro aproxi xima mada dame ment ntee 50 mil mil domí domíni nios os ou 1% da internet já utilizava PHP. No mesmo ano Andi Gutmans e Zeev Suraski, dois dois estu estuda dant ntee que que util utiliz izav avam am PH PHPP em um proj projet eto o acad acadêm êmic ico o de comércio comércio eletrônico, eletrônico, resolveram resolveram cooperar com Rasmus Rasmus para aprimorar aprimorar o PHP. Para tanto, reescreveram todo o código-fonte, com base no PHP/FI 2, dando início ao PHP 3, disponibilizando oficialmente em junho de 1998. Dentre as principais características do PHP 3 estavam e exten ex tensi sibil bilid idad ade, e, a poss possibi ibililida dade de de cone conexã xão o com vá vário rioss banc bancos os de dados dados,, novos novos proto protoco colo los, s, uma uma sinta sintaxe xe mais mais consis consiste tent nte, e, supo suport rtee à orientação a objetos e uma nova API, que possibilitava a criação de novos módulos e que acabou por atrair vários desenvolvedores ao PHP. No final de 1998, o PHP já estava presente em cerca de 10% dos domínios na internet. Nessa época o significado da sigla PHP mudou
PHP & MySql
6
para PHP: Hypertext Processor, retratando assim a nova realidade de uma linguagem com propósitos mais amplos. No inverno de 1998, após o lançamento do PHP 3, Zeev e Andi começaram a trabalhar em uma reescrita do núcleo do PHP, tendo em vist vistaa melh melho orar rar sua sua perf perfor orm manc ance e modul odular arid idad adee em apli aplica caçõ ções es complexas. Para tanto, resolveram batizar este núcleo de Zend Engine, ou mecanismo Zend (Zeev + Andi). O PHP 4, baseado neste meca mecani nism smo, o, foi foi lanç lançad ado o ofic oficia ialm lmen ente te em maio maio de 2000 2000,, traz trazen endo do muitas melhorias e recursos novos, como seções, suporte a diversos servidores web, além da abstração de sua API, permitindo inclusive ser utilizado com linguagem para shell script. Nesse momento, o PHP já estava presente em cerca de 20% dos domínios da internet, além de ser utilizado por milhares de desenvolvedores ao redor do mundo. Apesar de todos os esforços, o PHP ainda necessitava maior suporte à orientação a objetos, tal qual existe em linguagens como C++ e Java. Tais recursos estão finalmente presentes no PHP 5, após um longo perí eríodo de desenv envolvime imento nto que que culm ulminou com sua disponibilização oficial em junho de 2004.
O que é PHP? PHP - Hypertext Processor – É uma linguagem de programação de código aberto muito utilizada, onde sua principal função é a de cria criaçã ção o de scri scrip pts, ts, que que são são exe xecu cuta tado doss no servi ervido dorr web para para a manipulação de página HTML, ou seja, utiliza-se PHP para criar páginas dinâ dinâm micas icas e auto autom mática ticas. s. Essa Essa ling lingua uage gem m é dife diferrente ente de outr outraas
PHP & MySql
7
linguagens, onde o código é interpretado e não compilado.
Em que consiste uma página dinâmica? Ente Entend ndee-se se por por uma uma pági página na dinâ dinâmi mica ca,, toda toda a pági página na que que é gerada quando existe um pedido no servidor, ou seja, a página que chega ao utilizador não existe “escrita” no servidor. Existem sim os conteú conteúdo dos, s, que que serã serão o depo depois is coloc colocad ados os nos nos resp respect ectiv ivos os locai locais, s, na página, consoante os pedidos. O melhor exemplo de um site dinâmico é um motor de pesquisa. É impossível - e impensável - armazenar toda todass as comb combin inaç açõe õess de pági página nass que que surg surgem em,, quan quando do fa faze zemo moss diversas pesquisas. Quer isto dizer, que as páginas não existem e são “geradas” com informações que estão em bases de dados, quando fazemos um pedido sobre qualquer coisa.
Comunicação Cliente x Servidor Quando é digitado um endereço no navegador para acessar uma pági página na na inte intern rnet et o que acont conteece é uma uma requi equisi siçção do clie client ntee (navegador) ao servidor web. O servidor processa essa requisição e retorna uma resposta ao cliente, que por sua vez, interpreta o código retornado e formata a página para a sua visualização. Esse procedimento acontece em todas as requisições feitas pelo navegador. Portanto, programar para a web pode ser considerado como um jogo que consiste em receber os dados do usuário, processá-lo e enviar a resp respos osta ta dinâ dinâmi mica ca.. Uma Uma ve vezz envi enviad adaa a resp respos osta ta é ence encerr rrad ado o o contato entre o servidor e o cliente.
PHP & MySql
8
Visualização:
CLIENTE ENTE
SERVI ERVID DOR WEB
Delimitando o código PHP O código PHP fica embutido no próprio HTML. O interpretador identifica quando um código é PHP pelas seguintes tags:
<%
comandos
comandos
comandos
?>
?>
%>
Nota: O delimitador <% %> de alteração no arquivo de configuração
php.ini. Tudo que estiver delimitado por e ?> / / <% e %> será processado no servidor. O navegador cliente receberá apenas o resultado do processamento.
PHP & MySql
Nota:
9
NO PHP TODAS AS INTRUÇÕES SÃO TERMIDADAS COM
O CARACT ACTERE “;” “;” (pont ponto o e vir virgula) la). Este caracte terre ind indica ica ao interpretador quando acaba uma instrução, e quando ele deve de esperar outra instrução. A exceção deste caso é quando um bloco de código PHP só contem uma única instrução, podendo, assim incluir ou não o ';' .
Exercício 01
Resultado: Olá Mundo
Comentários no PHP Com a idéia de organizar o programa para fácil visualização podemos inserir COMENTÁRIOS. Em HTML utilizamos os delimitadores , em PHP também é possível possível comentar partes partes de um código. Para tal, quando se quer comentar uma única linha, utilizamos os caracteres “//” para comentar a linha que não será processada. Para um bloco de linhas, utilizamos os separadores “/*” no inicio do bloco, e “*/” para fechar o comentário.
PHP & MySql
10
Exemplo:
Exercício 02 Veja no exercício abaixo como o PHP interage com o HTML. Utilize um editor de texto puro (como o gedit) ou editor web (como o BlueFish), para digitar e testar o código abaixo. Salve na pasta indicada pelo seu instrutor com o nome de “ecoando.php”, abra um navegador e digite o endereço: http://localhost/
/ecoando.php http://localhost/ /ecoando.php Obs:
Onde estiver escrito digite o local indicado pelo seu
instrutor. A primeira linha e normal.
echo“A segunda linha já é escrita pelo PHP.”; ?>
PHP & MySql
11
Nisto, vem uma terceira mais complexa...
echo “E logo aseguir, a quarta ainda color=\“#0000 FF\”>ainda complicada!” ; ?>
Variáveis Variáveis são identificadores utilizados para representar valores mutáveis e voláteis, que só existem durante a execução do programa. Ela são armazenadas na memória RAM e seu conteúdo é distribuído após após a ex exec ecuç ução ão do prog progra rama ma.. Para Para cria criarr uma uma va vari riáv ável el em PH PHP, P, precisamos atribuir-lhe um nome de identificação, sempre procedido pelo caractere $ (cifrão). Veja os exemplos a seguir:
Exercício 03
Resultado: de Souza, João
PHP & MySql
12
Dicas:
Nunca inicie a nomenclatura de variáveis com números;
Nunca utilize espaços em branco no meio do identificador da variável;
Nunc Nuncaa util utiliz izee cara caract cter eres es espe especi ciai ais: s: (!@# (!@#% %^&*/ ^&*/|[ |[]{ ]{}) }) na nomenclatura das variáveis;
Evite criar variáveis com mais de 15 caracteres em virtude da clareza do código fonte;
Nomes de variáveis devem ser significativos e transmitir a idéia de seu conteúdo dentro do contexto no qual a variável está inserida;
Utilize Utilize prefer preferenc encial ialmen mente te palavr palavras as em minúsc minúsculo ulo (separ (separada adass pel pelo caracte terre “_”) _”) ou somente as primeir eiras let etrras em maiúsculo quando houver mais palavras.
Tipos de Dados Suportados Integer (Inteiro)
É util utiliza izado do para para númer números os inte inteir iros. os. Veja Veja como como decla declara rarr uma uma variável do tipo inteiro: $curso =1000; // número inteiro positivo $curso = -1000; // número inteiro negativo
PHP & MySql
13
Double (Dupla Precisão)
É utilizado para números reais, podendo fazer cálculos com grande precisão. Veja os exemplos abaixo: $curso = 1.050; // O ponto é o separador decimal $curso = 52e3; // Notação científica (equivale a 52000)
Strings
É utilizado para strings de caracteres. As strings podem ser delimitadas de duas maneiras:
Com aspas duplas ('' ''), todas as variáveis dentro da string serão resolvidas.
Exercício 04
Resultado: --- Linux --
Com o uso de apóstrofos ofos (' '), a strin tring g per permanec nece como omo aparece, sem substituições.
PHP & MySql
14
Exercício 05
Resultado: --- $teste ---\n Booleano
É utilizado para valores verdadeiros (True) ou falsos (False). Array
É utilizado para armazenar vários itens de dados do mesmo tipo em uma única variável. Objeto
É utilizado para armazenar instâncias de classes.
Caracteres de Escape Os caracteres de escape começam com uma barra invertida (\) e são colocados dentro das strings. Internamente eles são substituídos pelos caracteres reais e pelas ações que esses caracteres simbolizam.
PHP & MySql
15
\n \r
Nova Nova linh linha. a. Desc Descee par paraa a linh linhaa de de bai baixo xo.. Reto Re torn rno o de carr carro o (sem (semel elha hant ntee a \n). \n). Col Coloc ocaa o curs cursor or no no come começo ço
\t \\ \$ \”
da linha. Tabu Tabula laçã ção o hor horizo izont ntal. al. Pu Pula la para para a próx próxim imaa ta tabu bula laçã ção. o. Barr Ba rraa inv inver ertid tida. a. Subs Substit titui ui por por uma uma barra barra inver invertid tida. a. Cifr Cifrãão. Sub Substit stitui ui por por um um cif cifrã rão o. Aspas. Substitui tui por por aspas pas.
Exercício 06 No exercício abaixo é mostrada a forma como o PHP utiliza variáveis. Utilizando um editor de texto puro (como o gedit) ou editor web (como o BlueFish), salve o arquivo na pasta indicada pelo seu instrutor com com o nom nome de “va “variav riavei eiss.ph .php”, p”, abra abra um nave navega gado dorr e digi digite te o endereço http://localhost//variaveis.php Exemplo de utilização de variáveis:
> A variável $inteiro tem o valor echo $inteiro ?>.
> A variável $real tem o valor echo $real ?>
> O caractere escolhido e o echo $caracter ?>
PHP & MySql
16
Operadores Aritméticos
O PHP possui todos os operadores aritméticos. Os principais são: + * / %
Adição Subtração Multiplicação Divisão Resto da divisão
String
O PHP possui um único operador de string, que é o operador operador de concatenação “.” . Veja o exemplo exemplo abaixo: abaixo:
Exercício 07
Resultado: Alô Mundo
PHP & MySql
17
Atribuição
O
únic único o
oper operad ador or de
atri at ribu buiç ição ão do PH PHPP
é o “=”. “=”. Este Este,,
combinado combinado com os operadores operadores aritmétic aritméticos os e de string, string, pode reduzir reduzir o tamanho do código. = += -= *= /= %= .=
Atribuição simples. Atribuição com adição. Atribuição com subtração. Atribuição com Multiplicação. Atribuição com divisão. Atribuição com módulo. Atribuição com concatenação.
Veja o exemplo abaixo.
Exercício 08
Resultado: 9
PHP & MySql
18
Veja outro exemplo utilizando a atribuição com módulo (resto de divisão):
Resultado: 1 No exemplo acima inicialmente a variável $resto possuí valor 11. A
operação
“$resto
%=2;”
é
equivalente
à
operação
“$resto=$resto%2;”, isto é, as duas calculam o resto da divisão da variável $resto por 2. Incrementação: Pode ser utilizada de duas formas: antes ou depois
da variável. O incremento de uma variável soma 1 unidade à uma variável e armazena o resultado na mesma. O decremento subtraí uma variável em 1 unidade. Quando utilizado antes, retorna o valor da variável antes de incrementá-la ou decrementá-la. Quando utilizado depois, retorna o valor da variável já incrementado ou decrementado. ++ Incremento - - Decremento
PHP & MySql
19
Exemplos: $a=$b=10; // $a e $b recebem o valor 10 $c=$a++; // $c recebe 10 e $a passa a ter 11 $d=++$b; // $d recebe 11, valor de $b já incrementado $d++; // $d recebe + 1 unidade e passa a valer 12 Lógicos
Os oper operad adore oress lógico lógicoss trab trabal alha ham m com com os va valo lore ress comp comple letos tos,, utilizando TRUE ou FALSE. Operador
and or ! && ||
Significado
Exemplo
“e” lógico “ou” lógico Não (inversão) “e” lógico “ou” lógico
$a and $b $a or $b ! $b $a && $b $a || $b
Comparação
Os operadores de comparação são usados para comparar dois valores. == != <> < > <= >=
igual a Diferente de Diferente de menor que maior que menor ou igual a maior ou igual a
PHP & MySql
20
Integrando o PHP ao HTML Nesta seção, vamos criar uma página dinâmica para processar os dados enviados pelo formulário. Os va valo lore ress dos campo amposs passa assado doss pelo peloss for formulá mulári rio os fica ficam m armazenados nos vetores $_POST e $_GET conforme o método de envio.
Métodos GET e POST O GET é um método do HTTP destinado a enviar dados do cliente para o servidor. É acionado por meio de um formulário HTML através da diretiva METHOD=GET incluída METHOD=GET incluída na tag "); echo ("
"); echo
("
Voltar ");
href=\"formulario.php\">
PHP & MySql
54
} } else { echo ("
"); echo (" Aluno não cadastrado "); echo ("
"); echo
("
href=\"exclusao.html\">
Voltar "); } ?>
Projeto Criaremos um site dinâmico utilizando a linguagem PHP e o servidor de banco de dados MySQL. O objetivo desse site será a localiza localização ção de funcion funcionári ários os dos Telece Telecentro ntros. s. Fazend Fazendo-s o-see uma busca busca pelo nome do funcionário, serão disponibilizadas informações como: cargo, telefone e e-mail. O site permitirá inclusão, consulta, alteração e exclusão de dados. 1 - Criação da base de dados e tabelas Utilizando o servidor de banco de dados MySQL, o primeiro passo será definir a base de dados e as tabelas em que você guardará as informações. Você pode criar a estrutura de dados diretamente no MySQL, seguindo o roteiro abaixo: Roteiro:
PHP & MySql
55
1. Abra o navegador de sua preferência. 2. Digi Digite te o end endere ereço “http://localhost/phpmyadmin”. (pergu (pergunte nte ao instrutor qual usuário e senha você deve utilizar). 3. Crie uma base de dados no MySQL, que conterá as tabelas a serem utilizadas no projeto. Os passos são:
No campo “Criar nova base de dados” digite “telecentros” em “telecentros” em seguida clique em “Criar”. (Onde ''telecentros'' é o nome do banco de dados.)
PHP & MySql
56
4. Deverá aparecer a tela de confirmação. Agora você já pode pensar nas tabelas que serão necessárias neste projeto. Para facilitar, você irá utilizar uma única tabela, chamada “alunos” .Coloque .Coloque no campo “Nome” do item “Criar nova tabela na base de dado dadoss te tele lece cent ntro ros” s”,, “alu “aluno nos” s” e no camp campo o “Num “Numbe berr of fiel fields ds:” :” o número “4” e clique em “Executa”.
Tipos de Campos varcha varchar(N r(N)) integer char(N) text date Not n nu ull Primar Primaryy key
É um campo campo texto texto variáv variável el de de no no máxi máximo mo N caract caractere eres. s. É um inteiro padrão. Éu um m campo te texto com exatamente N caracteres. É um campo texto com no máximo 65535 caracteres. É um campo data no formato ''AAAA-MM-DD''. Significa que o campo nã não po pode se ser n nu ulo. Signifi Significa ca que que é um camp campo o chave. chave.
PHP & MySql
57
- Insira as informações mostradas abaixo e clique em “Guarda” .
- Deverá aparecer a tela de confirmação contendo as informações abaixo.
PHP & MySql
58
2 - Criação da home page do site
A página principal (homepage) do site será bastante simples e trará trará um um menu menu com com as as opções opções de inclusão, consulta, alteração e terão links links para seus seus respectivos respectivos módulos. módulos. Essa Essa exclusão. As opções terão págin páginaa inic inicial ial te terá rá a ex exten tensã são o .html e será será cria criada da util utiliza izand ndoo-se se o BlueFish.
O
BlueFish
é
uma
ferramenta
entre
outras
desenvolvimento para Web. Roteiro: 1. Pres Pressio sione ne aass tecl teclas as + .. 2. Digite: Digite: Bluefi Bluefish. sh. Veja Veja a figura figura abaixo abaixo..
3. Clique Clique no botã botão o Execut Executar. ar. Será Será exib exibida ida a tela tela do Bluef Bluefish ish..
de
PHP & MySql
59
4. Cliq Clique ue no menu menu Arqu Arquiv ivo. o. 5. Esco Escolh lhaa a opçã opção o Novo Novo.. Digit igitee as segui eguint ntees opçõ opções es de menu menu:: Incl Inclus usãão, Cons Consu ulta, lta, Alteração, Exclusão e Sair. Transforme as opções do menu em links e direcione para seus respectivos endereços: incl inclus usao ao.h .htm tml, l,
cons onsulta ulta.h .htm tml, l,
alte altera raca cao. o.ht htm ml,
exclus clusaao.ht o.htm ml,
sair.html. Salve a página como index.html no diretório indicado pelo instrutor.
e
PHP & MySql
60
3 - Módulo de Inclusão
Você irá criar a página para o formulário de inclusão. Você irá digitar o código utilizando o Bluefish ou um editor de texto qualquer. Esse arquivo terá extensão .html . .html . 3.1) Formulário inclusao.html
Após digitar o código, salve-o e teste-o. Veja a figura abaixo:
PHP & MySql
61
Quando o formulário for submetido, dará um erro, alertando que o programa inclusao.php, para o qual você está encaminhando os dados não existe. Então, você precisa criá-lo. Observe que a próxima página não terá mais a extensão html e sim php, pois o código vai conter programação PHP. Dica: Quando o servidor recebe a requisição de uma página HTML, ele apenas envia a página requisitada. Por outro lado, quando a requisição é de uma página com extensão PHP, o servidor processa o código antes de enviá-la. Pode-se combinar os códigos HTML e PHP. 3.2) Programa inclusão.php O programa "inclusao.php" vai tratar os dados recebidos através do formulário, incluindo-os no banco de dados.
PHP & MySql
62
Dicas: No código referente ao programa "inclusão.php", você utilizará
algumas funções do PHP: Trim: retira os espaços em branco de uma variável. A expressão or die pode ser usada como uma alternativa para o if/else. include ('conect.php'); $nome = $_POST['nome']; $email = $_POST['email']; $_POST['email']; $cargo = $_POST['cargo']; $_POST['cargo']; $telefone = $_POST['telefone'];
if ($res1) { $sql = "insert into $table "." (nome, email, cargo, telefone)"."values('$nome','$email','$cargo', '$telefone')"; $res2 = mysql_db_query($bdConect, $sql, $res1); if ($res2) { echo("
"); echo("Inclusão Efetuada"); echo("
"); echo(" Voltar "); } else { echo("Erro de inclusão ".mysql_error()."\n"); echo(" Voltar "); }
PHP & MySql
63
} else { echo("Erro de conexão ".mysql_error()."\n"); } mysql_close($res1); ?>
3.3) Testando o módulo de inclusão
Roteiro: 1. Abra o navegador de sua preferência e digite o seguinte endereço do site: http://localhost//index.html onde será o local indicado pelo instrutor. 2. No menu da página principal, clique na opção Inclusão. 3. Deixe os campos do formulário em branco. Clique em Enviar. Deverá mostrar uma mensagem de erro. O único campo que não é obrigatório é o e-mail. 4. Preencha o formulário com os dados do funcionário: nome completo, cargo, telefone e e-mail. 5. Clique em Enviar. Deverá mostrar a mensagem "Inclusão Efetuada". 6. Volte para a página do formulário e entre com outros dados, só que
PHP & MySql
64
desta vez entre com um nome que já existe no banco de dados. 7. Cliq Clique ue em Envi Enviar ar.. Deve Deverá rá most mostra rarr a mens mensag agem em "Inc "Inclu lusã são o não não efetuada", pois o campo nome é chave e não aceita valores duplicados. 8. Insira 3 funcionários. 4 - Módulo de Consulta
Você irá criar a página com o formulário de consulta.Veja a figura abaixo: 4.1)Formulário consulta.html
Quando o formulário for submetido, dará um erro, alertando que o programa consulta.php, para o qual você está encaminhando os
PHP & MySql
65
dados não existe. Então, você precisa criá-lo. 4.2) Programa consulta.php
O programa consulta.php vai receber o nome do formulário, pesquisar no banco de dados e mostrar as informações referentes ao aluno. Dicas:
No código referente ao programa consulta.php, você utilizará mais algumas funções do PHP: FILE : Lê um arquivo, retornando o seu conteúdo como um array. Cada linha do arquivo será representada por um elemento do array. IMPLODE : Armazena todo o conteúdo de um array como uma string, concatena os conteúdos de cada elemento do array em uma string, utilizando ou não um delimitador entre eles. STR_REPLACE STR_REPLACE : Vai ler uma string e substituir um determinado valor por por out outro. ro. No noss nosso o caso caso,, essa essa fu funç nção ão subs substi titu tuir iráá a ex expr pres essã são o " m>", ", cont contid idaa no códi código go do "con "consu sult lta. a.ht html ml", ", por por uma uma mensagem de erro. Portanto, não se esqueça de colocar no html a expressão a ser substituída (como comentário). mysq mysql_ l_nu num_ m_ro rows ws:: obté obtém m o núme número ro de regi regist stro ross que que reto retorn rnou ou do select. mysql_fetch_row: obtém os campos do registro que retornou do select. select .
PHP & MySql
Consulta
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> $nome= $_POST['nome']; $declar = "SELECT * from $table WHERE nome = '$nome'"; $res2 = mysql_db_query ($bdConect, $declar, $res1) or die ("Erro no acesso ao banco"); $valor = mysql_fetch_array($res2); if ($res1) { ?>
|
Dados Pessoais Nome.: Cargo.:=$valor["cargo"]?> Email.: =$valor["email"]?> Tel.: =$valor["telefone"]?> |
66
PHP & MySql
67
Voltar } else { echo("Aluno não encontrado"); } mysql_close($res1); ?>
4.3) Testando o módulo de consulta
Roteiro: 1. Abra o Mozilla e digite o seguinte segu inte endereço do site: http://localhost/
/index.html 2. No menu da página principal, clique na opção Consulta. 3. Deixe o campo nome do aluno em branco e clique em Enviar. Deverá aparecer uma mensagem de erro. 4. Preencha o formulário com um nome de aluno inexistente e clique em envi enviar ar.. Dev Deverá erá apar parecer ecer a segu seguin inte te mens ensagem agem "Alu "Aluno no não não cadastrado".
PHP & MySql
68
5. Preencha o formulário com um nome de aluno válido e clique em enviar. Deverá mostrar os dados do aluno. Veja a figura abaixo:
5 - Módulo de Exclusão
Você irá criar a página com o formulário de exclusão. Veja a figura abaixo: 5.1) Formulário exclusao.html
PHP & MySql
69
Quando o formulário for submetido, dará um erro, alertando que o programa exclusao.php, para o qual você está encaminhando os dados, não existe. Então, você precisa criá-lo. 5.2) Programa exclusao.php Exclusao
PHP & MySql
70
Preencha o campo Nome"; $html = str_replace("",$erro,$html); echo ($html); } else { echo ("
"); $declar = "SELECT nome from $table where nome = '$nome'"; $query = mysql_db_query ($bdConect, $declar, $res1) or die ("Erro no acesso ao banco"); $achou = mysql_num_rows($query); if ($achou > 0) { echo ("
"); echo (" Aluno: $nome "); echo ("
"); $declar2 = "DELETE from $table where nome = '$nome'"; if (mysql_db_query ($bdConect, $declar2, $res1)) { echo ("
"); echo (" Exclusão Efetuada"); echo ("
"); echo (" Voltar "); } else {
PHP & MySql
71
echo ("
"); echo (" Erro na Exclusão não Efetuada"); echo mysql_error(); echo ("
"); echo (" Voltar"); } } else { echo ("
"); echo ("Aluno cadastrado"); echo ("
"); echo (" Voltar"); } mysql_close ($res1); } ?>
5.3) Testando o módulo de exclusão
Roteiro: 1. Abra o navegador e digite o seguinte endereço do site: http://localhost//index.html 2. No menu da página principal, clique na opção Exclusão. 3. Deixe o campo nome do aluno em branco e clique em Enviar. Deverá aparecer uma mensagem de erro. 4. Preencha o formulário com o nome completo do aluno e clique em Enviar. Deverá aparecer a mensagem "Exclusão efetuada".
PHP & MySql
72
5. Preencha o formulário com o nome do aluno que você acabou de excluir e clique em Enviar. Deverá mostrar a mensagem "Aluno não cadastrado". 6 - Módulo de Alteração 6.1) Formulário alteracao.html
Você irá criar a página com o formulário de alteração.Veja a figura abaixo:
Quando o formulário for submetido, dará um erro, alertando que o programa "alteracao.php", para o qual você está encaminhando os dados, não existe. Então, você precisa criá-lo.
PHP & MySql
73
6.2) Programa alteracao.php
O prog progra rama ma alte altera raca cao. o.ph php p va vaii rece recebe berr o dado dado do form formul ulár ário io,, recu recupe pera rarr as inf inform ormações ções do ban banco de dado dadoss e most mostrráá-la lass num num formulário para que elas sejam alteradas. Para montar o formulário, você criará uma função em PHP. Consulta <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> $aluno = $_POST['aluno']; $declar = "SELECT * from $table WHERE nome = '$aluno'"; $res2 = mysql_db_query ($bdConect, $declar, $res1) or die ("Erro no acesso ao banco"); $valor = mysql_fetch_array($res2); if ($res1) { ?>
} else { echo("não encontrado"); } mysql_close($res1); ?>
6.3) Programa conect.php
O prog progra ram ma "con "coneect.p ct.php hp"" arma rmazena zena tod todos os par parâmetr metros os de conexão com o banco de dados. Nele, contém informações como: usuário e senha do banco de dados, nome do banco e tabela a ser utilizada em todos os scripts.
PHP & MySql
75
$res1 = mysql_connect ("localhost", "php", "1234"); $bdConect = "curso"; $table = "tc_alexandre" ?>
Observe que o programa alteraca acao.ph .php chama o programa alte altera raca cao2 o2.p .ph hp. Isso Isso porq porque ue,, par para você ocê com comple pleta tarr o módu módulo lo de alteração precisará de mais um programa que pegue as informações que foram alteradas e as inclua no banco de dados. Observação: Como o campo nome não é passado para o programa
alteracao2.php, por não se tratar de uma variável do formulário, temos que passá-lo como um campo escondido input type="hidden". 6.4) Programa alteracao2.php alteracao2.php
O programa "alteracao2.php" vai pegar as informações alteradas e fazer um update (atualizar) no banco de dados. include ('conect.php'); $aluno = $_POST['aluno']; $cargo = $_POST['cargo']; $telefone = $_POST['telefone']; $email = $_POST['email']; if ($res1) { $sql = "update $table set nome = '$aluno',
PHP & MySql
cargo = '$cargo', telefone = '$telefone', '$telefone', email = '$email'"; $res2 = mysql_db_query($bdConect, $sql, $res1); if ($res2) { ?> Alteracao <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
"); echo("O Aluno " . $aluno ."
Foi Alterado com sucesso! "); echo("
"); echo("Voltar "); echo("
"); ?> Voltar "); echo("
"); } } else { echo("Erro na tentativa de conexão ".mysql_error()."\n"); } mysql_close($res1); ?>
76
PHP & MySql
77
6.5) Testando o módulo de alteração
Roteiro: 1. Abra o navegador de sua preferência e digite o seguinte endereço do site: http://localhost//index.html 2. No menu da página principal, clique na opção Alteração. 3. Deixe o campo nome do aluno em branco e clique em Enviar. Deverá aparecer uma mensagem de erro. 4. Preencha o formulário com um nome de aluno que não existe e clique em Enviar. Deverá mostrar a mensagem "Aluno não cadastrado". 5. Preencha o formulário com um nome de aluno válido e clique em Enviar. Será mostrado um formulário com os dados desse aluno. 6. Alte Altere re alg alguns uns cam campos pos e cliq clique ue em Envia nviarr. Dev Deverá erá most mostrrar a mensagem "Alteração efetuada". 7. Entre no módulo de consulta e confira se os dados foram realmente alterados. 8 - Criação da página sair.html A página sair.html é utilizada no nosso site apenas para agradecer ao usuário por utilizar o sistema. Utilize o Quanta Plus para criar uma página simples que agradece ao usuário pelo uso do sistema, e salve-a com o nome de sair.html .
PHP & MySql
78
Respostas dos exercícios de lógica 1. Resposta: 9 2. Re Resspost posta: a: 28 dias dias.. 3. Re Resspost posta: a: Pergu ergunt ntaa: se eu perg pergun unta tarr ao seu coleg olegaa, qual qual a porta certa, qual é que ele me indica? Seja qual for o guarda inquirido, ser-me-á respondido “ a porta errada”. Suponhamos a que a porta certa é a “A”. •
Se eu perguntasse ao guarda verdadeiro, ele indicaria a porta correta: “porta A”. Mas o mentiroso diria que o colega me indicaria: “porta B”.
•
Se eu perguntasse ao guarda mentiroso, ele diria a porta errada: “porta B” e o guarda verdadeiro diria o que o colega me indicaria: “porta B”.
4.
PHP & MySql
Plano de aula 1ª aula - Apresentação da turma; - Lógica de programação;
* Sequência lógica; * Exercícios de lógica: - Exercício retângulo; - Exercício “lesma”; - Exercício “O prisioneiro”; - Exercício “Teste dos 4 pontos. - PHP
* Definição de PHP; * Em que consiste uma página dinâmica; * Comunicação cliente x servidor; * Delimitando o código PHP; - Exercício 01
* Comentários no PHP; - Exercício 02
2ª aula - Variáveis (Definição) - Exercício 03
* Tipos de dados suportados; - Integer - Double
79
PHP & MySql
80
- String * Exercício 04; * Exercício 05;
- Booleano - Array - Objeto - Caractere de Escape - Exercício 06 - Operadores
* Aritmético * String - Exercício 07
* Atribuição - Exercício 08
* Incrementação * Lógicos * Comparação
3ª aula - Integrando o PHP ao HTML HTML
* Métodos GET e POST - Exercício 09 - Estruturas de controle
* IF - Exercício 10
PHP & MySql
81
* Else - Exercício 11
* Elseif - Exercício 12
4ª aula - Laços
* While - Exercício 13
* For - Exercício 14 - Include
* Exercício 15 - Array
* Exercício 16 - Listas - Exercício 17
5ª aula - MySql – Banco de dados - Popularização dos Bancos de Dados - O que é um Sistema de Gerenciamento de Banco de Dados? - PhpMyAdmin PhpMyAdmin (Apresentação) (Apresentação) - MySql - Como omo utiliz iliza ar a SQL para ara mani manip pula larr os banco ancos s de dados ados
PHP & MySql
82
MySQL?
* Acesso ao Banco de dados via terminal (contruir o banco conforme roteiro na página 42. -Comandos SQL:
* Comando SHOW * Comando USE * Comando CREATE *Comando INSERT * Comando SELECT * Comando DESCRIBE * Comando DROP * Comando DELETE * Comando UPDATE - Reteiro – Criação de Banco de Dados (Usando o terminal) - Criar o mesmo Banco de Dados (Usando o PHPMyAdmin)
6ª aula - Estabelecendo conexões entre PHP e MySql - Selecionando a base de dados - Realizando consultas - Apagando resultados - Número de linhas - Utilizando os resultados
PHP & MySql
83
7ª aula - Explicação de exercício preparatório para o projeto (CRUD) - Elaboração do exercício - (CRUD)
8ª aula - Projeto final: Desenvolvimento do tema (escolhido pela turma) para
elaboração do projeto. - Elaboração do projeto
9ª aula - Elaboração do projeto
10ª aula - Finalização do projeto
PHP & MySql
84
Bibliografia PHPP – Prog PH Progra rama mand ndo o com com orien orienta taçã ção o a obje objetos tos;; Nova Novate tec; c; Pa Pabl blo o Dall'Oglio; 2007. Curso de Aplicações Web em PHP; Maurício Vivas. Sistema de Banco de Dados; Henry F. Korth, Abraham Silberschatz; Makro Books; 1995. www.php.net www.mysql.com