25
Desenvolvimento Web II - PHP e MySQL Matheus Abrantes Gadelha Universidade Federal do Rio Grande do Norte Programa de Educa¸c˜ ao Tutorial - Ciˆ encia da Computa¸c˜ ao Natal, 2010 Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 1 / 25

Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

Desenvolvimento Web II - PHP e MySQL

Matheus Abrantes Gadelha

Universidade Federal do Rio Grande do NortePrograma de Educacao Tutorial - Ciencia da Computacao

Natal, 2010

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 1 / 25

Page 2: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

Roteiro

PHPI IntroducaoI VariaveisI TiposI Estruturas de controle de fluxoI Orientacao a objetoI Atividade pratica

MySQLI Modelo de dados relacionaisI Criacao e abandono de tabelasI Insercao, atualizacao e remocao de dadosI Selecao de dados

Criando aplicacoes webI Integrando MySQL e PHPI Padroes de projeto PHPI Desenvolvimento de aplicacao-exemplo

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 2 / 25

Page 3: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

IntroducaoConhecendo PHP

Surgiu por volta de 1994, como um subconjunto de scripts Perlcriados por Rasmus Lerdof, com o nome PHP/FI (Personal HomePage Tools/Forms Interpreter)

Linguagem extremamente modularizada, ideal para instalacao e usoem servidores web.

Carascterısticas

Linguagem interpretada

Tipagem fraca

Programacao estrutrada

Suporte a programacao orientada a objetos

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 3 / 25

Page 4: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

IntroducaoConhecendo PHP

O codigo PHP nao e visıvel para o usuario. Ele e utilizado para gerarcodigo HTML;

Muitas vezes o codigo php esta inserido em paginas HTML;

Possibilidade de criar paginas baseadas em informacoes coletadas peloservidor;

PHP e server-side;

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 4 / 25

Page 5: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

MotivacaoPor que aprender PHP?

Linguagem mais utilizada para desenvolvimento web. P.e.:Wikipediafoi completamente desenvolvida em PHP

Sintaxe similar a C/C++

Suporte a inumeros tipos de bases de dados: Oracle, Sybase,PostgreSQL, InterBase, MySQL, SQLite, MSSQL, Firebird

Suporte aos protocolos: IMAP, SNMP, NNTP, POP3, HTTP, LDAP,XML-RPC, SOAP.

E possıvel abrir sockets e interagir com outros protocolos

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 5 / 25

Page 6: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

”Hello World!!!”Seu primeiro codigo PHP...

1 <!DOCTYPE HTML PUBLIC ”−//W3C//DTD HTML 4 . 0 1 T r a n s i t i o n a l //EN”2 ” h t t p : / /www. w3 . org /TR/ html4 / l o o s e . dtd ”>3<html>4 <head>5 < t i t l e >Exemplo</ t i t l e >6 </head>7 <body>8

9 <?php10 echo ”Eu sou um s c r i p t PHP! ” ;11 ?>12

13 </body>14</html>

Echo nao exibe mensagens na tela, mas escreve a string desejada nohtml.

Utilize o navegador para abrir a pagina e verificar o codigo-fonte.

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 6 / 25

Page 7: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

”O comando echo”Escrevendo HTML com PHP

echo e utilizado para escrever strings em paginas HTML. Observe oseguinte trecho:

1<?php2 i f ( s t r s t r ( $ SERVER [ ”HTTP USER AGENT” ] , ”MSIE” ) ) {3 echo ”Vc e s t a h usando o I n t e r n e t E x p l o r e r <br />” ;4 } ?>

Podemos intercalar codigo PHP com HTML para obter uma melhorlegibilidade. Sera bastante util quando conteudos de paginas inteiras foremmodificados por escolhas de navegacao dos usuarios.

1<?php i f ( s t r s t r ( $ SERVER [ ”HTTP USER AGENT” ] , ”MSIE” ) ) { ?>2 <h3>s t r s t r r e t o r n a v e r d a d e i r o </h3>3 <c e n t e r><b>Vc e s t a h usando o I n t e r n e t E x p l o r e r </b></c e n t e r>4<?php } e l s e { ?>5 <h3>s t r s t r r e t o r n a f a l s o </h3>6 <c e n t e r><b>Vc n e s t a h usando o I n t e r n e t E x p l o r e r </b></c e n t e r>7<?php } ?>

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 7 / 25

Page 8: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

O comando echoAtalhos de escrita

E possıvel utilizar diferentes estilos de tags php para escrever codigoHTML mais rapidamente

1<?php echo ’ para s e r v i r documentos XHTML ou XML ’ ; ?>2

3< s c r i p t l a n g u a g e=”php”>4 echo ’ Testando s c r i p t ’ ;5</ s c r i p t >6

7<? echo ’ Modelo de tag mais s i m p l e s ’ ; ?>8

9<?= ” e x p r e s s i o n ” ?> = <? echo ” e x p r e s s i o n ” ?>

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 8 / 25

Page 9: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

Esclarecimente importanteSobre a utilizacao de ponto e vırgula...

Assim como C, Java e outras linguagens de programacao, o uso de’;’(ponto e vırgula) e obrigatorio ao termino de cada instrucao. Contudo,quando uma tag PHP termina, o ’;’ NAO precisa ser inserido se a tagtermina IMEDIATAMENTE DEPOIS desse caractere(’;’). Exemplificando:

1<?php2 echo ’ I s t o eh um t e s t e ’ ;3 ?>4

5<?php echo ’ I s t o eh um t e s t e ’ ?>6

7<?php echo ’ Omitimos a tag de fechamento que f a l t a ’ ;

Para evitar complicacoes, SEMPRE utilize o ’;’.

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 9 / 25

Page 10: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

VariaveisTipos e declaracao

Variaveis PHP possuem tipos.

Sao dinamicamente tipadas.

Para proporcionar uma melhor legibilidade, utilize a palavra chave varantes de declarar uma variavel.

1<?php2 $ a b o o l = TRUE ;3 $ a s t r = ” f o o ” ;4 $ a s t r 2 = ’ f o o ’ ;5 $ a n i n t = 1 2 ;6 echo gettype ( $ a b o o l ) ;7 echo gettype ( $ a s t r ) ;8 i f ( i s i n t ( $ a n i n t ) ) {9 $ a n i n t += 4 ;

10 }11 i f ( i s s t r i n g ( $ a b o o l ) ) {12 echo ” S t r i n g : $ a b o o l ” ;13 }14 ?>

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 10 / 25

Page 11: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

Strings

1<?php2 $ c e r v e j a = ’ Heineken ’ ;3 echo ”O s a b o r das ’ $ c e r v e j a ’ s eh ot imo ” ;4 echo ” E l e bebeu algumas ${ c e r v e j a } s ” ;5 echo ” E l e bebeu algumas { $ c e r v e j a } s ” ;6 ?>

Strings tambem podem ser escritas com aspas duplas, em formato heredocou nowadoc.

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 11 / 25

Page 12: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

ArraysConceitos

Em PHP, arrays sao mapas ordenados

Eles podem simular filas, pilhas, colecoes, dicionarios, etc.

Lidar com arrays e fundamental para processar informacoes de umabase de dados

Pelo fato de PHP ser orientado a objeto, podemos criar arraysutilizando metodos construtores.

PHP possui uma sintaxe muito abrangente. Isso evita erros, mastambem torna o codigo menos legıvel e de mais difıcil manutencao.

Adote um estilo de programacao.

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 12 / 25

Page 13: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

ArraysCriacao de arrays

1<?php2 $a = a r r a y ( ’ c o r ’ => ’ v e r m e l h a ’ , ’ s a b o r ’ => ’ doce ’ ,3 ’ forma ’ => ’ redonda ’ , ’ nome ’ => ’ maca ’ ,4 4 // a chave s e r a 05 ) ;6

7 $a [ ’ c o r ’ ] = ’ v e r m e l h a ’ ;8 $a [ ’ s a b o r ’ ] = ’ doce ’ ;9 $a [ ’ forma ’ ] = ’ redonda ’ ;

10 $a [ ’ nome ’ ] = ’ maca ’ ;11 $a [ ] = 4 ; // a chave s e r a 012

13 // o mesmo de a r r a y ( 0 => ’ a ’ , 1 => ’ b ’ , 2 => ’ c ’ )14 $b [ ] = ’ a ’ ;15 $b [ ] = ’ b ’ ;16 $b [ ] = ’ c ’ ;17

18

19 $ c o r e s = a r r a y ( ’ ve rme lho ’ , ’ a z u l ’ , ’ v e r d e ’ , ’ amare lo ’ ) ;20 f o r each ( $ c o r e s as $ c o r ) {21 echo ”Vc g o s t a de $ c o r ?\n” ;22 }23 ?>

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 13 / 25

Page 14: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

Estruturas de controle de fluxoif...else...

A sintaxe mais comum para utilizacao das estruturas de controle if e elsesao apresentadas a seguir:

1<?php2 i f ( $a > $b ) {3 echo ”a i s b i g g e r than b” ;4 } e l s e i f ( $a == $b ) {5 echo ”a i s e q u a l to b” ;6 } e l s e {7 echo ”a i s s m a l l e r than b” ;8 }9 ?>

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 14 / 25

Page 15: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

Estruturas de controle de fluxoif...else

Outra sintaxe pode ser utilizada:

1<?php /∗ I n c o r r e c t Method : ∗/2 i f ( $a > $b ) :3 echo $a . ” i s g r e a t e r than ” . $b ;4 e l s e i f ( $a == $b ) : // W i l l not comp i l e .5 echo ”The above l i n e c a u s e s a p a r s e e r r o r . ” ;6 e n d i f ;7 /∗ Co r r e c t Method : ∗/8 i f ( $a > $b ) :9 echo $a . ” i s g r e a t e r than ” . $b ;

10 e l s e i f ( $a == $b ) :11 echo $a . ” e q u a l s ” . $b ;12 e l s e :13 echo $a . ” i s n e i t h e r g r e a t e r than o r e q u a l to ” . $b ;14 e n d i f ;15 ?>

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 15 / 25

Page 16: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

Estruturas de controle de fluxowhile

1<?php2 /∗ example 1 ∗/3 $ i = 1 ;4 wh i l e ( $ i <= 10) {5 echo $ i ++; /∗ the p r i n t e d v a l u e would be6 $ i b e f o r e the i nc r ement7 ( post−i n c r ement ) ∗/8 }9

10 /∗ example 2 ∗/11 $ i = 1 ;12 wh i l e ( $ i <= 1 0 ) :13 echo $ i ;14 $ i ++;15 e n d w h i l e ;16 ?>

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 16 / 25

Page 17: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

Estruturas de controle de fluxofor

1<?php2 f o r ( $ i = 1 ; $ i <= 1 0 ; $ i++) {3 echo $ i ;4 }5 f o r ( $ i = 1 ; ; $ i++) {6 i f ( $ i > 10) {7 break ;8 }9 echo $ i ;

10 }11 $ i = 1 ;12 f o r ( ; ; ) {13 i f ( $ i > 10) {14 break ;15 }16 echo $ i ;17 $ i ++;18 }19 f o r ( $ i = 1 , $ j = 0 ; $ i <= 1 0 ; $ j += $i , p r i n t $ i , $ i ++);20 ?>

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 17 / 25

Page 18: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

Estruturas de controle de fluxoforeach

O foreach surge da necessidade de efetuar iteracoes sobre arrays demaneira rapida, simples e intuitiva. Observe o exemplo:

1<?php2 $ a r r = a r r a y ( 1 , 2 , 3 , 4 ) ;3 f o r each ( $ a r r as &$ v a l u e ) {4 $ v a l u e = $ v a l u e ∗ 2 ;5 }6 // $a r r i s now a r r a y (2 , 4 , 6 , 8)7 unset ( $ v a l u e ) ; // break the r e f e r e n c e wi th the l a s t e l ement8 ?>

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 18 / 25

Page 19: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

Estruturas de controle de fluxoswitch

1<?php2 i f ( $ i == 0) {3 echo ” i e q u a l s 0” ;4 } e l s e i f ( $ i == 1) {5 echo ” i e q u a l s 1” ;6 } e l s e i f ( $ i == 2) {7 echo ” i e q u a l s 2” ;8 }9

10 sw i tch ( $ i ) {11 case 0 :12 echo ” i e q u a l s 0” ;13 break ;14 case 1 :15 echo ” i e q u a l s 1” ;16 break ;17 case 2 :18 echo ” i e q u a l s 2” ;19 break ;20 }21 ?>

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 19 / 25

Page 20: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

Funcoes

As funcoes PHP podem ser prototipadas.

Elas tambem podem ser declatas com base em estruturas de controlede fluxo.

PHP possui suporte a funcoes recursivas. Nenhum acrescimo asintaxe e necessario.

1<?php2 $makefoo = t rue ;3 bar ( ) ;4 i f ( $makefoo ) {5 f u n c t i o n f o o ( )6 {7 echo ” I don ’ t e x i s t u n t i l program e x e c u t i o n r e a c h e s me .\ n” ;8 }9 }

10 i f ( $makefoo ) f o o ( ) ;11 f u n c t i o n bar ( )12 {13 echo ” I e x i s t i m m e d i a t e l y upon program s t a r t .\ n” ;14 }15 ?>

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 20 / 25

Page 21: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

FuncoesPassagem de argumentos

Por default, a passagem de argumentos e feita por valorE possıvel passar argumentos por referencia, de forma semelhante aC++Tambem e permitido definir arugumentos default para metodos

1<?php2 f u n c t i o n a d d s o m e e x t r a (& $ s t r i n g )3 {4 $ s t r i n g .= ’ and someth ing e x t r a . ’ ;5 }6 $ s t r = ’ Thi s i s a s t r i n g , ’ ;7 a d d s o m e e x t r a ( $ s t r ) ;8 echo $ s t r ;9

10 f u n c t i o n m a k e c o f f e e ( $ t y p e = ” c a p p u c c i n o ” )11 {12 r e t u r n ” Making a cup o f $ t y p e .\ n” ;13 }14 echo m a k e c o f f e e ( ) ;15 echo m a k e c o f f e e ( n u l l ) ;16 echo m a k e c o f f e e ( ” e s p r e s s o ” ) ;17 ?>

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 21 / 25

Page 22: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

Orientacao a objetoConceitos basicos

A orientacao a objeto e baseada em tres conceitos fundamentais:heranca, polimorfismo e encapsulamento.

Heranca e a capacidade de determinadas classes se utilizarem decodigo previamente definido para outras. Esse processo, alem deproporcionar reaproveitamento de codigo, conecta em termospraticos, entidades semanticamente relacionadas.

Polimorfismo e a capacidade que um mesmo metodo possui de semodificar conforme o contexto

Encapsulamento e um mecanismo de controle de acesso aentidades-membro das classes

Apesar de serem tres definicoes diferentes, elas estao intimamenteconectadas.

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 22 / 25

Page 23: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

Orientacao a objeto

1<?php2 c l a s s Test3 {4 s t a t i c p u b l i c f u n c t i o n getNew ( )5 {6 r e t u r n new s t a t i c ;7 }8 }9

10 c l a s s C h i l d e x t e n d s Test11 {}12

13 $ o b j 1 = new Test ( ) ;14 $ o b j 2 = new $ o b j 1 ;15 var dump ( $ o b j 1 !== $ o b j 2 ) ;16

17 $ o b j 3 = Test : : getNew ( ) ;18 var dump ( $ o b j 3 i n s t a n c e o f Test ) ;19

20 $ o b j 4 = C h i l d : : getNew ( ) ;21 var dump ( $ o b j 4 i n s t a n c e o f C h i l d ) ;22 ?>

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 23 / 25

Page 24: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

Orientacao a objetoConstrutores e destrutores

1<?php2 c l a s s B a s e C l a s s {3 f u n c t i o n c o n s t r u c t ( ) {4 p r i n t ” I n B a s e C l a s s c o n s t r u c t o r \n” ;5 }6 }7 c l a s s S u b C l a s s e x t e n d s B a s e C l a s s {8 f u n c t i o n c o n s t r u c t ( ) {9 p a r e n t : : c o n s t r u c t ( ) ;

10 p r i n t ” I n S u b C l a s s c o n s t r u c t o r \n” ;11 }12 }13 $ o b j = new B a s e C l a s s ( ) ;14 $ o b j = new S u b C l a s s ( ) ;15 c l a s s M y D e s t r u c t a b l e C l a s s {16 f u n c t i o n c o n s t r u c t ( ) {17 p r i n t ” I n c o n s t r u c t o r \n” ;18 $ t h i s−>name = ” M y D e s t r u c t a b l e C l a s s ” ;19 }20 f u n c t i o n d e s t r u c t ( ) {21 p r i n t ” D e s t r o y i n g ” . $ t h i s−>name . ”\n” ;22 }23 }24 ?>Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 24 / 25

Page 25: Desenvolvimento Web II - PHP e MySQLpetcc.weebly.com/uploads/5/0/3/7/5037808/desenvolvimento_web2.… · Roteiro PHP I Introdu˘c~ao I Vari aveis I Tipos I Estruturas de controle

Atividade pratica

Matheus Gadelha (UFRN, PET-CC) PHP e MySQL Natal, 2010 25 / 25