Beruflich Dokumente
Kultur Dokumente
Tutorial completo MySQL com PHP | voindo.eu | Eduardo Pereira | Web Design | Develop
HOME
PUBLICIDADE
12
Hoje em dia, sites dinmicos so uma constante na web. Longe vai o tempo que os sites eram CONTACTOS simples pginas estticas HTML.
NAVEGAO
Os contedos armazenados, interaco com utilizadores, gesto de contedos so peas chave dos sites de hoje. Grande pilar nesta dinamizao est as base de dados. No sendo obrigatrio como natural, um complemento eficaz no armazenamento da informao. Neste tutorial vamos passar pela utilizao de base e dados MySQL com PHP. Lamento o facto de apenas falar em PHP e material opensource, mas assim a vida, s h lugar para as coisas boas
Partindo do principio que j est instalado o PHP e o MySQL vamos passar frente dessa parte. Contudo poder usar o WAMP para windows, muito bom e fcil de instalar: Download WAMP Server
POSTS POPULARES
Alterar contedo DIV com javascript (jQuery) 26,024 views Renomear tabela ou coluna em MySQL 15,526 views Tutorial completo MySQL com PHP 11,442 views
Funo JavaScript equivalente ao PHP Explode 7,576 views Friendly URLs com mod_rewrite (URLs Amigveis) 7,533 views
1 C R E A T ED A T A B A S Ei fN O TE X I S T S` t e s t e ` ; 2 U S Et e s t e ; 3 C R E A T ET A B L E` u t i l i z a d o r e s `( 4 ` i d `I N T ( 1 1 )N O TN U L LA U T O _ I N C R E M E N T , 5 ` n o m e `V A R C H A R ( 1 0 0 )D E F A U L TN U L L , 6 ` c i d a d e `V A R C H A R ( 1 0 0 )D E F A U L TN U L L , 7 ` w e b `V A R C H A R ( 1 0 0 )D E F A U L TN U L L , 8 ` i d a d e `S M A L L I N T ( 6 )D E F A U L TN U L L , Seleccionar Ms 9 P R I M A R YK E Y( ` i d ` ) 1 0 )E N G I N E = I N N O D BD E F A U L TC H A R S E T = l a t i n 1 ; 1 1 1 2 I N S E R TI N T O` u s e r s ` ( ` i d ` , ` n o m e ` , ` c i d a d e ` , ` w e b ` , ` i d a d e ` )V A L U E S( 1 , ' M i g u e l ' 1 3 I N S E R TI N T O` u s e r s ` ( ` i d ` , ` n o m e ` , ` c i d a d e ` , ` w e b ` , ` i d a d e ` )V A L U E S( 2 , ' J o a o ' 1 4 I N S E R TI N T O` u s e r s ` ( ` i d ` , ` n o m e ` , ` c i d a d e ` , ` w e b ` , ` i d a d e ` )V A L U E S( 3 , ' A n a ' 1 5 I N S E R TI N T O` u s e r s ` ( ` i d ` , ` n o m e ` , ` c i d a d e ` , ` w e b ` , ` i d a d e ` )V A L U E S( 4 , ' D i o g o ' 1 6 2013 I N | VOINDO.EU S E R TI N T O | ` u s e r s ` ( ` PORTFOLIO i d ` , ` n o m e ` , SOBRE ` c i d a d e ` CONTACTOS , ` w e b ` , ` i d a d e ` )V A L U E S( 5 , ' J u l i a '
ARQUIVO
TAGS
Achados css design email explode form formularios funo html inspiration
jquery js limit limitar MySQL paginao SEF SEO Variveis w ebdesign zip
JavaScript
PHP
zip PELC
www.voindo.eu/2010/06/01/tutorial-completo-mysql-com-php/
1/6
21/11/13
Tutorial completo MySQL com PHP | voindo.eu | Eduardo Pereira | Web Design | Develop
(devido a password invlida ou permisses invlidas), e caso falhe no faz sentido continuarmos com o script. Portanto: 1 2 3 4 5 6 7 8 9 1 0 1 1 < ? p h p $ h o s t n a m e=" l o c a l h o s t " ; $ u s e r n a m e=" u s e r T e s t e " ; $ p a s s w o r d=" p a s s T e s t e "
/ /V a m o sc o n s i d e r a rl o c a l h o s to um q u i n al o c a l / /U s e r n a m eu s e r T e s t e / /P a s s w o r dp a s s T e s t e( C u i d a d oc o mm a i s c u l a sem i n s c u l a s
m y s q l _ c o n n e c t ( " $ h o s t n a m e " ," $ u s e r n a m e " ," $ p a s s w o r d " )o rd i e ( m y s q l _ e r r o r ( ) ) ; e c h o" C o n e x oe f e c t u a d ac o ms u c e s s o ! < b r / > " ; m y s q l _ s e l e c t _ d b ( " t e s t e " )o rd i e ( m y s q l _ e r r o r ( ) ) ; e c h o" B a s ed ed a d o ss e l e c c i o n a d a ! < b r / > " ;
? >
Como se pode verificar, usando a funo interna do PHP mysql_connect() estabelecemos uma ligao ao servidor MySQL. Com a varivel or die no caso da mesma falhar. De seguida escolhemos a base de dados a trabalhar com a funo mysql_select_db() Se estiver tudo criado e corrermos o script o resultado ser algo parecido a:
FECHAR A CONEXO
Antes de continuarmos, queria falar j no oposto a esta operao. Isto fechar a ligao. Por motivos de segurana poder ser necessrio fechar a conexo base de dados. Contudo desde o PHP4 que no necessrio fecharmos conexes base de dados, porque o PHP efectua uma operao automtica chamada de garbage collector ainda assim a funo interna do PHP mysql_close()
? >
Pois muito bem, at aqui tudo muito simples, e temos todo o contedo numa varivel $result mas esta varivel ficou de facto automaticamente numa array() porque foi adicionado um conjunto de dados. Se tentarmos imprimir o contedo da varivel para o ecr com um echo como mostra o cdigo em cima, o resultado ser algo parecido a isto:
Resource id #3
www.voindo.eu/2010/06/01/tutorial-completo-mysql-com-php/ 2/6
21/11/13
Tutorial completo MySQL com PHP | voindo.eu | Eduardo Pereira | Web Design | Develop
E isto no de facto o que queremos como resultado. Para vermos o resultado precisamos de elaborar o cdigo um pouco mais. Existem funes internas do PHP para mostrar coleces de dados (ARRAYS). Alguns casos: mysql_fetch_assoc() - Obtm um linha de resultados como uma array associativa (pelo nome) mysql_fetch_row() - Obtm uma linha de resultado como uma array numerada (numeradas) mysql_fetch_array() - Obtm uma linha de resultado como uma array associativa, numerada ou ambas Todas estas funes convertem uma clula de informao da tabela para uma posio num ARRAY para que depois possamos utilizar a informao guardada na varivel ARRAY como quisermos. No prximo exemplo vamos usar associativa: 1 2 3 4 < ? p h p ? >
$ r o w=m y s q l _ f e t c h _ a s s o c ( $ r e s u l t ) ; e c h o" I D :" . $ r o w [ ' i d ' ] . " ,N o m e : " . $ r o w [ ' n o m e ' ] . " ,C i d a d e : " . $ r o w [ ' c i d a d e '
Contudo, isto mostra apenas uma linha da tabela. Isto porque lembrem-se que todas as funes internas do PHP para obteno de informao da base de dados relativa a uma linha portanto como ns queremos obter toda a informao na tabela temos de usar um ciclo WHILE LOOP para armazenar todas as linhas da tabela. Assim sendo: 1 2 3 4 5 6 7 < ? p h p $ r e s u l t=m y s q l _ q u e r y ( " S E L E C T*F R O Mu t i l i z a d o r e s " ) ; w h i l e ( $ r o w=m y s q l _ f e t c h _ a s s o c ( $ r e s u l t ) ) { e c h o" I D :" . $ r o w [ ' i d ' ] . " ,N o m e : " . $ r o w [ ' n o m e ' ] . " ,C i d a d e : " . $ r o w }
? >
Como se pode verificar no complicado, ao efectuar um ciclo WHILE que percorre em loop at no haver mais linhas na tabela, e em cada ciclo faz o output da informao com ECHO
Neste caso ento adicionado tabela "utilizadores" uma nova entrada (linha) com os dados referidos. Actualizar uma entrada (Linha) na tabela: Bsicamente igual, as nicas alteraes no comando SQL, portanto: 1 2 3 4 < ? p h p $ s q l=" U P D A T Eu t i l i z a d o r e sS E Ti d a d e = 4 5W H E R En o m e = ' A n t o n i o ' " ; $ r e s u l t=m y s q l _ q u e r y ( $ s q l ) ; ? >
Nesta actualizao usamos o comando UPDATE e dizemos com SET que a idade neste caso 45 na tabela onde o nome igual a Antonio (WHERE nome='Antonio').
www.voindo.eu/2010/06/01/tutorial-completo-mysql-com-php/
3/6
21/11/13
Remover uma entrada:
Tutorial completo MySQL com PHP | voindo.eu | Eduardo Pereira | Web Design | Develop
Outra vez praticamente igual, mudamos o comando SQL para: 1 2 3 4 < ? p h p $ s q l=" D E L E T EF R O Mu t i l i z a d o r e sW H E R En o m e = ' A n t o n i o ' " ; $ r e s u l t=m y s q l _ q u e r y ( $ s q l ) ; ? >
AQUI FICA O SCRIPT COMPLETO COM TODOS OS PASSOS E COMANDOS, NUM S FICHEIRO
1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 0 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 6 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 < ? p h p $ h o s t n a m e=" l o c a l h o s t " ; $ u s e r n a m e=" u s e r T e s t e " ; $ p a s s w o r d=" p a s s T e s t e " / /V a m o sc o n s i d e r a rl o c a l h o s to um q u i n al o c a l / /U s e r n a m eu s e r T e s t e / /P a s s w o r dp a s s T e s t e( C u i d a d oc o mm a i s c u l a sem i n s c u l a s
e c h o" < b r / > P a s s o1 .I n s e r i rd a t a < b r / > < h r / > " ; $ s q l=" I N S E R TI N T Ou t i l i z a d o r e s( n o m e , c i d a d e , w e b , i d a d e )V A L U E S( ' A n t o n i o ' , ' A v e i r o ' , ' w w w . a n t o n i o . c o m ' , 5 ) " $ r e s u l t=m y s q l _ q u e r y ( $ s q l ) ; i f( $ r e s u l t ) {/ /v e r i f i c as eor e s u l t a d op o s i t i v o ,p o r t a n t os eoc o m a n d of o ie x e c u t a d o ; e c h o" D a d o si n s e r i d o s ! < b r / > " ; }e l s e{ e c h o" O c u r r e uu me r r oa oi n s e r i r ! < b r / > " ; } $ r e s u l t=m y s q l _ q u e r y ( " S E L E C T*F R O Mu t i l i z a d o r e s " ) ; w h i l e ( $ r o w=m y s q l _ f e t c h _ a s s o c ( $ r e s u l t ) ) { e c h o" I D :" . $ r o w [ ' i d ' ] . " ,N o m e : " . $ r o w [ ' n o m e ' ] . " ,C i d a d e : " . $ r o w }
e c h o" < b r / > P a s s o2 .A c t u a l i z a rd a t a < b r / > < h r / > " ; $ s q l=" U P D A T Eu t i l i z a d o r e sS E Ti d a d e = 4 5W H E R En o m e = ' A n t o n i o ' " ; $ r e s u l t=m y s q l _ q u e r y ( $ s q l ) ; i f( $ r e s u l t ) {/ /v e r i f i c as eor e s u l t a d op o s i t i v o ,p o r t a n t os eoc o m a n d of o ie x e c u t a d o ; e c h o" D a d o sa c t u a l i z a d o s ! < b r / > " ; }e l s e{ e c h o" O c c u r e uu me r r oa oa c t u a l i z a ro sd a d o s ! < b r / > " ; } $ r e s u l t=m y s q l _ q u e r y ( " S E L E C T*F R O Mu t i l i z a d o r e s " ) ; w h i l e ( $ r o w=m y s q l _ f e t c h _ a s s o c ( $ r e s u l t ) ) { e c h o" I D :" . $ r o w [ ' i d ' ] . " ,N o m e : " . $ r o w [ ' n o m e ' ] . " ,C i d a d e : " . $ r o w }
e c h o" < b r / > P a s s o3 .R e m o v e rd a t a < h r / > " ; $ s q l=" D E L E T EF R O Mu t i l i z a d o r e sW H E R En o m e = ' A n t o n i o ' " ; $ r e s u l t=m y s q l _ q u e r y ( $ s q l ) ; i f( $ r e s u l t ) {/ /v e r i f i c as eor e s u l t a d op o s i t i v o ,p o r t a n t os eoc o m a n d of o ie x e c u t a d o ; e c h o" D a d o sf o r a mr e m o v i d o s ! < b r / > " ; }e l s e{ e c h o" O c u r r e uu me r r oa or e m o v e ro sd a d o s ! < b r / > " ; } $ r e s u l t=m y s q l _ q u e r y ( " S E L E C T*F R O Mu t i l i z a d o r e s " ) ; w h i l e ( $ r o w=m y s q l _ f e t c h _ a s s o c ( $ r e s u l t ) ) { e c h o" I D :" . $ r o w [ ' i d ' ] . " ,N o m e : " . $ r o w [ ' n o m e ' ] . " ,C i d a d e : " . $ r o w }
? >
Espero que este tutorial tenha sido de interesse. Mais tarde falarei em pormenor sobre alguns dos passos aqui. Obrigado e abraos
www.voindo.eu/2010/06/01/tutorial-completo-mysql-com-php/
4/6
21/11/13
Tutorial completo MySQL com PHP | voindo.eu | Eduardo Pereira | Web Design | Develop
12
6 COMENTRIOS
YOYO SAYS:
hihi estudem
22 DE SETEMBRO DE 2013 @ 2:44
REPLY
EDIKOSTON SAYS:
sim foi muito bom! parabns....
REPLY
TIAGO SAYS:
Muito bom o tutorial, obrigado!
REPLY
ARTUR SAYS:
tutorial excelente, super bem explicado!!!!
REPLY
REPLY
ROBSON SAYS:
Abrao!.
REPLY
DEIXE UM COMENTRIO
* Nome
www.voindo.eu/2010/06/01/tutorial-completo-mysql-com-php/
5/6
21/11/13
Tutorial completo MySQL com PHP | voindo.eu | Eduardo Pereira | Web Design | Develop
Website
* Mensagem
SUBMIT COMMENT
www.voindo.eu/2010/06/01/tutorial-completo-mysql-com-php/
6/6