Sie sind auf Seite 1von 63
MATERIAL DE APOIO AI - APLICATIVOS PARA INTERNET (PHP COM BANCO DE DADOS) kkkkk andez Aguilar Professor: Rafael S. Barreto Pha ven profralph.com.br~ APLICATIVOS PARA INTERNET (Al) SUMARIO INTRODUCKO AO PHP... COMPARAGAO PHP x ASP COMO FUNCIONA? ESQUEMA 1 ~CODIGO HIBRIDO ESQUEMA 2~CODIGO SEPARADO NOTEPAD##2 crn ‘WAMP SERVER: USANDO O WAMP SERVER REGRAS PARA SALVAR AS PAGINAS:.... EXEMPLO DE CODIGO HiBRIDO: EXEMPLO DE CODIGO SEPARADO: COMO ABRIR AS PAGINAS PARA TESTAR..... DIFERENGAS NOTADAS: PARA EDITAR OS CODIGOS PHP: COMENTARIOS No PHP. VARIAVEIS nn OPERADORES 1. ARITMETICOS 2. DESTRINGS 3. DEATRIBUICAO.. 4. BITABIT.... 5. LOGICS 6. COMPARACAO.... 7. EXPRESSAO CONDICIONAL 8. DE INCREMENTO E DECREMENTO.... FORMAS DE IMPRIMIR TEXTO COM VARIAVEL... FORMULARIO DE DADOS... Pha ven profralph.combr~ APLICATIVOS PARA INTERNET (Al) ATIVIDADES (FORMULARIOS COM PHP}: ESTRUTURAS DE CONTROLE (DECISAO E LACOS DE REPETICAQ)... IFEELSE IF ELSE. WHILE, DO WHILE E FOR WHILE wn DO WHILE wanes FOR BREAK E CONTINUE... ‘SWITCH, CASE E DEFAULT. ‘TRATAMENTO DE FORMULARIOS 1. CODIGO HiBRIDO - NAO EXECUTAR O PHP SEM CLIQUE NO BOTAO.... 2. VERIFICAR SE HA CAMPOS VAZIOS 3. FORMATAR VALORES EM ESTILO MOEDA (R$) 4. CAIKAS DE MENSAGENS COM JAVASCRIPT... 5. VALIDAR E-MAIL. ATIVIDADES (TRATAMENTO DE FORMULARIOS) FORMULARIO COM O NVU. ATIVIDADES (NVU) PHP COM BANCO DE DADOS. O PHP MYADMIN ens USANDO 0 PHP MYADMIN. PHP INTERAGINDO COM 0 SGDB MYSCL.... COMO PHP INTERAGE COM 0 SGDB MYSQL... COMO ABRIR UMA CONEXAO COMO SELECIONAR O BANCO DE DADOS COMO EXECUTAR UMA SOL... COMO MANIPULAR 0 RESULTSET DA EXECUCAO ANTERIOR COMO FECHAR A CONEXAO. MANIPULACKO DO BANCO DE DADS... CADASTRO (GRAVAGAO) USTAR TODOS OS DADOS (CONSULTA GERAL) CONSULTA (BUSCA)... w od 18 18 9 od ood 20 20 2 25 nS 26 26 28 29 30 4 45 4 4s 46 46 nA 47 on 50 Pha wunw.profralph.com.br ~ APLICATIVOS PARA INTERNET (Al) EXCLUSAO (APAGAR REGISTRO), SORTEAR INFORMACOES DO BANCO DE DADOS.... LOGIN Com sessko CONEXAO CADASTRO: AUTENTICAGAO: PAGINA RESTRITAS VERIFICAGAO DE AUTENTICAGAO: EFETUAR LOGOFF: ATIVIDADES (PHP COM BANCO DE DADOS): EXPORTACAO E IMPORTACAQ DE BANCO DE DADOS NO PHP MYADMIN EXPORTANDO O BANCO DE DADOS PRONTO: IMPORTANDO 0 BANCO DE DADOS EM OUTRA MAQUINA: 52 54 56 57 58 59 60 60 60 60 61 61 63 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) INTRODUGAO AO PHP Ao contrario do que muita gente pensa, HTMIL (Hyper Text Markup Language) no € uma linguagem de programacio e sim uma linguagem de escrta e formatag3o de hipertexto. Para ser considerada uma linguagem de programaco, ¢ preciso ter suporte a varidveis, tomadas de decisio, laco de repetis20, ou ter acesso a Banco de Dados ¢ isto o HTML no permite. Mas com a popularizacio e a evoluco da Intemet surgiu a necessidade de se criar sites dinamicos ‘que manipulassem informacées, © PHP, assim como 0 ASP, surgiu para solucionar este problema e dar as paginas de Internet, as fungdes que elas ndo tinham. PHP significa — PHP Hypertext Processor ou Personal Home Page. € uma linguagem interpretada, ou seja, oda em tempo real, sem a necessidade de ser transformada em linguagem de rmeiquina (compilagio). ‘COMPARACAO PHP X ASP © Servidor Windows © Servidor Windows ou Linux © Maior custo © Menor custo Mais complicada © Mais facit COMO FUNCIONA? O browser (navegador Internet Explorer, Firefox, Chrome, ete) Ié os cédigos HTML e envia os -chead>Exemplo 1 de PHP-Hibridos/title></head> <body> <?php ‘Sdata_de_hoje=date("d/m/¥",time()) <p align="center’> Hoje € dia <?php echo "Sdata_de_hoje"; ?> </p> </body></html> EXEMPLO DE CODIGO SEPARADO: CODIGO HTML: Digitar no Notepad ++ e salvar na www/exemplo_separado com o nome data_hoje.html shims <head><title>Exemplo 1 de PHP-Separado Clique . Isto indica ‘onde comeca e onde termina o PHP. No PHP varidveis no precisam ser declaradas, basta comecar 0 nome com $, como no caso da varisvel Sdata_de_hoje. date("d/m/Y"xime()};é uma funcSo que pega a data do sistema Echo ¢ um comando para escrever no navegador, portanto echo “Hoje é dia $data_de_hoje"; mostraria a data que foi armazenada pela funcao na varidvel com o comando $data_de_hoje=date(“d/m/¥" time()) Outro detalhe importante é 0 Uso do ponto e virgula no final dos comandos PHP. Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) COMO ABRIR AS PAGINAS PARA TESTAR: ‘As pdginas em PHP no podem ser abertas de qualquer lugar e simplesmente clicando duas veres. Elas precisam ser interpretadas, ou seja, vocé é obrigado a abrir como se estivesse navegando na Internet. Antes de abri-las, nSo se esqueca de abrir o Wamp. Quando vocé testar uma pagina em PHP e aparecer uma tela de download, para salvar 0 arquivo PHP, significa que vocé nao esta abrindo corretamente, Para abrir da maneira correta, clique no icone FEF ts ‘opsio Localhost. [ATENGAO! Em alguns casos, ao invés de abrir a pagina do Wamp, seu navegador pode abrir um site de endereco www.localhost.comibr. Se este problema acontecer, va 3 batra de enderecos do seu navegador e substitua este endereco por //127.0.0.1, assim, seré carregada a pégina do Wamp pelo ip dda sua placa de rede e vocé poderétrabalhar normalmente. Na pagina inicial do Wamp, procure'pelo link Your Proects (Seus Projetos) e clique no link do projeto gue yor? ira testar. DIFERENCAS NOTADAS: No cédigo hibrido tudo é executado na mesma pagina e em tempo real, muitas vezes sem a necessidade de interven¢o do usuério, a ndo ser em formulrios, enquanto no cédigo separado o HTML vai para outra pagina PHP para enfim executar os comandos. ‘Apesar deste detalhe, nao ha diferenca em velocidade de execuco dos comands. PARA EDITAR OS CODIGOS PHP: N3o € possivel utilizar 0 comando Exibir, Codigo fonte do navegador, pois o PHP desta forma ‘no mostra os comands e sim os resultados dos comandas, por exemplo, no cédigo data_hoje.php, cexibiria: Hoje 6 dia xx/sx/xox Onde x seriam os valores de dia, més e ano mostrados, Para fazer alteraco no cédigo, devemas ir até o diretério www, clicando no icone do wamp © abrindo a opco www directory. 4 partir dai, abrir a pasta onde ests o projeto, clicar com 0 botio direito do mouse e escolher a opco Edit with no Notepad ++. Altere o cédigo como no exemplo a seguir: Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) ”; echo “Olé visitantel”; ‘$data_de_hoje=date(“d/m/Y",time()}; echo “Hoje é dia . Colocando.os comentarios fora do PHB\faré com que,seja|mostrado, como texto, comuln, Pra Cnientdrid Smples Utilizamrios SZontando /7, Corto m6 explo ”; echo “Olé visitante!"; //SAUDAR O VISITANTE UIPEGAR A DATA E JOGAR NA VARIAVEL $data_de_hoje ‘Sdata_de_hoje=date(“d/m/¥",time()); //MOSTRAR A DATA FORMATADA echo “Hoje é dia Sdata_de_hojec/font>"; > Para comentarios em blocos utilizamos /* no comego e */ no fim, como no exemplo: <2php ([Fecho “
”; echo “Olé visitante!”;*/ //COMENTEI ACIMA PORQUE NAO QUERO MAIS CENTRALIZAR E SAUDAR O VISITANTE Sdata_de_hoje=date("d/m/" time()); echo “Hoje ¢ dia "; > 10 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) VARIAVEIS {As varidveis no PHP nijo exigem declarago e aceltam qualquer tipo (contedo) em qualquer momento. Devemos apenas nos lembrar de dois detalhes cruciais: Varisveis iniciam SEMPRE com o caracter $. PHP € key sensitive, ou seja, diferencia letras maitisculas de mindsculas, portanto, se sua variavel tiver letras minusculas, deve se usar assim sempre, mesmo com letras maiisculas. Para 0 PHP, as varidveis $nome, $Nome, $NOme, SNOMe e $NOME sio cinco varidveis diferentes. Exemplo1: Digitar no Notepad ++ e salvar na www/exemplos com o nome variaveis.php <2php ssnizid+7} echo “O valor 6: $nt"; echo "
"; Sni= "Rafael"; Echo “O nome é: $n”; > Imprime no navegador primeiro a frase “O valor 6: 17” que esta dentro de $n e em seguida, $n passa a valer 0 nome (Rafael) e seria impresso “O nome é: Rafael”. Podemos reparar entio que a variavel consegue assumir valor de nlimero e texto. Exemplo2: Digitar no Notepad ++ e salvar na www/exemplos com o nome erro_variaveis.php >- shift right. Lécicos util -ados para inteiros representando valores booleanos: and - "e" légico; or -"ou" logico; xor -0u exclusivo; | -nio (inverséo); B&-"e" logico; I -"ou" kégico. Existem dois operadores para "e" e para “ou porque eles tém diferentes posigdes na ordem de precedéncia COMPARACAO As comparagbes so feitas entre os valores contidos nas varidvels, @ no as referéncias. Sempre retornam um valor booleano: igual a; |=-diferente de; ‘<= menor que; >-maior que: <=- menor ou igual 3; >=- maior ou igual a EXPRESSAO CONDICIONAL Existe um operador de seleco que é ternario, Funciona assim: (expressao1)?(expressao2):( expressa03) 0 interpretador PHP avalia a primeira expressdo. Se ela for verdadeira, a expresso retorna 0 valor de express02. Sendo, retorna o valor de expressio3. B Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) 8, DE INCREMENTO E DECREMENTO Operadores de incremento e decremento: ++-incremento; decrement. Podem ser utilizados de duas formas: antes ou depois da varivel. Quando utilizado antes, retorna o valor da variével antes de incrementé-la ou decrementéla. Quando utilizado depois, retorna 0 valor da variavel ja incrementado ou decrementado. Exemplos: ‘$a= $b = 10; // $A E $B RECEBEM O VALOR 10 Sc= Sat; // SC RECEBE 10 E SA PASSA ATER 11. $Sd=4449b; // $D RECEBE 11, VALOR DE $B JA INCREMENTADO FORMAS DE IMPRIMIR TEXTO COM VARIAVEL O PHP consegue diferenciar o que ¢ texto do que é variavel, desde que para a impressdo seja feito 0 ysode aspas y © apdstrofo serve para inpress.o literal, Ou sejajacontece a impréssac literal, Ou'seja, a varidvel vai aparecer como um texto normal caso haja confusto entre 0 uso de ambos, pademos ainda trabalhar com concatenaco, ou ‘eja, jungio de texto com valor de varidvel Exemplo: Digitar no Notepad ++ salvar na www/exemplos com o nome mostrar.php "; Snt= “Rafael”; echo “O nome é: $n”; echo "
"; ‘Snt=date(“d/m/Y" time()}; echo ‘A data é:.Snt; > “4 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) ‘Ao testarmos, podemos perceber que o resultado &: valor é: Smt © nome é: Rafael data 6 voxfoxf Vemos que no primeiro caso ocorre uma impressdo literal por causa do apéstrofo que ndo difere texto de varidvel. Nos segundo caso ha o reconhecimento de texto e varidvel devido a0 uso de aspas e finalmente no terceiro caso usamos apéstrofo, mas concatenamos (com .) a expresso com a variavel, que esté fora dos apdstrofos. FORMULARIO DE DADOS Formularios so telas feitas no HTML com campos para passar valores para o PHP, como a figura a seguir Valor 1 Valor 2 (teats) ‘Trabalhar com formularios Exige atencio alalguns detalhes MUITO IMPORTANTES: ‘¢ DECLARE SEMPRE seus formularios antes de colocar botdies, caixas de texto, etc, para que 0s botdes possam funcionar e 0 PHP consiga receber 0s dados; ‘¢ AAGKO sempre o arquivo .php se 0 codigo for hibrido ¢ o mesmo nome do arquivo; ‘¢INFORME 0 método de envio de dados; ATENGAO! Existem dois métodos de envio de dados: GET ~ método padrio. Os dados so enviados para a barra de endereco do navegador © depois para o PHP. POST — método protegido. A barra de enderego nao recebe os dados, assim nao ficam Se vocé no declarar nenhum método o PHP assumiré o GET, isto significa que as Informages como senha, por exempla,ficardo vsivel # DE NOMES a todos os objetos do formulério; # BOTOES DE RADIO (bolinhas, ou options) tem sempre o mesmo nome, no importa quantos aparecam para uma mesma opcio; ‘¢ LEMBRE-SE que o PHP ¢ key sensitive, os nomes forem dados com letras minéisculas, deve se usar assim sempre, o mesmo com letras maiisculas. Faremos um formulério simples com cédigo hibrido e separada, apenas para ver como é 0 processo. 15 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) Exemplot ~ CODIGO SEPARADO: CODIGO HTML: Digitar no Notepad ++ € salar na wwnw/exemplos/separado com © nome form_calcula.html sexemplo Form-Separadoc/title></nead> <body> <center> <form action=form_calcula.php’ methor Valor 1 <input type='text’ name='txt_v1'><br> Valor 2 <input type="text’ name="trt_v2'><br> <input typesubmit| name=ybtn_calc!value~'Galeularb<br> <center> <body> </ntmi> 08S: Perceba que o form action ¢ © mesmo nome do nosso cédigo 2 seguit, ou seja, form_calcula.php e ¢ isto que far o PHP conseguir “conversar” com 0 HTML quando o cédigo & separado, Pode ser usado qualquer nome, desde que se respeitem as regras (minisculo, sem ‘espacos, ete) e que seja 0 mesmo dado ao PHP e colocado no action do HTML. CODIGO PHP: Digitar no Notepad ++ e salvar na wrww/exemplos/separado com 0 nome form_calcula.php CUIDADO! 0 comando $_POST obrigatoriamente deve ser escrito em maldsculo, pois sé funciona desta maneira. LEMBRE-SE que se no lugar de method~"POST’ no HTML estiver method=‘GET’, no PHP este ‘comando sera $_GET. Nao da para declarar um método POST no HTML € receber com GET no PHP e vice versa. Cometer este erro fara cam que o PHP no consiga receber os dados e as variaveis ficaro varias. <?php svi =$_POSTI'txt_v1'|; //OGANDO A CAIKA txt_vi NA VARIAVEL $v $u$ |_POSTI'txt_v2"l; //JOGANDO A CAIXA txt_v2 NA VARIAVEL $v2 Stotal=Sv1+5v2; //CALCULANDO A SOMA ‘echo "A soma dos dois valores é:$total"; //MOSTRANDO O RESULTADO: b 16 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) Exemplo2 ~ CODIGO HIBRIDO: Digitar no Notepad ++ e salvar na www/exemplos/hibrido como nome form_caleula.php -ehtmy <chead><ttle>Exemplo Form-Hibridos/itlem</head> <body> centers <form action="form_caleula.php! method=/post’> //ACTION £ © NOME DO ARQUIVO PHP Valor 2 <input type~'text namewDxt_vt'><be> Valor 2 <input type="text name=xt_y2'><be> <input type='submit’ name="btn_cale’valuae'caleular’>¢be> <tehp J Svi=$_Post'xt v1); Sv2=$_POST!'txt_¥2' Stotal=$v1+$v2; ‘echo "A soma das dois valores Stata; sfeenter> </body> -yhieni> ‘085: Perceba que mesmo sendo um cédigo hibrido o form action é obrigatorlamente usado e que é 0 mesmo nome do nosso arquivo, ou seja, form _caleula.php (estamos ligando 0 arquivo a ele mesmo) e & isto que faz 0 PHP conseguir “conversar" com o HTML aaui também. Pode ser usado qualquer nome, desde que se resneitem a regras (mindsculo, sem espacos, etc) e que seja 0 mesmo dado a0 PHP e colocado no action do HTML. ATIVIDADES (FORMULARIOS COM PHP): 4. Criar um formulatio para receber 0 nome do funciondrio, 0 valor do salario hora © a quantidade de horas trabathadas. © PHP deverd calcular 0 salirio bruto, 0 INSS (12%) € © salétio liquido. Todas as informagies deverdo ser impressas. 2. Criar um formulario para receber o nome do pagador, o valor da parcela, data de vencimento dias em atraso, O PHP deverd calcular juros por dia (sendo 13% do valor) ¢ 0 total a pagar. Todas as informagies deverdo ser impressas. 0BS.: Fazer para ambos duas versbes, uma com cbdigo hibrido e uma com codigo separado. Para calcular os percentuais no use 11% e 13% na operaco e sim 0.11 € 0.13. v7 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) ESTRUTURAS DE CONTROLE (DECISAO E LAGOS DE REPETICAO) IF E ELSE Um fator de extrema importéncia em qualquer linguagem de programacdo é a capacidade de tornar nosso cédigo capaz de tomar decisGes baseando-se no que é falso e verdadeiro (ldgica booleana). Em PHP, usamos if e else pare tal aco, em conjunto com operadores ldgicos para que possamos fazer comparacées. IF If verifica se uma comperagao ou sentenca é verdadeira, se for, ele executaré a préxima linha ‘ou o proximo bloco de dados dentro de chaves ({}). Para tal comparacdo, usamos os operadores ldgicos: Maior ou igual Menor ou igual Igual Diferente ELSE tise apenas serd executado caso a comparago ou sentenga do if for falso. Portanto, else sé existe se existir um i primeiro. Else no € uma cléusula obrigatéria, portanto, pode existir if sem ter necessariamente um else, Abaixo esté um exemplo simples de como usar ife else: <opnp /* cOD1GO QUE VERIFICA se UM NOwERO & PAR OU {MPAR */ ye * SE 0 RESTO DA DIVISAO DE UM NUMERO POR 2 FOR 0, % ENTKO, QUER DIZER QUE ESTE NUMERO £ PAR. 18 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) ay /* CBSO CONTRARIO */ > WHILE, DO WHILE E FOR While, Do While @ For $80 comandos que servem para manter uma porcdo do cédigo ‘executando repetidamente. Também conhecidos como estruturas de repeticgo, iteragdes ou loops, esses comandos mantém a execucdo até que seu argumento seja falso. WHILE Aeestrutura principal de while é: while (comparago) { cédigo que seré executado ). Ou seja, a comparacéo é verificada, caso ela seje verdadeira, entdo, o cédigo é executado. No exemplo abeixo, faremos um cédigo para conter de 1. 10. <?phg > Isso ird resultar em: 12345678910 DO WHILE Do while funciona da mesma forma que while, mas ambos tém uma pequens diferenga. Como foi visto, 0 comando white verifica a varidvel primeiro, mas do while faz 0 contrério, ele executa 0 cédigo primeiro s6 depois verifica @ variével, se ela for verdadeira, entéo ele ‘executa 0 cédigo novamente. Aestrutura principal de do while €: do { cédigo que seré executado } while (comparaco);, 19 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) Ento, se fossemos reescrever 0 cédigo acima usando do while ficaria: <?php > Precaugdes: Como podemos observar tanto while quanto do while fazem com que 0 cédigo fique repetindo 0 mesmo trecho, portanto, temos que nos assegurar que a comparacéo ou varidvel que esta em while de alguma forma se torne falsa. Isso porque se @ variével for sempre verdadeira, @ execuo nunca iré terminar, ocorrendo 0 que chamamos de looping infinito. Felizmente, hd parémetros na configuracéo do PHP que limitam o tempo de execucdo do cédigo que, por padro, s80 30 segundos, FOR Aeestrutura for também cria iteragGes (repeti¢des) e term o mesmo problema do while, mas diminui o risco de looping infinito porque for controla tods a variavel, desde seu valor ini ‘até seu valor final. A estruthra principal de for é: for (valor inicial; comparacéa; modificagéc do,valor] {/eddigo que seré executado } Ou seja, diferentemente de while @ do vinile que tinhamos que declarar a veridvel ja contendo um valor (Snr = 1:) € dentro do bloco de execucéo incrementer esta variével (Snr+t:), 0 for 8 faz tudo isso para nés. <?php > BREAK E CONTINUE Break e continue s80 utilizados para controlar estruturas como while, do while, for e switch. A funcéo de breek € forcer a saide de uma estrutura. Por exemplo, se tivermos uma estrutura de repeticgo for que vai até um determinado nimero, mas que deve parar antes, caso alguma condicdo seja satisfeita, neste caso usamos o break. Veja 0 exemplo: 20 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) <7php 0) //SE T FOR DIVISiVEL POR 10 J/S8IB DO L00P > Resultado: 2468 10 © cédigo acima mostra exatamente a funcionalidade do comando break. Nés definimos a estrutura for para que mostrasse os niimeros pares de 2 @ 100, mas apenas serdo apresentados 05,pares de 0 @ 10. Isso écontede porque hé uma.condicéa dentro da estruture que diz que se 2 veridvel /for divisivel por 10, ento, execute o comando bres. No momento que break é executado, ndo estamos mais dentro do loop. © comando continue funciona de forma parecida com 0 comando break, mas ao invés de sair completamente da estrutura, ele apenas ignora o resto do cédigo. Vejamos: <7php 2) //Sk I FOR PAR (DIVISIVEL POR 2) continues //TGNORA 0 RESTO DO FOR E VAT PARA © PROXIMO NUMERO > O que resulta em: 13579 Ou seja, toda vez que i for divisivel por 2, entdo, ignorar o resto do cédigo (echo (si como se jé tivesse chegado na chave final do for. ‘SWITCH, CASE E DEFAULT Em PHP, existe um comando que permite utilizer varias opgdes definidas agrupadas em uma nica estrutura. Estamos falando de swatch. ‘Suitch trabalha usando casos (case) que so valores definidos. Aeestrutura do switch é: switeh (variavel) {ease valor: codigo a ser executado } an Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) O importante é entender que o switch executa tudo @ partir do ponto do case encontrado, isso quer dizer que, se possuirmos um switch com 5 cases @ 0 segundo case for ativado, entéo, serd executado 0 case 2 € também os cases 3, 4 € 5, Para evitar que isso aconteca, podemos simplesmente parar a execuc3o do switch usando 0 comando break. ‘Switch nos poupa o trabalho de criar varias estruturas if-else aninhadas se elas forem apenas para verificar um dado especifico. Por exemplo, se quizéssemos que o usuario digitasse um nimero entre 0 a 4 apenas para executar um trecho de cédigo. <7php //cOD1G0 SE VARL FOR 4 > Com switch seria assim: <7php //COD160 SE VARL FOR 1 2 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) {D160 SE VARI FOR 2 > © caso default serve para executer um trecho do cédigo que no tenha seu valor definido em case. Usando 0 exemplo acima, o switch possui 5 cases que vo de 0 a 4, o que aconteceria se a varidvel vard valesse 10? Esta é a finalidade do default, ele iré peger qualquer caso que néo esteja definido, <?php 23 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) //COD1GO SE VARI FOR 4 //C6D1GO SE VARI NAO FOR NENHUM DOS CASOS ANTERTORES > Abaixo esté um exemplo de como podemos usar switch, case € dafault de forma simples. <?php > No exemplo acima, hé um switch que iré procurar pelo valor da veridvel letra. Como podemos ver, letra vale A. Como PHP é uma linguagem que chamamos de case sensitive (diferencia maitisculas de mintsculas) usamos a fungo strtoupper() para converter qualquer caracter em maiisculo, Switch ird encontrar logo no primeiro caso o valor Ae comecaré a executar dessa linha em diante, pois ndo hé nenhum comando que pare a execuco, ou seja, o switch iré executar até o case U onde mostraré uma mensagem -> Esta letra é uma vogal. Mas nao seré executado default porque hé um comando breek antes dele que impediré sua execucdo, No entanto, se modificéssemos 0 velor de /etra para qualquer caracter diferente de A, E,|, O€ U, apenas default seria executado. Fonte: http://www. tiexpert.net/programacao/web/php/index.php 24 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) TRATAMENTO DE FORMULARIOS 1. CODIGO HiBRIDO - NAO EXECUTAR 0 PHP SEM CLIQUE NO BOTAO Quando trabalhamos com cédigo hibrido e no cédigo PHP hd instrugées para impressio de mensagens ou calculos estes poderdo ser mostrados logo que a pagina ¢ aberta. Como vimos no Exemplo 2 anterior, é impressa na tela “A soma dos dois valores é: 0”. Isto porque a pagina foi carregada com campos vazios, portanto a soma de campos vazios & 0. Mas podemos impedir 0 PHP de jé iniciar 2 impressdo de mensagens ou resultados quando os campos estiverem vazios e $6 mostré-los quando preenchermos os campos, Para tanto, basta fazer algumas alteragBes no cédigo, como mastrado a seguir no nosso arquivo form_calcula.php: <itmi> cheb étites ekernpld Forme ttbridoeytitleS<ftiead> <body> <center> <form action="form_calcula.php’ metho Valor 1 <input typ: Valor 2 <input typ <input typ <?php uit’ name="btn_cale" value="Caleular'><br> POST Dt_V1']; POST 'txt_v2' $BTN=$_POST['btn_cale'}; //JOGANDO 0 BOTAO NA VARIAVEL $BTN (ESTE E 0 SEGREDO) te (SBTNIE" //SE SBTN E DIFERENTE DE VAZIO (SE FOI CLICADO) StotalaSvisgv2; //SOMAR echo "A soma dos dois valores é:Stotal"; // MOSTRAR //FECHA A CHAVE ABERTA NO IF > </center> </body> </ntmi> 25 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) OBS: Perceba que os comentérios (com //) sio usados apenas entre <?php € ?>. 2. VERIFICAR SE HA CAMPOS VAZIOS Podemos fazer com que © PHP verifique se todos os campos foram preenchidos. Esta ago Pode poupar trabalho posteriormente, quando ao trabalharmos com banco de dados quisermos ‘exigir que todos os campos sejam preenchidos pelo visitante do site, Este tratamento serve tanto para codigo hibrido quanto para codigo separadb. Faremos agora outras alteragdes no cédigo, como mostrado a seguir no nosso arquivo form_caleula.php: <htmi> <chead>etitle>Exemplo Form-Hibrido
2br>, ATENGAO! Pode acontecer de parecer estar tudo certo € 0 PHP se comporta como se algum campo esstivesse vazio, mesmo com as caixas preenchidas. Verifique com cuidado as varidveis (mintisculo ‘ou maidsculo) em todo 0 codigo, pois padem estar diferentes e deixe-as iguais ou se voce se esqueceu de usar == na expresso, 3. FORMATAR VALORES EM ESTILO MOEDA (R$) Podemos usar o number format para que o PHP imprima valores monatsrios js formatados, seguindo o esquema a seguir: 26 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) ‘number_format(Svariavel_com_numero, int casa decimais, separador decimal , separador de milhares); Exemplo: Alteraremas ento 0 cédigo do nosso arquivo form_calcula.php aplicando o estilo de moeda em nosso formato nos resultados apresentados: shtril> Exemplo'Form-Hibridox/title></nead> <body><center> <form action="form_calcula.php" metho Valor 1 <input type=‘text’ name='txt_v1'><br> Valor 2 <?php ‘$v2=$_POSTI'txt_v2']; $B1N=$_POST[btn calc]; If (SBTN! > </eenter> </body> 7 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) 4, CAIKAS DE MENSAGENS COM JAVASCRIPT Para criar caixas de mensagens, utilizaremos um comando JavaScript dentro do PHP. Este comando pode ser utilizado mensagem inicial, como uma saudacdo, para emitir alertas 0s usudrios do site ou em um tratamento de erro, substituindo o echo. Veja 0 exemplo: <?php //USAR ECHO, POIS O PHP TAMBEM NAO CONHECE JAVASCRIPT (NAO FECHAR ASPAS AINDA!) echo" <script languagesjavascript> alert('ISTO E UMA CAIXA DE MENSAGEMI! GOSTOU??)); </script> "; //AQUI FECHAMOS AS ASPAS DO ECHO Com este tratamento, nosso form_caleula.php ficaria assim: <htmi> <head>title>Exemplo Form-Hibrido

valor 2
alert{'CALCULO EFETUADO!""; "; echo "A soma dos dois valores é: RS".number_format(Stotal, 2, ) ,
28 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) 5. VAUIDAR E-MAIL Para verificarmos se certo dado é um e-mail ou no é comum utilizarmos expresses regulares e funcdes como preg_match(), Neste tutorial de hoje iremos aprender uma funcéo nativa do php pare validar e-mail sem sacrificio. Avvantagem de utilizar essa solucdo é que seu script fica bem menor e, principalmente, no fica confuso, com expresses regulares que muitas vezes no ‘entendemos, Como 0 php tem uma funcdo para validacio de e-mail, vamos utilizé-la, A validago de e-mail com expresso regular ficaria parecida com esta IMPORTANTE! Esta funco sé funciona com php 5 ou superior Dica tirada de: http://www. comocriarsites.com. br/Como-validar-e-mail-com-php-sem-usar-expressao- regular_b_16.html 29 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) Agora aproveitamos esta dica e utilizamos para tratar um formulitio, como no exemplo a seguir: him stitleValida e-mail facitehtitle>
alida_mail_facil. phy Email:
ATIVIDADES (TRATAMENTO DE FORMULARIOS): Refaca os dois exercicios anteriores (com cédigo hibrido e separado) e aplique todos os, tratamentos de erros necessarios. 30 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) FORMULARIO COM O NVU O NVU é um programa gratuito, para criaglo e edico de sites em modo visual @ HTML, Trata-se de um programa t8o completo quando se trata de desenvolvimento de sites que ele chega a ser compardvel até mesmo com o FrontPage da Microsoft ou o Adobe Dreamweaver, que so programas pagos. Assim como qualquer outro programa deste tipo ele permite inserir e editar textos, inserir imagens, links, formularios, tabeles e células. ATENCAO! © NVU néo foi desenvolvido para trabalhar com linguagens dinamicas como o PHP e ASP. Sempre que tentar abrir um arquivo deste tipo ele ofereceré @ opso de abrir o arquivo com outro programa. Utilizaremos © NVU apenas para criar o visual dos formulérios hibridos ou separados € para a programacdo em PHP continuaremos usando o Notepad++. ‘Como exemplo, farémos um formulério que montaré © nome de'casado da noiva de ‘acordo com os dados e escolhas fornecidos. Observe a figura a seguir: Dados do noivo: Sobrenome: Nome: Dados da noiva: Sobrenome: Nome: | N3o excluir 0 sobrenome da noiva Deseja utilizar 0 sobrenome do pretendente? sim © N3o ‘Exbirnome de cased Comegaremos abrindo o NVU. 31 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) A jenela NVU Tips (dices NVU) pode ser fechada, Caso vocé no deseje que ela se abra sempre que iniciar ‘ONVU, desmarque a opcao Show tips at startut. Se quiser modificar as cores padrao para o fundo da pagina ou para o texto clique em Format, Page Colors and Background: Feat Tale Tee Hee Clique na op¢éo Use custom colors e selecione as cores desejades. res ert Se quiser uma imagem no fundo (Ndo recomendamos), na opacdo Background Image, clique em Choose file € escolha sua imagem. ‘Ao concluir estes ajustes, clique em OK. Assim como no cédigo-escrito,'a,primeira coisa-fazer éideclareryum formulério & passénlos parémetros Method e Action. Clique no.botSa Forme escalha.e oped Define Form... = + » Digite um nome para o Se formulério (Opcional).. f Fomrel } ‘ | romunees © Action URL é sempre ‘onome do PHP. Escolha 0 método (Neste exemplo 0 POST) Um espago pontihado indica o formulério criado. 1 ATENGAO! Tudo 0 que fizer parte do formulério deverd estar dentro deste espaco pontilhado. Se vocé fizer as cainas de texto, botdes e outros objetos fora deste espaco 0 PHP no funcionard. 32 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) Apenas por uma questo de estética criaremos primeiro uma tabela, para organizer melhor os objetos de nosso formulério. © formulério que montaremos tem 7 linhas e 2 colunas. Clique no botdo Table a ] Podemos dimensionar a tabela como fazemos no Word, da Microsoft. Se quisermos digitar a quantidade de linhas colunas € ainda modificarmos a borda da tabela, clicamos em Precisely [cs fs Digitamos 2 quantidade de linhas (Rows) © colunas (Columns). Deixaremos @ borda (Border) com 0, pois queremos a tabela “invisivel”. Em, Width definimos o tamanho que 4 ‘tabela ocupard ng'telay Pixels € tamanho ixo e 96 of window é tamanho baseado na resoligdo do monitor. Clicando em OK, veremos nossa tabela na tela do NVU. Como nossa tabela tem borda 0, somente veremos @ tabela no NVU. A pagina néo mostraré @ tabela quando estivermos navegando. 33 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) Abaixo do NVU temos 4 guias: * Normal: A tela de trabalho do NVU. Aqui vemos tudo 0 que esté sendo feito, inclusive tabelas invisiveis (com borda 0). + HTML Tags: Mostra caixas com os comandos HTML de cada objeto * Source: Mostra o cédigo HTML que é gerado. * Preview: Para ver como ficaria a pagina pronta. Clique em Preview e veja que a tabela ndo aparece. Como comentado antes, a tabela esté ai apenas para organizar os objetos do formulério. Clique em Normal para continuat Parajcentralizar a tabelay clique dentro dela (em qualquer parte) e observe que na pafte de baixo do NVU, aparecem 05 comando.
stable>. Clique em eno botéo centralizer. Agora mesclaremos a primeira linha da tabela. Clique dentro da primeira célula e arraste para a segunda. Ambas ficerdo com um contorno azul. Depois iremos no menu Table, Join Selected Cells. Repetiremos isto nas duas ltimas linhas da tabela. Table Tools Help 4d 1 , | 9) ethene! heeled! > cin = cc it — a Create Table from Selection l b Ld i Table or Cell Background Color. | Table Properties. coe ed ATENCAO! Para ajuster 2 largura das colunas da tabela vocé deve utilizar a régua que fice na parte superior da tela do NVU. Q— =f) a Na primeira linha colocaremos uma imagem. Clique no boto Centralizar e depois em Image e em Choose file 34 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) . 2 jy Cee omen) Ht ree Ele —— Ga Gel Basta procurer e selecionar a imagem (aif, jpg ou png) e clicar no boto OK. Vale lembrar que 2s imagens usadas aqui tém que estar gravadas no computador e na mesma pasta do projeto. Alternative text é usado pare caso sua imagem nao consiga ser carregada, (Colecaremos ume imagem-naesquerde,"um titulo evuma imagem a direits dotitule, ficando assim.e coloceremos os textos para sabermos que campos sero preenchidos: E finalmente criaremos os campos e botdes de nosso formulério, comesando pela ccaixe de texto que receberd o Sobrenome do Noivo. Posicione o cursor nesta coluna, depois do texto ¢ clique no boto Form, op¢o Form Field: jo4% ‘Temos aqui todos os objetos que compe um formulirio: Text: Caixas de texto comuns Password: Para senhas ‘Check Box: Caixa de escolha (varias escolhas) Radio Button: Botes “bolinha” para uma escolha ‘Submit Button: Bota que ativa ‘oPHP Reset Button: Boto que limpa ‘05 campos File: Botéo para anexar arquivos Hidden: Comandos ocultos Image: Imagens tipo bot io Button: Outro tipo de botiio 35 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) Come queremos que o ususrio digite@ informagéo, precisemos de uma Text: Em Field Name daremos 0 nome de nossa caixa de texto, que serd txt_snoivo (sobrenome do noivo). © bot More Properties abre opcdes avancadas pera a ceixa de texto e es mais usadas séo: © Filed si texto © Maximum Length: Quantos caracteres 2 caixe aceite : Tamanho do desenho da caixa de Poderos ter, por exemplo, uma caixa para CEP de tamanho 10, mas que aceite no méximo 9 caracteres, Crisremos ainda txtnnoivo (nome do noive), txt_snoiva (sobrenome da noiva) e txt_nnoiva (sobrenome da noiva). Nosso form jtera todos! os campos ‘paral digitzgo, faltando apenas os checkbox & radio.buttoné paras demais opcées: Posicionaremos o cursor na linha 6, antes da op¢o “Nao excluir o sobrenome da noiva” ¢ adicionaremos um novo Form Field, escolhendo agora a opc&o Check Box 36 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) ‘A Check Box se chamaré chk e servird para que @ pessoa escolha entre manter ou nao 0 sobrenome de solteiro da noiva, Se ativado, n8o excluiré 0 sobrenome, juntando com 0 sobrenome do noivo dependendo da opcdo abaixo. Se desativado, 0 sobrenome de solteiro seré excluido automaticamente e 0 do noivo poderd se o tinico sobrenome da noiva, Na ultima linhe, apés @ pergunta “Deseja utilizar 0 sobrenome do pretendente?” ‘adicionaremos um Radio Button em Form Field, escolhendo agora a op¢o Radio Button: Coloque em Group Name o nome opt e em Field Value o valor sim Clique em OK, mas cuidado! Sé apareceré o radio, ou seja, a bolinha. Vocé deve ainda escrever na frente do aa botio 0 texto que o usuario usard como base para a — ‘escolha, no caso 2 palavra Sim. Se isso no for feito, 0 usuario nfo saberd o que est x Genes] | _escolhendo. Coloque outro Radio Button) agora para o No: |FamfaPopete al] Coloque em Group Name o nome opt e em Field Value Fide ‘© valor néo (sem acento) ie Clique em OK, mas cuidado! $6 apareceré 0 radio, ou Group Name [opt seja, a bolinha. Vocé deve ainda escrever na frente do Feidvove nue botdo 0 texto que o usuério usaré como base para 2 ial Sees ‘escolha, no caso a palavra Nao. 7 Move Brperes Famita] | Se isso nao for feito, o usuério no saberé o que esté escolhendo. ATENCAO! Perceba que seja @ op¢So € Sim ou N3o seu Group Name sera 0 mesmo! Como fazem parte uma opeo de escolha para um tinico assunto, devem ter 0 mesmo nome, para garantir que a pessoa escolha Sim ou _NAo. Caso este cuidado no seja tomado, vocé permitiré que o usuario escolha Sim ¢ No na mesma opc#o, Estela a vontade para testar este erro se quiser. 37 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) Absixo coloceremos 0 botdo que se encarregaré de ativar 0 PHP quando for clicado, enviando as informagées seguindo os critérios de escolha de método. Clique novemente no botdo Form e em Form Field, escolhendo agora a op¢o Submit Button: Cuidado para no confundir Submit Button com Button {ultima opc80), pois so abjetos diferentes. Preencha Field Name com botao ¢ Field Value com Exibir nome de casada Clique em OK e vejao resultado gQrrainn cor ot EL Nto exci 0 gtrename dob | i Das ocexone dopcendia? © Sin ON | t ° (essere ceeane] | Finalmente nosso formulério est pronto e é chegada a hora da gravacio, Clique em File, opgo Save: Surgird uma Janela pedindo o Page Title (Titulo da Pagina). Este no 6 0 nome da pagina e ssim 0 que aparecer na Barra de Titulo do navegador e na Barra de Tarefas de Windows, Dever attetrte caret cae “This identities the pagein the window tle and bookmans Formuliio matimeonal- Gerad de nome oc] (Eeanca} 38 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) Clique em OK para confirmar o titulo e ir para a tela de gravacdo. Nosso trabalho com o NVU. termina aqui, CUIDADO! 0 nome do arquivo depende de que tipo de cédigo voce esté fazendo, Se for um cédigo. hibrido tem que ser o mesmo nome colacado em Action quando criamos o formulirio, Se for cédigo separado fica a seu critério, desde que respeitando as regras de nome. No nosso caso, ser um codigo hibrido, portanto noives.php. Abriremos o cédigo do formulério gerado, clicando no simbolo do wamp, opgio www directory. Procure a pasta do projeto atual e clique com o botfo direito do mouse, escolhendo a opcdo Edit with Notepad++, Adicionaremos 0 cédigo PHP no final do cédigo gerado: Formulério Matrimonial
Dados do noive ‘Sobrenome:

Dados da noiva:

Sobrenome: 39 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) ext! name Nome:

sheckbox' value=s name='chk'> No excluir o sobrenome da noiva enenstes HI Useces: sah # Vingaspen -lierasege & omuguds -eramian potugiess Vio Seni $0 4teaeeraanpt 1 Vendio to Pte 10 fees TOPS € serio: ongnat - » Tuam ke Ta © Wy Vocurenacee de pacitsacran Wi nowstomeaarin 1 9g once do pretasacran > fetengeLoattsuberser sl Ponsa: @ FF Congres sora tsar: B SexogoFryies D Hecareser panes 8 regs © wencede Uecos B Fontes D newts: Para conhecer 0 PHP MyAdmin vamos criar um banco de dados que serd utilizado posteriormente em conjunto com um fotmulsrio de cedastr. Vanios criat uin Banco dé“dados chathado Jbd_cadastro “basta digitar of nome ‘no local indicado e clicar no botao Criar. Se tudo correr bem, teremos uma mensagem de confitmags0. D Serco de Dacor te eens i erate, be psec) erga 80. Nesturatdntserconbads S28 OHO cence eltaner ce aaa “alco rememosre Renee ee ame case tere Phare aavos Podemos reparar que agora, no canto esquerdo da tela ha na lista de escolha @ que nosso Banco de Dados criado consta nesta lista e ao lado um numero 0 entre parénteses. Significa que ‘como no temos ainda nenhuma tabela é mostrada bd_cadastro(0), ou seja, entre parénteses fica 0 nimero de tabelas que nosso banco possui Temos ainda no meio da pagina um espaco (consulta SQL] que mostra qual é o comando SQL para se criar um banco de dados (au seja, PHPMyAdmin também ¢ otimo para aprender comandos SQL) e abaixo deste espaco, hé um local para a criago de nossas tabelas, onde Nom ‘o nome da 43 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) nossa tabela e Niimero de arquivos: é quantos campos nossa tabela tera (temos aqui uma tradugo mal feita. Griaremos uma tabela chamada to_dados para cadastrar codigo, nome, nascimento, sexo, estado_civil, telefone e email, ou seja, 7 arquivos (campos). Basicamente preencheremos nome dos campos, tipos de dados, tamanho dos campos, definiremos a cchave primaria e faremos com que a numeracio seja automatica para o cédigo, Nome; Tipo ¢ Tamanho so as trés primeinas-colunas a preencher Mudarermos 2 opcio Extra do ‘campo cadigo pafa Auto_increment.¢ a proxima opgia ja ¢ 2 chave primésta. Tay tasscuo 0) [setters i i I i f Certo) at ain eee} enna Scoala aims Soe) rt means eee) enna srt ett i FRGREREE saeuemeg = Novamente podemos reparar 0 cédigo SQL, abaixo a estrutura da tabela € no canto esquerdo agora vemos bd_cadstro(1) que indica que temos uma tabela, mostrada logo abaixo (tb_dados). Caso a tabela estivesse com dados cadastrados, poderiamos vé-los clicando no nome da tabela. Nosso banco de dados esta criado e pronto para ser usado pelo PHP. 4a Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) PHP INTERAGINDO COM 0 SGDB MYSQL. Nesta seco serdo apresentadas as principals fungSes, ou rotinas, PHP utilizadas para interagir com 0 SGDB MySQL. COMO PHP INTERAGE COM 0 SGDB MYSQL PHP fornece uma série de funcionalidades para a interagéo com 0 SGDB MySQL A seqiiéncia logica dessa interago pode ser descrita pelos seguintes passos: ‘*Primeiro passo: estabelecer uma conexo com 0 SGDB MySQL. ‘¢ Segundo passo: selecionar o banco de dados utilizado. *Terceiro passo: executar @ SOL desejada * Quarto passo: fechar a conexio. COMO ABRIR UMA CONEXAO Uma forma de se eftabelecer a conexio cond SGDB MySQL é utllizando 2 fungdo rmysql_pconnectt). Esta funco abre uma conexo persistente com 0 SGDB. Ela retorna um link (uma ligagdo) caso a conexio tenha sido estabelecida ou retorna false caso a conexio ndo péde ser estabelecida. Existem varias assinaturas para esta funcio, no entanto uma bem comum é aquela ‘onde sio passados 0 host, o usudrio ¢ o password. A assinatura descrita segue abaixo: $conexao = mysql_pconect(‘host’, ‘usuario’, ‘senha’) Onde $conexao ¢ 2 variavel que contera o link caso a conexdo tenha sido estabelecida, host é © local onde 0 SGBD esta instalado e provendo o servigo. Usuario e senha so, respectivamente, 0 Usuario e sua senha no SGDB, COMO SELECIONAR O BANCO DE DADOS Uma vez criado o link com 0 SGDB deve-se indicar qual 0 banco de dados que sera trabalhado, Para tal faz-se uso da funco mysql_select_db(). Ela retorna true ou false dependendo se ‘ela conseguiu ou ndo ativar 0 banco de dados indicado. Ume assinatura possivel € aquela onde so passados 0 banco eo link. A assinatura deserita segue abaixo: ‘Sconseguiu = mysql_select_db('nome_banco’, $conexao) COMO EXECUTAR UMA SQL Para executar uma SQL no SGDB MySQL utliz-se a fungi mysql_query). Esta fungao retorna um ResultSet contend os resultados da consulta caso 2 query seja um SELECT ou entio ela retomna true ou false se @ query for INSERT, DELETE ou UPDATE. Uma assinatura possivel é aquela ‘onde so passados a query eo link. A assinatura descrita segue a seguir 45 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) Sresultado = mysql_query($sql, Sconexao) ‘Onde $sql é uma variavel que contém uma string com a operagio desejada. COMO MANIPULAR O RESULTSET DA EXECUCAO ANTERIOR A fungo mysql_query() retorna, como mencionado, um ResultSet. Talvez uma das maneiras mais simples de se manipular esse ResultSet € transformando-o em uma matriz MxN onde M é 0 ‘numero de linhas contidas no resultado da consulta e N o ndmero de colunas contidas no resultado a consulta, Para obter tal resultado faremos uso da fun¢do mysql_fetch_row(). Esta funcdo retorna um array 1xN contendo os valores de urna tupla e posiciona o ponteiro do resultset na préxima tupla. 0 parametro dessa fungo é uma variavel contendo o resultSet. Segue abaixo um exemplo dessa transformago de um resultSet em uma mattiz: SresultSet = mysql_query("SELECT nome, rg FROM tabela_pessoa”, Sconexao) si=0} ‘while(Slinha = mysql_fetch_row(SresultSet)){ // para passar por tadas as linhas Sresultadotsl] = Slinha; Ses } Depois dessa execucio, a varidvel resultado ser uma matriz de Mx2, onde M é o ntimero de tuplas da tabela_pessoa. Cada posi¢do $1,$c corresponde a linha de indice SI {comecando de zero) ¢ & ccoluna de indice $c do resultSet (comegando de zero). Por exemplo, Sresultado[0l[0] conteré a string “Fulano da Silva” e Sresultadof0][1] a string “R01”. COMO FECHAR A CONEXAO Para fechar a conexio aberta no item 2.b é utilizada 2 func3o mysql_close(). Ela retorna true ‘ou false dependendo se ela conseguiu ou no fechar a conexio. Como parametro, geralmente & passado o link aberto quando fizemos a conexio. A sintaxe é a seguinte: ‘$Sconsegulu = mysql_close($conexao) MANIPULACAO DO BANCO DE DADOS Manipular (gravar, alterar, pesquisar, apagar) informagéies no nosso banco de dados utilizando PHP com comandos SQL é um proceso relativamente simples como veremos nesta parte de nossa apostila, 46 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) CADASTRO (GRAVAGAO) Criaremos um formulério com os mesmos campos criados em nosso banco de dacios (com excegio do cédigo, que € auto_increment). Para este trabalho, utilizaremos novamente 0 NVU criaremos 0 formulirio a seguir, chamado cadastro.php. _- FORMULARIO DE CADASTRO Nome Nascimento Sexo Masculino © Feminino Estado civil Telefone E-mail Confmar cadasio, Abriremos 0 cédigo gerado e faremos o cédigo PHP que receberd os dados e gravard no banco de dados. Acrescente no final do cédigoo script PHP abaixo: "; UJIISERGAQ NA TABELA COMANDD EM LINHA UNICA Sinsere = mysql_query("INSERT INTO ‘tb_dados{codigo.nome,nascimento,sexo,estado_civi,telefon nto','$sex0','Scvil'$fone','Semal’)"Jor die{mysql_error(); small] VALUES(",'Snome’,‘Snascime echo "
Cadastro efetuadol

"; ) else [ echo "
Errol Por favor, verifique se todos os campos foram preenchidos e tente novamentel
"; } » ‘se tudo correr bem, 20 abrirmos o PHP MYAdmin basta selecionar nosso banco de dados nossa tabela. Basta clicar no menu Visualizar, na parte superior da tela para ver os dados: \Visualizar 48 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) © Mosvenso egies U 011 sce Consute evo W210 seatrdes) consura Sak: Faces a tara [Flow ]f Pape BO) ]{Ciee oles PUP|LAnssirw] feanlewivarepis) at Pept regaled 0 ro mr0s0 hexanal = etepebrds cenecanes coos no clues eral 2X 4 Rete iI mescuIno Caseo GG oraeheRLocombr 1 _tuarcarteace iuesmevcertosos Commarcacos: 7X it LISTAR TODOS OS DADOS (CONSULTA GERAL) ‘Apenas para exercitar faremos um formulério que mostra todos os dados cadastrados no banco de dados e o chamaremos de listar.php:
LISTA DE REGISTROS"; Snome=$_POSTI'txtnome'}; $b POST‘); (/ICONECTAR $b = mysql_connect("localhost, "root Sdados = mysqj_select_db("bd_cadastro" Sab); JJUSTAR TODOS 05 REGISTROS ‘$sql = mysal_query("SELECT * FROM tb_dados"); ‘echo"
"; echo "
" ‘while(Slinha = mysql_fetch_array(Ssqi))t 49 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) $codigo=$linhal'codigo'l; $nome=Slinhal"nome"l; Snascimento=Slinhal"nascimento"]; Ssexo=$linhat "sexo"; Scivil-Slinhaf"estado_civil"}; $fone=linhaf"telefone"]; //MPRIME © VETOR echo "
"; echo ""; echo.""; echo “etd>SEXO: ESTADO CWVIL: Scvikete>"; echo ""; echo “"; echo "xtd>NOME: NASCIMENTO: "; echo "xtd>SEXO: "; echo "' echo "
Cadastrados:
CODIGO: Scodigos/td>
NOME: $nomes/td>
NASCIMENTO: Shascimentoctd>
TELEFONE: Sfonectd>
E- MAIL: "; } >
‘CONSULTA (BUSCA) Criaremos um formulirio para buscar registros em nosso banco de dados a partir de uma busca feita pelo usuario. Utilizaremos novamente o NVU e criaremas o formulirio a seguir, chamado consulta.php. Nome Fazera busca 50 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) «"; // USCA. NOME PESQUISADO NA TABELA QU INDICA 0 ERRO Sconsulta = die(mysql_error()); Jor WSql_query("SELECT * FROM th_dados WHERE nome ='$nome' /ISE ENCONTRAR, CRIA UM VETOR E CARREGA OS VALORES DOS CAMPOS DA TABELA While (Slinha-mysql_fetch_array(Sconsulta)}{ $codigo=$linhal codigo’; $nome=Stinhaf"nome"t; $nascimento-$iinhal"nascimento"] ‘$sexo=Slinhi Scivil=Siinhaf"estado_civl"}, Sfone=Slinha["telefone" Semail=Slinhaf"email” St Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) ‘{fwapRime 0 VETOR echo “etd bgcolor=#66cccc>CODIGO:
Scodigos/td>
Snomes/td>
Snascimentostd>
Ssexostd>
ESTADO CIVIL: Sciviletd>' echo "TELEFONE: Sfonectd>
E-MAIL: semalletd>"; } } else ( echo "
Erro! Por favor, verifique se o campo nome foi preenchido e tente novamentel
EXCLUSAO DE REGISTRO"; echo"stable _bortier=t apagedo
"; bgcolor=#66cccc>ste>Nome a ser 10>
Cadastrados:
"; bgcolor-#DBDBDB>"; ‘echo "DADOS CADASTRADOS:
"; wihile(Slinha = mysql_fetch_array(Ssqi)}t $codigo=$linhal'codigo'l; Snome=$linha["nome"|; Snascimente: inha|"nascimento"}; Ssexo=$linhal"sexo"]; Scivil=Slinhaf"estado_civil"}; Sfone=Slinhal"telefone"); Semail=Slinhaf"email” //MPRIME © VETOR echo “etd —‘bgcolor=Resccee>CODIGOsctd _ bgcolor=#66ccce> Scodigos/tdb>"; 53 Pha vow profralph.com.br~ APLICATIVOS PARA INTERNET (Al) echo "NOME: Snome"; echo " NASCIMENTO: Snascimentoctd>"; echo "ctd>SEXO: Ssexoetd>"; echo "£STADO CIVIL Sciilcte>"; echo "TELEFONE:ctd> Sfonesta>"; echo "£- MAIL: Semailctd>sti>"; JIAPAGAR 0 NOME ESCOLHIDO Ssql_= mysql_query ("DELETE FROM tb dados WHERE nome ='Snomedigitado"Jor die(mysql_error()); ‘echo""; JIATUAUZAR A TELA echo" cbr>
SORTEAR INFORMAGOES DO BANCO DE DADOS Por uma necessidade qualquer podemos fazer com que 0 PHP sorteie aleatoriamente do banco de dados informagBes para serem mostradas. Esta técnica é muito utilizada em sites em que 0 banner fica mundo sempre que o site € atualizado ou um link é clicado. \Vamos criar um script chamado sorteia.phy 54 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) SORTEIO DE REGISTROS Clique pare sores © cédigo sera:

SORTEIO DE REGISTROS

Cadastrados:"; echo "
"; if(sbtl=")¢ //MOSTRAREMOS 2 REGISTROS SORTEADOS, MAS PARA MOSTRAR MAIS, BASTA ALTERAR O NUMERO DE UMIT S$sql= mysql_query("SELECT * FROM tb_dados ORDER BY rand() LIMIT 2"); while( Stina = mysql_fetch_array(Ssql)t $codigo=$linhal'codigo'l; $nome=Slinhal"nome"l; Snascimento=Slinhal"nascimento"l; Ssexo=Slinhal"sexo"l; 55 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) sci linhaf estado civil; Sfone=Slinhal"telefone"; //NiPRIME 0 VETOR echo "std bgcolor-H66cccc>CODIGO:td bgcolor=HSbccec> Scodigo"; acho “NOME: «/td>snomec/td> acho “cté>NASCIMENTO: etd>Snascimentocté> acho “SExO: " acho “ESTADO CIVILie/tdbetd> Sciletederr> echo "ctd>TELEFONE:ctd> Sfonectd> echo "E-MAIL: Semail Testando o cédigo, percebe-se que ao clicar no boto serso sorteados e exibidos dois registros. Agora que terminamas todas as operaces com Banco de Dados, pademos criar uma pagina ‘chamada Index. html com link para todas as demais e brincar com todas as paginas. LOGIN COM SESSAO Quando queremos impedir 0 acesso de pessoas indesejadas a determinadas paginas de nosso site podemos utilizar 0 recurso de login por autenticac4o de usuario, ou seja, exigir um cadastro e autorizar 0 acesso a pessoas cadastradas por meio de senha 'Um login simples pode ser feito com simples comandos, mas pode ser burlado através da barra de enderecos do navegador, mas trabalhando com sessbes, este problema ¢ resolvido, Primeiro criaremos uma pasta em c:\wamp\www com 0 nome login_sessao e comegaremos ‘com uma pagina chamad: uutentica.php' para 0 acesso: idex.html com form ac 56 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) Apelido: Senha: Logat Ainda nao € cadastrado? Clique Aqui Esta pagina estard através do link Clique Aqui ligada a outra pagina chamada cadastro.html com form action="caduser. php’ _— GADASTRO DE USUARIOS Nome Apelido E-mail Senha Confirmar senha Confirmar cadastro ‘Agora criaremos os scripts PHP responsaveis por toda a operagéo. Usaremos uma forma diferente de trabalhar. Vamos criar um script responsdvel por cada operaco, sendo um para conextio [gorin.php Lsadolpara)Conedtat cdm 0 Baricd de Gados), dm para Cadastrar (Eaduser.php), urn para efétuar-o login (autenticarphp], um para efefuar‘o logoff (sair-php) , nossa pagina restrita (result.php) © um para verificar se a pessoa realmente logou e autorizar o acesso a nossa pagina restrita (verifica.php) comecaremos com a conexio. ‘CONEXAO: Abra o Notepad++, digite o cédigo a seguir e salve como conn. php: alert‘Cadastro Salvo 6 s6 fazer o login! ch2>As senhas digitadas nas caixas de texto nilo sto iguais! Volte ¢ tente novamente!’; } > 58 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) AUTENTICAGAO: ‘Abra o Notepads, digit 0 cécigo a seguir e salve como autentica.php: Senha e/ou usudrio errado! ‘) or die Srow= mysql_num_rows($sql); if (Srow==0}{ echo ""; //OU Header{"Locati Jelsel Sid-mysql_result($sq, 0, "id_usuario"); Snome=mysal_result(Ssal, 0, “norne’ session_start(); $_SESSIONIiduserl-Sid; $_SESSION[nomeuser]=$nome; echo""; //OU Header("Locatior } result.html"); > (OBS: result.php é a minha pagina restrita deste exemplo. Coloque o nome da sua 59 Pha ven profralph.com:br~ APLICATIVOS PARA INTERNET (Al) PAGINA RESTRITA: Esta é a pagina que s6 aparecers se 0 usuario estiver cadastrado e efetuar 0 logon. Pode ter ‘qualquer contetido e ser de qualquer tipo (HTML, htm, php, ete) 36 NAO SE ESQUEGA de acrescentar require_once("verifica.php"); para que possa ser feita a vetificagio se a autenticagSo foi feitae a sessio iniciada e ainda colocar um link para sair.php para ser feito 0 logoff. VERIFICAGAO DE AUTENTICAGAO: Abra o Notepades, dgite 0 cécigo a seguir e salve como verifica.php. window. location.href='index.html'';. //OU Meader("Locationiindex.atmt"): } EFETUAR LOGOF! Abra o Notepad++, digite 0 cédigo a seguir e salve como sair.php: window. location href='index.htmi'"; /10U Header("Location: index.html"); > ATIVIDADES (PHP COM BANCO DE DADOS): 1. Refaca todos 0s exercicios anteriores usando © NVU (com cédigo hibrido e separado) e aplique todos os tratamentos de erros necessarios. Crie bancos de dados @ armazene todas as informagdes nestes bancos de dados. 2. Fazer uma pagina para cadastro de alunos que concorrerao a um prémio e outra que far o sorteio dos alunos e mostrar quem so os contemplados, 60 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) EXPORTAGAO E IMPORTAGAO DE BANCO DE DADOS NO PHP MYADMI Quando precisamos em uma maquina utilizar um banco de dados com todos os registros que fol feito em outro computador (por exemplo © banco feito na sua casa ser aproveitado na escola) basta trabalhar com o recurso de exportacio e importaco do PHP MyAdmin. Voce exporta o banco de dados pronto, para um arquivo sql e este, por sua ver é importado ‘no outro computador que voc® estiver utiizando no momento. Nota: Ambos os computadores deverzo possuir o wampserver instalado. EXPORTANDO 0 BANCO DE DADOS PRONT! Abra o PHP MyAdmin e selecione 0 banco de dados que deseja exportar. { Servidor: localhost » Banco de Dados: bescola (PG eswuue eso _PProcurar _gProcurar por exemplo_gBExporta KEliminor Taboa Aste Regios Tipo O tom Bg Be MX -2 no08 ain professor (SSR) He x -2 Ione08 ain Oo Se Be x -2 Iono08 ain 3tabelats) Soma 6 InnoD8_ tin LL Marcertodos Oesmarca toes [Com mareaos: ¥ {B Viewalizacdo para impress fo J Dicionavio de dados Caso ache necessério, clique em uma das tabelas do Banco de Dados e em Visualizar para ver (08 dados ja cadastrados, ‘Com 0 Banco de Dados selecionado, clique no botdo Exportar, na parte superior da tela et Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) Heats to 2H sme mires Donate emnhe ottine ache | — ee eae eo Nesta janela voce dever ter certeza.de que todas as tabelas estejam selecionadas, No canto esquérdo} seletidne’a opcao SL Repare agora na parté inferior da tela: Selecione a opcao Enviado para que o arquivo SQL seja gerado. Caso vocé se esqueca de marcar a esta op¢3o, sera gerado 0 cédigo, mas na janela do MyAdmin e este no sera salvo. Clique no botdo Executar. Desi slvr ou ait este anita? me: bese Te. Mize 5c ser Query Fe 2.798 igen: cast Cosi) (sate) Coens) ee ee ‘ako: putin erica so conesab. Sa yoce acre en ‘htm ne saa ren saves se aleases! Na caixa de didlogo, selecione a opcio Salvar e grave o arquivo onde desejar. Se tudo correr bem, sera gerado um arquivo como na imagem a seguir: hy paescls 1 SI, frerost Sol Server Quay Fle 62 Pha wunw.proftalph.com.br ~ APLICATIVOS PARA INTERNET (A) Este arquivo contém a estrutura das tabelas e o contetide armazenado nas mesmas e sera utilizado no pracesso de importacio. IMPORTANDO 0 BANCO DE DADOS EM OUTRA MAQUINA: No outro computador, abra o MyAdmin e crie um banco de dados cam o mesmo nome do que foi exportado. [me + NAO crie as tabelas, pois elas j4 existem no arquivo ———e ‘SQL exportado! ligug nd Bot%o Ininbrtar, na parteSuperior dela € seleciane o arglivé conrorbotdo Procurar: iia - iy ! Sy ede ——— a mate) oo cree [EI ee mm tov) Serre sieeve | cone neous nono —_v) Soman pe ees Para finalizar, clique no botio Executar, no canto inferior direito. Automaticamente o MyAdmin fard a atualizaco e as tabelas j4 podersio ser vistas no menu lateral esquerdo: Clicando nas tabelas, vocé poderd ver os dados nas mesmas através da ope Visualizar. T+ eodprtesor none aie sigle sem ano tuna caso) ust osx 1 Of Vane peated StteaeseApteatver | OA 2 208 27NET INFORLATICA cto ox 17 Rates Alene ara nema, “ (B08 Teele ite at Importagio efetuada com sucesso! 63

Das könnte Ihnen auch gefallen