Minicurso PHP + MySQL (Release Candidate)
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Minicurso PHP + MySQL (Release Candidate)

  • 2,182 views
Uploaded on

Minicurso de PHP + MySQL que eu (@g0nc1n) ministrarei nos dias 25 e 26 de maio de 2011 durante a II Semana de Sistemas de Informação do Uni-FACEF (@UniFACEF)

Minicurso de PHP + MySQL que eu (@g0nc1n) ministrarei nos dias 25 e 26 de maio de 2011 durante a II Semana de Sistemas de Informação do Uni-FACEF (@UniFACEF)

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to like this
No Downloads

Views

Total Views
2,182
On Slideshare
2,179
From Embeds
3
Number of Embeds
1

Actions

Shares
Downloads
124
Comments
1
Likes
0

Embeds 3

http://twitter.com 3

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Introdução ao desenvolvimento Web com PHP e MySQL
    Fausto Gonçalves Cintra
    Oficial de Tecnologia e Informática do Uni-FACEF
    fausto@facef.br
    Twitter: @g0nc1n
    II Semana de Sistemas de Informação
    25 e 26 de maio de 2011
  • 2. Sobre o ministrante
    Formação Acadêmica
    Bacharel em Ciência da Computação com Ênfase em Análise de Sistemas – Universidade de Franca (1997)
    Bacharel em Direito pela Universidade Estadual Paulista “Júlio de Mesquita Filho” – UNESP (2008)
    Experiência Profissional
    Andes Informática (1997-2001): Delphi, Interbase, Firebird
    Prefeitura Municipal de Franca (2001-2005): Visual Basic 6, MS SQL Server, ASP
    Centro Universitário de Franca (2005-): PHP, MS SQL Server, MySQL
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    2
  • 3. Objetivos do minicurso
    Expor uma visão geral do fluxo de desenvolvimento de aplicações para Web, utilizando:
    PHP como linguagem de script server-side e
    MySQL como sistema de gerenciamento de banco de dados.
    Explicitar a forma como estes interagem com outras linguagens tecnologicamente fundamentais para aquela plataforma, tais como HTML, CSS e Javascript.
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    3
  • 4. O que veremos no minicurso
    Conceitos básicos de funcionamento da Internet e da Web. O papel dos servidores Web e dos navegadores
    HTML: surgimento e importância para a Internet tal como a conhecemos hoje
    Automatizando a geração de documentos HTML: PHP + MySQL
    MySQL: criação de um banco de dados simples
    PHP: implementação dos processos de CRUD (Create, Retrieve, Update, Delete) sobre o banco de dados criado no MySQL
    CSS e Javascript: abordagem eventual e transversal aos demais conteúdos
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    4
  • 5. Muita coisa? Esperem...
    “não é só apenas isso”...
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    5
  • 6. Vocês verão o ministrante:
    Ga-ga-ga-gueeejar
    Suar como um gordinho na sauna (!?)
    Tremer as pernas
    Perder o fio da meada
    Derrubar coisas no chão
    Não saber tudo
    Tentar (!?) ser simpático
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    6
  • 7. Vamos começar do começo...
    Prontos?
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    7
  • 8. Tudo começou assim...
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    8
    http://www.youtube.com/watch?v=LlwL-6iqFJI
  • 9. AS Origens da internet
    Brincadeiras à parte...
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    9
  • 10. ARPANET
    Surgimento: 1969
    Objetivo
    Conectar, nos EUA, instalações militares e centros de pesquisa
    Característica
    Arquitetura descentralizada, na qual dois pontos poderiam manter a comunicação mesmo se outros pontos perdessem a conexão
    Pacotes
    A informação é dividida em pacotes na origem
    Cada pacote pode tomar um caminho (rota) diferente
    Os pacotes são reagrupados no destino, restaurando a informação original
    Considerada a “avó” da Internet
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    10
  • 11. Esquema de roteamento
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    11
    A
    D
    Rotas de A a C
    Topologia em anel. Se mais de um elo se quebrar, a comunicação fica comprometida
    B
    C
    Conexões redundantes para criar rotas alternativas
  • 12. Consequências do surgimento da ARPANET
    Aparição de outras redes baseadas em pacotes e roteamento
    Problemas
    Cada rede implementou a troca de pacotes à sua maneira
    Quando essas redes precisaram se comunicar entre si, elas não se entendiam
    Solução
    O desenvolvimento de um protocolo de comunicação inter-redes (INTERNETworking): o TCP/IP
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    12
  • 13. Protocolo?
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    13
    早上好,我是刘星
    ???
    ???
    Prazer em conhecê-lo.
    Goodmorning, I am Liu Xing.
    Gladtomeetyou.
  • 14. Com o TCP/IP, surge a Internet
    Em seus primórdios (1973-1989), era bem diferente de como a conhecemos hoje:
    Não havia navegadores (browsers)
    Não existiam buscadores – era necessário saber o endereço de uma máquina para acessar seu conteúdo
    Textos, imagens e sons eram armazenados separadamente, e não havia uma forma de integrá-los num único conteúdo
    Não havia uma forma de um documento fazer referência a outro (hyperlink)
    MAS O E-MAIL JÁ EXISTIA (com @ e tudo!)
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    14
  • 15. A WWW e o HTML
    O mundo nunca mais seria o mesmo
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    15
  • 16. Agradeça todos os dias a este sujeito
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    16
    Trouxe o conceito de hyperlink (que existia desde os anos 60) à Internet
    Como ele fez isso?
    Idealizou uma forma de endereçamento que pudesse identificar unicamente um documento na Internet (URL)
    Criou uma forma de escrever esses documentos, unindo textos e imagens (e, mais tarde, também sons e vídeos) – o HTML (HyperTextMarkupLanguage– linguagem de marcação de hipertexto)
    (cont.)
    Tim Berners-Lee
    Idealizador da WWW (1989)
  • 17. Esse é o cara
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    17
    Como ele fez isso (cont.)?
    Concebeu o modo pelo qual documentos HTML seriam transportados através da Internet – o HTTP (HyperTextTransferProtocol – protocolo de transferência de hipertexto)
    Escreveu o primeiro programa capaz de interpretar a HTML e exibir documentos que reuniam, ao mesmo tempo, texto, imagens e hyperlinks para outros documentos – o primeiro navegador (browser), chamado WorldWideWeb.
    Logo, haveria uma rede de servidores com documentos HTML para serem acessados – surgiria a World Wide Web (“teia de alcance mundial”)
    O http:// fui eu quem fiz, ó!
    Tim Berners-Lee
    Idealizador da WWW (1989)
  • 18. O Que é HTML?
    Mas, afinal de contas...
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    18
  • 19. Linguagem de marcação de hipertexto
    É um arquivo de texto, legível por seres humanos, normalmente com extensão .htm ou .html
    O que não significa que você vai entender de primeira o que está escrito em um...
    É uma linguagem de MARCAÇÃO: serve para MARCAR como conteúdos de diferentes mídias aparecerão numa página
    Pelamordedeus: HTML não é linguagem de programação!
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    19
  • 20. Estrutura básica de um arquivo HTML
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Título da Página</title>
    </head>
    <body>
    <p>Conteúdo da página</p>
    </body>
    </html>
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    20
    Isto é uma etiqueta (tag) de abertura
    Aqui vão as informações do cabeçalho da página...
    Não se preocupe, ninguém decora o DOCTYPE. Ele ou é gerado por um editor HTML ou você pode copiar e colar de uma página já existente.
    No body, vão as informações que o usuário verá na página
    E essa aqui é a tag de fechamento
    Entendeu, cabeção?
  • 21. Atividade com HTML
    Criar/visualizar um arquivo HTML
    Para criar: PSPad
    Para visualizar: navegador web (Firefox ou IE)
    Apresentação das tags
    <h1> a <h6>
    <p>
    <br />
    <img>
    <a>
    Brevíssima introdução ao CSS
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    21
  • 22. Agora vamos pensar um pouco...
    Criar e editar arquivos HTML não é muito produtivo, apesar de existirem editores visuais (Adobe Dreamweaver, KompoZer, Bluefish)
    Imagine um site noticioso (g1.globo.com, folha.com) e sua enorme quantidade de páginas de notícias...
    Na maioria dos sites, as páginas têm um aspecto padrão, variando apenas o conteúdo
    Calcule o trabalho necessário para trocar o layout de um portal inteiro...
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    22
  • 23. Enfim...
    Deve existir alguma coisa que
    Minimize o trabalho (repetitivo e enfadonho) de criar arquivos HTML
    Melhor ainda se...
    As páginas HTML pudessem geradas automaticamente a partir de um modelo predefinido
    TCHARAN!
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    23
  • 24. O servidor web
    O começo da solução
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    24
    www
  • 25. Você sabia que...
    Quando abre uma página da Internet, você não tem acesso direto à pagina HTML?
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    25
    Servidor Web
    Navegador Web
    Arquivo HTML
    Computador do usuário
    Computador servidor
  • 26. Mas por que eu não posso acessar os arquivos diretamente?
    (Ou: por que existe o servidor web?)
    Controle de acesso e segurança
    Muitas vezes, alguns arquivos devem ser vistos apenas por alguns usuários
    Porque o servidor web é capaz de processar os arquivos originais e entregar ao navegador um conteúdo diferente
    TCHARAN!
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    26
  • 27. Então, o servidor web é...
    um software
    que fica executando num servidor, em modo serviço (daemon)
    e recebe requisições (requests) do navegador, devolvendo respostas (responses)
    Exemplos de resposta:
    200: OK (a página foi enviada normalmente)
    403: Proibido (você não tem autorização para acessar a página)
    404: Não encontrado (você pediu para ver uma página que não existe ou não foi encontrada)
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    27
  • 28. E aquela história de “processar” arquivos?
    Para isso, o servidor web utiliza módulos que executam scripts do lado do servidor (server-side)
    São exemplos de linguagens que podem ser utilizadas em scripts server-side:
    ASP (*.asp)
    ASP.NET (*.aspx)
    Cold Fusion (*.cfm)
    Ruby (*.rb)
    PHP (*.php;*.php5)
    TCHARAN!
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    28
  • 29. Funciona assim...
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    29
    Ô PHP, toma que é tua!
    (REQUEST)
    Manda aí o arquivo “gostosas.html”
    (RESPONSE)
    Arquivo “gostosas.html”
    (RESPONSE)
    Arquivo “gatas.php” (conteúdo HTML)
    Manda o HTML que eu gerei pro navegador, ele só entende isso!
    Servidor Web
    Navegador Web
    Módulo PHP
    (REQUEST)
    Manda agora o arquivo “gatas.php”
    Arquivo HTML
    Arquivo PHP
    Computador do usuário
    Computador servidor
  • 30. E onde entra o MySQL nessa história?
    O módulo PHP é que tem capacidade de acesso a bancos de dados
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    30
    MySQL
    Módulo PHP
  • 31. Enfim...
    O servidor Web utiliza o módulo PHP para processar requisições que contém scripts server-side naquela linguagem e entregar respostas em HTML ao navegador
    Nesse processo, o módulo PHP pode acessar um SGBD (como, por exemplo, o MySQL) para acessar, inserir, alterar e excluir dados
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    31
  • 32. Conhecer as ferramentas
    Antes de por as mãos à massa, vamos...
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    32
  • 33. O servidor web: Apache
    Por que o Apache?
    Existe desde 1995
    Multiplataforma (IIS)
    Código aberto (IIS)
    Desenvolvido por uma sólida fundação sem fins lucrativos - Apache Foundation (nginx, lighttpd)
    Serve 63% dos websites do mundo (Netcraft.com, maio/2011)
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    33
  • 34. A linguagem de script server-side: PHP
    Por que PHP?
    Existe desde 1995
    Multiplataforma (ASP, ASP.NET)
    Código aberto (ASP, ASP.NET, Ruby, Python...)
    Presente em 63% dos websites do mundo (W3Techs.com, out/2010)
    Conectividade (suporta vários SGBDs), bibliotecas nativas (gráficos, manipulação e (des)compressão de de arquivos...)
    Facilidade em obter ajuda/suporte/emprego...
    (...)
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    34
  • 35. O sistema de gerenciamento de banco de dados: MySQL
    Por que MySQL?
    Existe desde 1995
    Multiplataforma (MS SQL Server)
    Código aberto (MS SQL Server, Oracle, PostgresSQL, Firebird, SQLite...)
    Leve (MS SQL Server, Oracle, PostgresSQL, Firebird, SQLite...)
    Suporte a transações (MS SQL Server, Oracle, PostgresSQL, Firebird, SQLite...)
    Usado por Wikipédia, Wordpress, Facebook...
    Um porém:
    Oracle Corporation: a comunidade de código aberto passou a desenvolver o MariaDB, cuja API é compatível com a do MySQL
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    35
  • 36. Windows + Apache + MySQL + PHP = WAMP
    Pacotes WAMP instalam o Apache, o MySQL e o PHP, em conjunto e pré-configurados, na plataforma Windows
    XAMPP
    EasyPHP
    WampServer
    Para as plataformas Linux (LAMP) e MacOS (MAMP), pacotes semelhantes estão disponíveis
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    36
  • 37. WampServer 2.1
    Apache 2.2.1.7
    PHP 5.3.5
    MySQL 5.5.8
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    37
  • 38. Uma lista telefônica simples
    O primeiro projeto PHP + MySQL, para chamar de seu
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    38
  • 39. Sumário do projeto
    Lista telefônica simples, com nome, telefone e um indicador (“flag”) para distinguir celulares
    Criar a estrutura de um banco de dados no MySQL, utilizando o MySQLWorkbench
    Implementar as quatro operações básicas (CRUD) com os dados da lista telefônica:
    inserir (creation);
    recuper (retrieve);
    atualizar (update); e
    Excluir (delete)
    Utilizar o PSPad para edição de PHP/HTML
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    39
  • 40. Criação do banco de dados
    No MySQLWorkbench
    Configurar a conexão
    Criar um novo banco de dados (schema): lista_telefonica
    Criar uma tabela no banco de dados: tb_contato
    cod_contato – integer, primarykey, autoincrement
    nome – varchar(100)
    telefone – varchar(15)
    celular – boolean
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    40
  • 41. Inserindo dados – o formulário
    Criação do arquivo “inserir.php”
    Forms: métodos (GET e POST) e action
    Campos de formulário
    Botão de salvar/enviar (submit)
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    41
  • 42. Inserindo dados – a gravação no BD
    Criação do arquivo “gravar.php”
    A variável superglobal$_POST
    PDO (PHP Data Objects) versus funções mysql_*
    $db = new PDO('mysql:host=localhost; dbname=lista_telefonica', 'root', '');
    Instrução SQL INSERT
    Redirecionamento de páginas
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    42
  • 43. Recuperando e listando dados
    Criação do arquivo “index.php”
    Colocar link para inserção de novo contato
    Instrução SQL SELECT
    Instrução PHP foreach e sintaxe alternativa
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    43
  • 44. Alterando dados
    Criação do arquivo “atualizar.php”, copiando “inserir.php”
    A variável superglobal$_GET
    Campos ocultos (input type=“hidden”)
    Modificação do arquivo “gravar.php” para aceitar atualização de dados
    Instrução SQL UPDATE
    Modificação do arquivo “index.php” – colocar link para alteração
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    44
  • 45. Excluindo dados
    Criação do arquivo “excluir.php”, copiando “inserir.php”
    Por que POST na exclusão
    Modificação do arquivo “index.php” – adicionar formulário de exclusão
    Confirmação da exclusão com Javascript
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    45
  • 46. Indo além do CRUD
    Otimizando o código e suprimindo as duplicidades – a instrução include
    Validação de dados server-side(PHP)
    Validação de dados client-side(Javascript)
    Trabalhando o aspecto visual da aplicação – CSS (Cascading Style Sheets)
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    46
  • 47. E o ornitorrinco?
    “O ornitorrinco é um pato com todas as alterações pedidas pelo cliente.”
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    47
  • 48. Perguntas
    <?php
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    48
  • 49. Que este minicurso não seja um fim, e sim, um começo...
    <?phpecho “Obrigado!”; ?>
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    49
  • 50. Para aprender mais
    Documentação do PHP(em português): http://www.php.net/manual/pt_BR/
    Documentação do MySQL 5.5 (em inglês): http://dev.mysql.com/doc/refman/5.5/en/index.html
    Referência do HTML 4.01 (em português): http://desenaviegas.com/cover.html
    GUTMANS, Andi; BAKKEN, Stig Saether; RETHANS, Derick. PHP 5 – Programação poderosa. Rio de Janeiro : Alta Books, 2005.
    SILVA, Maurício Samy. Construindo sites com CSS e (X)HTML: sites controlados por folhas de estilo em cascata. São Paulo : Novatec, 2008.
    Siga o autor no Twitter: @maujor
    Introdução ao desenvolvimento Web com PHP e MySQL :: Fausto G. Cintra (fausto@facef.br)
    50