ESTA OBRA PODE SER REPRODUZIDA E DISTRIBUÍDA PARCIAL OU INTEGRALMENTE DESDE QUE CITADA A FONTE.

VENDA PROIBIDA

CID – COORDENADORIA DE INCLUSÃO DIGITAL IDORT – INSTITUTO DE ORGANIZAÇÃO RACIONAL DO TRABALHO EQUIPE CAPACITAÇÃO – ÁREA TÉCNICA

DOUGLAS DINIZ ALVES DANIEL PEREIRA MARTINS PAULO JORDÃO DA SILVA BOCCATTO

site: www.telecentros.sp.gov.br email: capacitatecnica@gmail.com

Indice

Objetivo .............................................................................. 01 Justificativa ......................................................................... 01 Lógica de Programação ......................................................... 03 Seqüência Lógica ................................................................. 03 Exercícios – Lógica ............................................................... 04 PHP – História ...................................................................... 05 O que é PHP? ....................................................................... 06 Em que consiste uma página dinâmica? ................................... 07 Comunicação Cliente x Servidor ............................................. 07 Delimitando o código PHP ...................................................... 08 Exercício 01 ......................................................................... 09 Comentários no PHP ............................................................. 09 Exercício 02 ......................................................................... 10 Variáveis ............................................................................. 11 Exercício 03 ......................................................................... 11 Tipos de Dados Suportados .................................................... 12 Integer (Inteiro) ................................................................... 12 Double (Dupla Precisão) ........................................................ 13 Strings ................................................................................ 13 Exercício 04 ......................................................................... 13 Exercício 05 ......................................................................... 14 Booleano ............................................................................. 14 Array .................................................................................. 14 Objeto ................................................................................ 14 Caracteres de Escape ............................................................ 14

................................................................ 24 For .................................................. 23 Laços ............... 17 Exercício 08 ........................................................................ 24 While ............................................... 15 Operadores ............................................. 25 Exercício 14 ....................................................................................................................................................................................................................................................................................................................................................................................................... 16 Exercício 07 ............................................... 16 Aritméticos .............................................................Exercício 06 ...................................................................................................................................................................................................... 22 Elseif ................................................................... 24 Exercício 13 .................. 25 Include .................................. 20 Métodos GET e POST ....................................... 22 Exercício 11 .................................................................. 17 Incrementação ............................................................................................................. 21 Exercício 10 ................................................................................................................................. 22 Else ..... 18 Lógicos ..................... 20 Exercício 09 ..................................................... 19 Comparação .......................... 19 Integrando o PHP ao HTML ........................... 16 String ........ 26 ...................................................................................... 21 If ................................................................................... 21 Estruturas de Controle ........................................................................................................................................ 25 Exercício 15 .............................................. 23 Exercício 12 . 16 Atribuição ..............................................................

..................................... 38 Comando SELECT ................................................. 33 Como utilizar o SQL para manipular os bancos de dados MySQL ....................................... 46 Apagando resultados ..................................................... 43 Estabelecendo conexões entre PHP e MySql ....................................... 47 Utilizando os resultados ...................................................................... 29 O que é um Sistema de Gerenciamento de Banco de Dados? ............................................................ ................... 46 Número de linhas ............................................................................................................................................................................................................................. 31 PHP MyAdmin ................ 36 Comando SHOW .............. 40 Comando DROP ......................... 36 Comando USE ....................................Array ............................... 27 Exercício 16 ..................................................................................................... 45 Realizando consultas ..................................................................................... 39 Comando DESCRIBE ............................................................................ 42 Roteiro – Criação de B.............................................................................................................................................................................................. 36 Comando CREATE ...... 35 Comandos SQL ............... 47 ...........................................................................................................................................D................................................................................................................ 27 Listas .................... 28 MySql – Banco de Dados ...... 33 MySql .............................. 41 Comando DELETE ....... 44 Selecionando a base de dados ............... 29 Popularização dos Banco de Dados ............... 36 Comando INSERT ..................................... 27 Exercício 17 ................... 41 Comando UPDATE ................

......... 84 ........................................... 48 Projeto ...................................................................................................................... 78 Plano de aula ....................................................................................................... 79 Bibliografia ................................................ 54 Respostas dos exercícios de lógica ......................CRUD ......

PHP & MySql 1 Objetivo Capacitar os colaboradores dos Telecentros com o objetivo de criarem programas voltados à web para manipulação de páginas HTML. . como também desenvolvimento de raciocínio lógico e noções de gerenciamento de banco de dados relacional.

PHP & MySql 2 Justificativa Atualmente. . principalmente no que diz respeito à internet. Com o curso de PHP & MySql poderemos integrar a linguagem de programação com o acesso online onde será possível um ótimo controle das informações através de banco de dados. com o avanço tecnológico. necessitamos cada vez mais da automatização de sistemas para facilitarmos e agilizarmos serviços.

Por último. A habilidade de resolver problemas é natural em todo ser humano. pensamento. seqüência lógica são passos executados até atingir um objetivo ou solução de um problema. portanto. proporciona ao estudante certas técnicas e métodos de fácil aplicação para determinar a correção ou incorreção de todos os raciocínios.PHP & MySql 3 Lógica de Programação O estudo da lógica é o estudo dos métodos e princípios usados para distinguir o raciocínio correto do incorreto. quando é possível localizá-los mais facilmente. conceito. Esta definição não quer dizer que somente uma pessoa que tenha estudado lógica possa raciocinar corretamente e encontrar soluções para diversos problemas. Uma parte do estudo da lógica consiste no exame e na análise dos métodos incorretos do raciocínio (falácias). expressão. razão. Seqüência Lógica Estes pensamentos podem ser descritos como uma seqüência de instruções que devem ser seguidas para cumprir uma determinada tarefa. O valor deste conhecimento reside no fato de ser menor a possibilidade de se cometer erros. Lógica vem de “logos” que significa palavra. isto nos dá uma visão mais profunda dos princípios do raciocínio em geral e nos auxilia também a evitá-los. discurso. .

Uma lesma está num poço de 30m de profundidade.Lógica 1) Quantos retângulos existem na figura abaixo: 2. portanto. . A cada dia ela sobe 3m e escorrega 2m. Em quantos dias sairá do poço? 3) O PRISIONEIRO No antigo Egito. O prisioneiro não sabia nem qual a saída certa nem qual o guarda verdadeiro.PHP & MySql 4 Exercícios . sem levantar a ponta do lápis ou da caneta e acabando no ponto onde começou. para a liberdade e o outro para um fosso de crocodilos. Só os guardas sabiam qual a saída certa. para saber qual a porta certa? 4) Una estes quatro pontos apenas com três retas. Cada saída dava para um corredor diferente em que um dava para o campo e. Qual a pergunta (e uma só pergunta) que o prisioneiro deveria fazer a um dos guardas ao acaso. cada uma delas com um guarda. havia um prisioneiro em uma cela com duas saídas. mas um deles dizia sempre a verdade e outro mentia sempre.

No final de 1998. Rasmus nomeou essa versão de PHP/FI (Personal Home Page / Forms Intepreter) e decidiu disponibilizar seu código na web. dando início ao PHP 3. a possibilidade de conexão com vários bancos de dados. bem como receber ajuda e correção de bugs. em 1995. com base no PHP/FI 2. para compartilhar com outras pessoas. À medida que essa ferramenta foi crescendo em funcionalidades. o PHP já estava presente em cerca de 10% dos domínios na internet. dois estudante que utilizavam PHP em um projeto acadêmico de comércio eletrônico. No mesmo ano Andi Gutmans e Zeev Suraski. Naquele momento. novos protocolos. No início era formada por um conjunto de scripts voltados à criação de páginas dinâmicas que Rasmus utilizava para monitorar o acesso ao seu currículo na internet. reescreveram todo o código-fonte.PHP & MySql 5 PHP . disponibilizando oficialmente em junho de 1998.História A linguagem de programação PHP foi criada no outono de 1994 por Rasmus Lerford. Rasmus teve de escrever uma implementação em C. Dentre as principais características do PHP 3 estavam e extensibilidade. a qual permitia às pessoas desenvolverem de forma muito simples as suas aplicações para web. suporte à orientação a objetos e uma nova API. Para tanto. aproximadamente 50 mil domínios ou 1% da internet já utilizava PHP. uma sintaxe mais consistente. Nessa época o significado da sigla PHP mudou . resolveram cooperar com Rasmus para aprimorar o PHP. que possibilitava a criação de novos módulos e que acabou por atrair vários desenvolvedores ao PHP. Em novembro de 1997 foi lançada a segunda versão do PHP.

retratando assim a nova realidade de uma linguagem com propósitos mais amplos. além da abstração de sua API. Essa linguagem é diferente de outras . Apesar de todos os esforços. onde sua principal função é a de criação de scripts. tendo em vista melhorar sua performance e modularidade em aplicações complexas. trazendo muitas melhorias e recursos novos. o PHP já estava presente em cerca de 20% dos domínios da internet. ou mecanismo Zend (Zeev + Andi).Hypertext Processor – É uma linguagem de programação de código aberto muito utilizada. utiliza-se PHP para criar páginas dinâmicas e automáticas. O que é PHP? PHP . como seções.PHP & MySql 6 para PHP: Hypertext Processor. que são executados no servidor web para a manipulação de página HTML. baseado neste mecanismo. Para tanto. após um longo período de desenvolvimento que culminou com sua disponibilização oficial em junho de 2004. Zeev e Andi começaram a trabalhar em uma reescrita do núcleo do PHP. após o lançamento do PHP 3. No inverno de 1998. Nesse momento. O PHP 4. resolveram batizar este núcleo de Zend Engine. suporte a diversos servidores web. o PHP ainda necessitava maior suporte à orientação a objetos. tal qual existe em linguagens como C++ e Java. foi lançado oficialmente em maio de 2000. ou seja. além de ser utilizado por milhares de desenvolvedores ao redor do mundo. permitindo inclusive ser utilizado com linguagem para shell script. Tais recursos estão finalmente presentes no PHP 5.

que as páginas não existem e são “geradas” com informações que estão em bases de dados. Comunicação Cliente x Servidor Quando é digitado um endereço no navegador para acessar uma página na internet o que acontece é uma requisição do cliente (navegador) ao servidor web. ou seja. que por sua vez. Esse procedimento acontece em todas as requisições feitas pelo navegador.PHP & MySql linguagens. a página que chega ao utilizador não existe “escrita” no servidor. Uma vez enviada a resposta é encerrado o contato entre o servidor e o cliente.e impensável . Existem sim os conteúdos. Quer isto dizer. na página. Portanto. interpreta o código retornado e formata a página para a sua visualização. consoante os pedidos. quando fazemos um pedido sobre qualquer coisa. processá-lo e enviar a resposta dinâmica. O melhor exemplo de um site dinâmico é um motor de pesquisa. quando fazemos diversas pesquisas. que serão depois colocados nos respectivos locais. . onde o código é interpretado e não compilado. É impossível . toda a página que é gerada quando existe um pedido no servidor.armazenar todas as combinações de páginas que surgem. O servidor processa essa requisição e retorna uma resposta ao cliente. 7 Em que consiste uma página dinâmica? Entende-se por uma página dinâmica. programar para a web pode ser considerado como um jogo que consiste em receber os dados do usuário.

PHP & MySql Visualização: 8 CLIENTE SERVIDOR WEB Delimitando o código PHP O código PHP fica embutido no próprio HTML. .ini. O navegador cliente receberá apenas o resultado do processamento. Tudo que estiver delimitado por <? e ?> / <?php e ?> / <% e %> será processado no servidor. O interpretador identifica quando um código é PHP pelas seguintes tags: <?php comandos ?> <? comandos ?> <% comandos %> Nota: O delimitador <% %> de alteração no arquivo de configuração php.

PHP & MySql 9 Nota: NO PHP TODAS AS INTRUÇÕES SÃO TERMIDADAS COM O CARACTERE “. utilizamos os caracteres “//” para comentar a linha que não será processada. podendo.e -->. assim incluir ou não o '. Em HTML utilizamos os delimitadores <!-. Exercício 01 <?php echo “Olá Mundo”. e “*/” para fechar o comentário.” (ponto e virgula). utilizamos os separadores “/*” no inicio do bloco. Para um bloco de linhas. Este caractere indica ao interpretador quando acaba uma instrução. ?> Resultado: Olá Mundo Comentários no PHP Com a idéia de organizar o programa para fácil visualização podemos inserir COMENTÁRIOS. A exceção deste caso é quando um bloco de código PHP só contem uma única instrução. . Para tal. em PHP também é possível comentar partes de um código. e quando ele deve de esperar outra instrução. quando se quer comentar uma única linha.' .

php”.PHP & MySql Exemplo: <?php // Uma linha de comentário. A primeira linha e <u>normal</u>. /* Um Simples bloco de comentário !!! */ ?> 10 Exercício 02 Veja no exercício abaixo como o PHP interage com o HTML. para digitar e testar o código abaixo. Salve na pasta indicada pelo seu instrutor com o nome de “ecoando. Utilize um editor de texto puro (como o gedit) ou editor web (como o BlueFish).php Obs: Onde estiver escrito <endereço> digite o local indicado pelo seu instrutor. <br> <? echo“<b>A segunda linha já é escrita pelo <b>PHP</b>. abra um navegador e digite o endereço: http://localhost/<endereço>/ecoando. ?> .”.

João . $nome”. a quarta <font color=\“#0000FF\”>ainda complicada!” . $sobrenome=“de Souza”. Veja os exemplos a seguir: Exercício 03 <?php $nome=“João”...PHP & MySql 11 <br> Nisto. ?> Variáveis Variáveis são identificadores utilizados para representar valores mutáveis e voláteis. sempre procedido pelo caractere $ (cifrão). echo “$sobrenome. precisamos atribuir-lhe um nome de identificação. Ela são armazenadas na memória RAM e seu conteúdo é distribuído após a execução do programa. <br> <? echo “E logo a<font color=\“#00FF00\”>seguir</font>. Para criar uma variável em PHP. que só existem durante a execução do programa. vem uma <font color=\“#FF0000\”>terceira mais complexa</font>. ?> Resultado: de Souza.

Veja como declarar uma variável do tipo inteiro: $curso =1000. // número inteiro positivo $curso = -1000. <?php $codigo_cliente //exemplo de variável $codigoCliente //exemplo de variável ?> Tipos de Dados Suportados Integer (Inteiro) É utilizado para números inteiros.PHP & MySql Dicas:   12 Nunca inicie a nomenclatura de variáveis com números. // número inteiro negativo .  Utilize preferencialmente palavras em minúsculo (separadas pelo caractere “_”) ou somente as primeiras letras em maiúsculo quando houver mais palavras.  Nunca utilize caracteres especiais: (!@#%^&*/|[]{}) na nomenclatura das variáveis.  Evite criar variáveis com mais de 15 caracteres em virtude da clareza do código fonte. Nunca utilize espaços em branco no meio do identificador da variável.  Nomes de variáveis devem ser significativos e transmitir a idéia de seu conteúdo dentro do contexto no qual a variável está inserida.

$teste --.\n”. podendo fazer cálculos com grande precisão.PHP & MySql Double (Dupla Precisão) 13 É utilizado para números reais. todas as variáveis dentro da string serão resolvidas. As strings podem ser delimitadas de duas maneiras:  Com aspas duplas ('' ''). ?> Resultado: --. // Notação científica (equivale a 52000) Strings É utilizado para strings de caracteres. Veja os exemplos abaixo: $curso = 1.050. a string permanece como aparece. $php= “--. // O ponto é o separador decimal $curso = 52e3. sem substituições. .Linux -- Com o uso de apóstrofos (' '). echo $php. Exercício 04 <?php $teste = “Linux”.

Internamente eles são substituídos pelos caracteres reais e pelas ações que esses caracteres simbolizam. echo $php. Caracteres de Escape Os caracteres de escape começam com uma barra invertida (\) e são colocados dentro das strings. ?> Resultado: --. . Array É utilizado para armazenar vários itens de dados do mesmo tipo em uma única variável. $php= '--. Objeto É utilizado para armazenar instâncias de classes.$teste --.\n'.PHP & MySql 14 Exercício 05 <?php $teste = “Linux”.$teste ---\n Booleano É utilizado para valores verdadeiros (True) ou falsos (False).

PHP & MySql 15 \n \r \t \\ \$ \” Nova linha. Coloca o cursor no começo da linha. Substitui por um cifrão. Retorno de carro (semelhante a \n). </font> <br> <font color= <? echo $cor2 ?>> A variável $real tem o valor <? echo $real ?> </font> <br> <font color= <? echo $cor1 ?>> O caractere escolhido e o <? echo $caracter ?> </font> . Cifrão. salve o arquivo na pasta indicada pelo seu instrutor com o nome de “variaveis. Exercício 06 No exercício abaixo é mostrada a forma como o PHP utiliza variáveis.php Exemplo de utilização de variáveis: <br><br> <?php $inteiro=10. Tabulação horizontal. ?> <font color= <? echo $cor1?>> A variável $inteiro tem o valor <? echo $inteiro ?>. Aspas. abra um navegador e digite o endereço http://localhost/<endereço>/variaveis.0. Substitui por aspas. Barra invertida. $caracter= 'V'. $cor1= "#FF0000". Utilizando um editor de texto puro (como o gedit) ou editor web (como o BlueFish). Pula para a próxima tabulação.php”. $cor2= "#0000FF". Substitui por uma barra invertida. $real=20. Desce para a linha de baixo.

“\n”). que é o operador de concatenação “. Os principais são: + * / % Adição Subtração Multiplicação Divisão Resto da divisão String O PHP possui um único operador de string. Veja o exemplo abaixo: Exercício 07 <?php $x=“Alô ”.” . echo($s. $s=$x.PHP & MySql 16 Operadores Aritméticos O PHP possui todos os operadores aritméticos. ?> Resultado: Alô Mundo .“Mundo”.

Atribuição com módulo.PHP & MySql Atribuição O único operador de atribuição do PHP 17 é o “=”. echo $curso. pode reduzir o tamanho do código. Este. Veja o exemplo abaixo. Atribuição com concatenação. = += -= *= /= %= . combinado com os operadores aritméticos e de string. $curso += 2. Exercício 08 <?php $curso = 7.= Atribuição simples. Atribuição com Multiplicação. ?> Resultado: 9 . Atribuição com adição. Atribuição com divisão. Atribuição com subtração.

as duas calculam o resto da divisão da variável $resto por 2. ++ Incremento .” é equivalente à operação “$resto=$resto%2. Quando utilizado depois.Decremento . O incremento de uma variável soma 1 unidade à uma variável e armazena o resultado na mesma.”. Incrementação: Pode ser utilizada de duas formas: antes ou depois da variável. retorna o valor da variável já incrementado ou decrementado.PHP & MySql 18 Veja outro exemplo utilizando a atribuição com módulo (resto de divisão): <?php $resto = 11. echo $resto.. A operação “$resto %=2. ?> Resultado: 1 No exemplo acima inicialmente a variável $resto possuí valor 11. Quando utilizado antes. isto é. retorna o valor da variável antes de incrementá-la ou decrementá-la. $resto %= 2. O decremento subtraí uma variável em 1 unidade.

// $a e $b recebem o valor 10 $c=$a++. // $d recebe + 1 unidade e passa a valer 12 Lógicos 19 Os operadores lógicos trabalham com os valores completos. // $c recebe 10 e $a passa a ter 11 $d=++$b. == != <> < > <= >= igual a Diferente de Diferente de menor que maior que menor ou igual a maior ou igual a Significado “e” lógico “ou” lógico Não (inversão) “e” lógico “ou” lógico Exemplo $a and $b $a or $b !$b $a && $b $a || $b . utilizando TRUE ou FALSE. Operador and or ! && || Comparação Os operadores de comparação são usados para comparar dois valores.PHP & MySql Exemplos: $a=$b=10. valor de $b já incrementado $d++. // $d recebe 11.

porém é acionado por meio da diretiva METHOD=POST. Métodos GET e POST O GET é um método do HTTP destinado a enviar dados do cliente para o servidor. Logo após o formulário ter sido enviado.PHP & MySql 20 Integrando o PHP ao HTML Nesta seção. .com/meuscript. O POST é outro método do HTTP similar ao GET. Quando o formulário HTML utiliza o método GET.cgi?campo1=valor1&campo2=va lor2. É acionado por meio de um formulário HTML através da diretiva METHOD=GET incluída na tag <FORM>. pode ver algo como: http://www. devemos sempre lembrar qual método estamos usando a fim de determinarmos se iremos ler os dados do vetor $_POST ou $_GET. vamos criar uma página dinâmica para processar os dados enviados pelo formulário. Esta forma de endereçamento e separação pode ser observada no campo de endereços do navegador do usuário.meusite. Os valores dos campos passados pelos formulários ficam armazenados nos vetores $_POST e $_GET conforme o método de envio. o fluxo de dados é separado do endereço URL que chama a CGI através de um ponto de interrogação (?). Este método faz com que os dados do formulário sejam diretamente transmitidos ao endereço que constar da diretiva ACTION= e não através da URL. Ao escrevermos nossos scripts.

php” e digite o endereço http://localhost/<endereço>/formulario. o que representa uma falha de segurança. <?php $nome = $_POST['nome'].php no seu navegador para testá-lo.PHP & MySql 21 Dica: Sempre que possível.php”> Digite seu Nome:<input type=“text” name=“nome” value=“”> <input type=“submit” value=“Enviar”> </form> Estruturas de Controle If O comando if testa a condição passada e executa o bloco de código caso o valor retornado da condição seja verdadeiro. Exercício 09 Salve seu arquivo com o nome de “formulario. */ echo “O meu nome é: ” . Veja o exemplo a seguir: . $nome. pois através do método GET os dados enviados ficam mais expostos através da URL no navegador./*atribuindo o valor do formulário na variável $nome. deve-se utilizar o método POST. ?> <form method=“POST” action=“formulario.

} else { echo “não é igual”. } ?> Resultado: Não é igual Else Caso a condição passada retorne um valor falso. } else . Veja o exemplo a seguir: Exercício 11 <?php $a = 1. if ($a > $b) { echo “$a > $b”. e seja necessário executar um bloco de código diferente.PHP & MySql 22 Exercício 10 <?php $a = 1. if ($a == 5) { echo “é igual”. $b = 2. utiliza-se a instrução else.

if ($a > $b) { echo “$a e&acute. } elseif ($a > $c) { echo “$a e&acute. } ?> .PHP & MySql 23 else ?> { echo “$b > $a”. } else { echo “$a e&acute. maior que $c”. maior que $b”. } Resultado: 2>1 ElseIf Ainda existe a instrução elseif. $c=3. $b=2. menor que $b e $c”. Veja o exemplo a seguir: Exercício 12 <?php $a=1. para situações onde precisa-se verificar mais que uma condição.

$a++. e caso a condição inicial que foi passada se torne falsa.PHP & MySql Resultado: 1 é menor que 2 e 3 24 Laços While Este comando é utilizado para realizar laços de repetições condicionais.“<br>”. while ($a<5) { echo $a. $a=1. } ?> Resultado: Exemplo de While 1234 . Veja o exemplo a seguir: Exercício 13 <?php echo “Exemplo de While”. Ele executa o bloco de código enquanto a condição passada for verdadeira. o bloco não será executado.

porém. for ($i=1. Veja o exemplo abaixo: Exercício 14 <?php echo “Exemplo de For”. com ou sem código em PHP. este comando necessita de mais dois parâmetros. } ?> Resultado: Exemplo de For 12345678910 Include A função include coloca o conteúdo de um outro arquivo. que sejam usados “includes” dentro de estruturas de controle como for e while. o comando for também precisa de uma condição para ser testada a cada laço realizado. $i++) { echo $i.“<br>”. $i<=10. permitindo assim. Veja o exemplo a seguir: . O código do arquivo incluído é processado em tempo de execução. substituindo pelo novo código.PHP & MySql For 25 Como nos outros comandos que realizam laços condicionais. que seriam a declaração da variável contadora e a instrução de incremento.

echo “Teste D”. . echo “Teste D”. include “externo.php <?php echo “Teste C”.“<br>”.“<br>”.PHP & MySql 26 Exercício 15 Programa: teste.“<br>”.php”. echo “Teste B”. ?> Programa: externo. echo “Teste B”.php <?php echo “Teste A”. ?> O programa com o comando include ficaria da seguinte forma: <?php echo “Teste A”. ?> O comando include é muito utilizado quando você quer definir funções ou variáveis que serão utilizadas com freqüência em várias páginas de um site. echo “Teste C”.“<br>”.

PHP & MySql

27

Array
É um tipo de variável que possui seu conteúdo agrupado por índices, como um vetor ou um dicionário. Estes índices podem ser de qualquer tipo suportado pelo PHP. Pode-se criar um array usando as funções list() ou array(), ou pode-se atribuir explicitamente o valor de cada elemento. Também é possível criar uma array, simplesmente adicionando-se valores ao array. Veja o exemplo abaixo:

Exercício 16
<?php $array[0] = "Curso"; $array[1] = "HP"; $array[“MPB”] = "Gilberto Gil"; echo $array[0]. "<br>"; echo $array[1]. "<br>"; echo $array[“MPB”]. "<br>"; ?>

Listas
As listas são utilizadas em PHP para realizar várias atribuições, como por exemplo, atribuir valores de uma array para variáveis, como mostra o exemplo a seguir: <?php list($a, $b, $c) = array(0 => “abacaxi”, 1 => “pera”, 2 => “laranja”); ?>

PHP & MySql

28

O programa acima atribuirá simultaneamente e respectivamente os valores do array às variáveis passadas como parâmetros para o comando list. É muito importante lembrar que só serão passadas ao comando list os elementos do array que possuírem os índices com valores inteiros e não negativos.

Exercício 17
O exercício abaixo mostra a utilização de vetores e listas. Salve seu arquivo com o nome de “listas.php” na pasta habilitada e digite o endereço http://localhost/<endereço>/listas.php no seu navegador para testá-lo. <?php $meses=array(“Janeiro”,“Fevereiro”,“Março”,“Abril,“Maio”,“ Junho”,“Julho”,“Agosto”,“Setembro”,“Outubro”,“Novembro”,“D ezembro”); ?> Ciclo While <br><br> <? $mes=0; while ($mes<=11) { echo “Mês: $meses[$mes] <br>”; $mes++ ; } ?> <br><br><br> Ciclo For <br><br> <? for ($mes=0; $mes<=11; $mes++) { echo “Mês: $meses[$mes] <br>”; } ?>

PHP & MySql

29

MySql – Banco de Dados
No mundo atual existem gigantescos bancos de dados gerenciando nossas vidas. Nossa conta bancária faz parte de uma coleção imensa de contas bancárias de nosso banco. Nosso Título Eleitoral ou nosso Cadastro de Pessoa Física, certamente estão armazenados em Bancos de Dados colossais. Sabemos também que quando sacamos dinheiro no caixa eletrônico de nosso banco, nosso saldo e as movimentações existentes em nossa conta bancária já estão à nossa disposição. Nestas situações sabemos que existe uma necessidade em se realizar o armazenamento de uma série de informações que não se encontram efetivamente isoladas umas das outras, ou seja, existe uma ampla gama de dados que se referem a relacionamentos existentes entre as informações a serem manipuladas. Para gerenciar tantos dados como os citados são utilizados os Sistemas de Gerenciamento de Banco de Dados (SGBD). Sem tais sistemas o mundo atual estaria bastante diferente de como vemos hoje. O mercado financeiro atual não existiria. As praticidades, como compras pela Internet, cartões de débito, caixas automáticos e mais uma infinidade de exemplos, não seriam possíveis.

Popularização dos Bancos de Dados
Há poucas décadas, os bancos de dados eram utilizados apenas por grandes instituições. O seu uso era restrito aos grandes negócios, onde simplesmente seria impossível a operação de certas indústrias ou

PHP & MySql empresas.

30

Com a popularização e barateamento da plataforma IBM/PC, logo surgiram programas aplicativos para algum tipo de armazenamento de dados. Antes desses equipamentos e softwares tornarem-se acessíveis, muitas vezes eram utilizadas fichas cadastrais para armazenar dados de clientes em pequenos e médios negócios (essas fichas e armários de fichários são ainda hoje utilizados em alguns locais). Para se entender como isso funcionava, vamos usar um exemplo de uma pessoa que ao visitar uma clínica médica/odontológica fornecia seu nome, endereço, telefone etc. Esses dados eram então anotados nessas fichas, que eram a única maneira de se guardar as informações de clientes, pacientes, estudantes, peças numa oficina mecânica etc. Exemplo de ficha cadastral:

Nº de cadastro: 19.000/2 Nome: Fulano Beltrano Santos.........................RG Nº:165.956.401/26 Endereço: Rua Alpha, Nº 308 Bairro Cariru Cidade: 5555 Problema encontrado: Paciente apresentava constipação. Quando era necessário saber o número de telefone de um cliente chamado “Raoni Guimarães Villar de Pinho” era preciso abrir o Ituporanga-SP......................................Fone: (79)5555-

PHP & MySql

31

fichário, encontrar a letra R e ir olhando aos poucos onde havia o nome Raoni. Se fosse preciso saber, em uma escola, se o aluno “Artur Magno Horta de Abreu” havia repetido alguma série, era preciso verificar as fichas que continham os históricos escolares, depois procurar pelo histórico do aluno e ainda procurar nessa ficha se o aluno havia repetido alguma série. No caso de uma farmácia, saber quais produtos custavam mais que R$ 5,00 seria extremamente difícil, e nada disso era feito. Atualmente os bancos de dados estão por toda parte, desde a farmácia da esquina até a lojinha do posto de gasolina.

O que é um Sistema de Gerenciamento de Banco de Dados?
Um SGBD - Sistema de Gerenciamento de Banco de Dados é uma coleção de programas que permitem ao usuário definir, construir e manipular Bancos de Dados para as mais diversas finalidades. Um SGBD deve possuir as seguintes características: Controle de Redundâncias A redundância consiste no

armazenamento de uma mesma informação em locais diferentes, provocando inconsistências. Em um Banco de Dados as informações só se encontram armazenadas em um único local, não existindo duplicação descontrolada dos dados. Quando existem replicações dos dados, estas são decorrentes do processo de armazenagem típica do ambiente Cliente-Servidor, totalmente sob controle do Banco de Dados.

em linguagem natural. Controle de Integridade . não sendo uma “caixa-preta” somente sendo passível de ser acessada por aplicações.O SGBD deve incluir software de controle de concorrência ao acesso dos dados. Assim um usuário poderá realizar qualquer tipo de acesso. em SQL ou ainda via menus de acesso. Esquematização . através da existência de .Um Banco de Dados deverá disponibilizar formas de acesso gráfico.Um Banco de Dados deverá impedir que aplicações ou acessos pelas interfaces possam comprometer a integridade dos dados. outros poderão ler alguns dados e atualizar outros.Um Banco de Dados deverá fornecer mecanismos que possibilitem a compreensão do relacionamento existente entre as tabelas e sua eventual manutenção. garantindo em qualquer tipo de situação a escrita/leitura de dados sem erros. Controle de Acesso - O SGDB deve dispor de recursos que possibilitem selecionar a autoridade de cada usuário. Cópias de segurança . Interfaceamento . e outros ainda poderão somente acessar um conjunto restrito de dados para escrita e leitura.PHP & MySql 32 Compartilhamento dos Dados .O SGBD deverá apresentar facilidade para recuperar falhas de hardware e software.

O MYSQL é um software cujo código fonte é aberto. É bastante amigável e útil para aquele que não se sente muito confortável com SQL. Para acessar a ferramenta digite a seguinte URL no navegador: http://localhost/phpmyadmin MySql É um Sistema de Gerenciamento de Bancos de Dados relacional. Em certos casos pode ocorrer de um SGBD não obedecer uma ou outra regra das vistas acima. Php MyAdmin É uma ferramenta de administração de banco de dados MySql implementada em PHP com interface web. Isso proporciona velocidade e flexibilidade. exigindo minimamente a intervenção de pessoal técnico. Porém alguns “Bancos de Dados” atualmente comercializados não são SGBD reais. justamente por não atenderem algumas dessas características. Se você quiser pode estudar o código fonte e alterá-lo para adequá-lo às . Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar todos os dados em um só local.PHP & MySql 33 arquivos de “pré-imagem” ou de outros recursos automáticos. mas ainda assim continuar sendo considerado um SGBD. onde é possível para qualquer um usar e modificar o programa. Qualquer pessoa pode fazer download do MySQL pela Internet e usá-lo sem pagar nada (o MySQL só é cobrado em alguns poucos casos).

Unix. “1” e “10101010”.fsf. FreeBSD. Os nomes das tabelas e dos campos são de fundamental importância para nossa compreensão entre o que estamos armazenando.O MySQL suporta diferentes plataformas.PHP & MySql 34 suas necessidades. entre outros. tais como: Windows. Linux. número e RG Gerente). . . O MySQL usa a GPL (GNU . A primeira linha possui valores “Contabilidade”.org/licenses. sendo que o campo Número é chave primária (impede que existam 2 registros iguais no banco de dados). Exemplo de Banco de dados Tabela de DEPARTAMENTO Nome Contabilidade Engenharia Civil Engenharia Mecânica Engenharia Elétrica Número* 1 2 3 4 RG Gerente 10101010 30303030 20202020 40202020 Há 3 campos na tabela DEPARTAMENTO (nome. para definir o que você pode e não pode fazer com o software em diferentes situações ou se preferir adquirir a versão comercial licenciada. onde estamos armazenando e qual a relação existente entre os dados armazenados.General Public License Licenca Pública Geral GNU) http://www.

no que concerne ao seu tratamento.PHP & MySql 35 Cada registro de nossa relação será chamado de linha e cada coluna de nossa relação será chamada de ATRIBUTO. os dados armazenados no Banco de Dados. As relações não podem ser duplicadas (não podem existir dois estados do Pará. Portanto. são formados pelas instâncias das relações. a ordem de entrada de dados no Banco de Dados não deverá ter qualquer importância para as relações. por exemplo). Como utilizar a SQL para manipular os bancos de dados MySQL O SQL possui comandos que são utilizados para manipular os bancos de dados. nada mais é que os campos (colunas) existentes em uma tabela. no conjunto de estados brasileiros. Para acessar o banco de dados SQL via terminal (linha de comandos) proceda da seguinte forma: mysql -u usuario -p <enter> digite a senha de acesso ao banco <enter> mysql: (Neste ponto o banco está pronto para ser usado!) . as tabelas e os registros existentes. Já a instância da relação consiste no conjunto de valores que cada atributo assume em um determinado instante. O esquema de uma relação.

Sintaxe: SHOW DATABASES. Sintaxe: CREATE DATABASE < nome_db >. . onde: nome_db indica o nome do Banco de Dados a ser criado. Comando CREATE Este comando permite a criação de bancos de dados ou de tabelas num banco de dados. Sintaxe: CREATE TABLE < nome_tabela > ( nome_atributo1 < tipo > [ NOT NULL ]. (Mostra os bancos de dados existentes no MySql) SHOW TABLES. Sintaxe: USE nome_do_banco.PHP & MySql 36 Comandos SQL Comando SHOW Mostra os bancos de dados e tabelas existentes. Exemplo: CREATE DATABASE curso. (Exibe as tabelas existentes no banco) Comando USE Seleciona um bancos de dados para ser utilizado.

PHP & MySql nome_atributo2 < tipo > [ NOT NULL ]. tipo: indica a definição do tipo de atributo ( integer(n). char(n). onde: nome_tabela indica o nome da tabela a ser criada.. na tabela. .. dois registros iguais.. Ele mantém a integridade do banco de dados. 37 PRIMARY KEY: esse é o campo utilizado para que não exista. . nome VARCHAR(20) NOT NULL . ).. PRIMARY KEY(codigo) ).. nome_atributoN < tipo > [ NOT NULL ] PRIMARY KEY(nome_atributo) ) . . Exemplo: CREATE table alunos( codigo int NOT NULL AUTO_INCREMENT... nome_atributo: indica o nome do campo a ser criado na tabela. Caso você tente inserir num banco de dados um registro com uma PRIMARY KEY já existente ele emitirá uma mensagem de erro e impedirá que o registro seja inserido. telefone CHAR(8) NOT NULL.

campo2 . 20202020- 1111111121.Nomes dos campos aos quais os dados devem ser inseridos.1111111120.1. valor1. campo2] VALUES (valor1. A instrução INSERT INTO possui as partes abaixo: Destino . Você deve separar os valores com uma vírgula e colocar os campos de textos entre aspas (“ ”). 1 2 RG Sup. 2. valor2 no campo2 e assim por diante.”.3000). Pedro 101010101 Fernando 202020202 INSERT INSERT INTO INTO funcionarios funcionarios ('Pedro'.2. 101010101.Valores para inserir nos campos especificados do novo registro. Cada valor é inserido no campo que corresponde à posição do valor na lista: Valor1 é inserido no campo1 do novo registro. NULO 333333333 Salário 3000 2700 INTO destino [campo1. veja a inclusão dos 2 primeiros registros: Nome RG CPF 11111111-21 22222222-20 VALUES VALUES Depto. campo1. valor2 . . Sintaxe básica: INSERT valor2).333333333.PHP & MySql 38 Comando INSERT Adiciona um ou vários registros a uma tabela.O nome da tabela em que os registros devem ser anexados.2700). ('Fernando'. Seguindo o exemplo da tabela funcionários.

Sintaxe básica: SELECT [DISTINCT] expressao [AS nome-atributo] [FROM from-lista] [WHERE condicao] [ORDER BY attr_name1 [ASC | DESC ]] onde: DISTINCT: Elimina linhas duplicadas na seleção. Contém a condição que as linhas devem obedecer a fim de serem listadas. ORDER BY: Critério para ordenação dos registros selecionados. WHERE: Condição para que um registro seja selecionado. de acordo com seu argumento. FROM: Lista das tabelas onde a pesquisa será feita.PHP & MySql 39 Comando SELECT Realiza uma seleção de informações existentes nas tabelas. . Where como base das Restrição de linhas A cláusula “where” restringe a seleção de dados. literais. EXPRESSÃO: Define os dados que queremos selecionar. expressões aritméticas ou funções. utilizando DESC a ordem será decrescente. Ela pode comparar valores em colunas. normalmente uma ou mais colunas de uma tabela que está em from-lista. Utilizando ASC a ordem será crescente. AS nome-atributo: Define um alias (apelido) para o nome da coluna.

000 no campo população. Sintaxe: DESCREIBE nome_da_tabela. rg FROM funcionarios WHERE salario>3000.PHP & MySql 40 A seguir apresentamos operadores lógicos e complementares a serem utilizados nas expressões apresentadas em “where”: Exemplos: SELECT cidade. Comando DESCRIBE Exibe a descrição da tabela. Selecionará os campos cidade e estado da tabela brasil de todos os registros que tiverem valor maior que 100. Selecionar quantas pessoas existem cadastradas: SELECT COUNT(*) FROM funcionarios. Selecionar quantos funcionários existem no departamento 3: SELECT COUNT(*) FROM funcionarios WHERE depto=3. Selecionará todos os campos da tabela cidadão e utilizará ordenação decrescente na seleção. estado FROM brasil WHERE populacao > 100000. . SELECT * FROM cidadao ORDER BY nome DESC. Selecionar o nome e o rg dos funcionários que ganham mais que 3000 reais: SELECT nome.

Se você quiser excluir valores de um campo específico. (Exclui o banco de dados) Comando DELETE Remove registros de uma ou mais tabelas listadas na cláusula FROM que satisfazem a cláusula WHERE. Após remover os registros usando uma consulta DELETE você não poderá desfazer a operação. Sintaxe: DELETE FROM tabela WHERE critério. use o comando UPDATE que mude os valores dos campos para NULL. .PHP & MySql 41 Comando DROP Elimina a definição da tabela. Sintaxe: DROP TABLE nome_da_tabela. Fazendo a operação: DELETE FROM funcionarios WHERE salario>7999. (Exclui a tabela) DROP DATABASE nome_do_banco. onde: TABELA: O nome da tabela de onde os registros serão excluídos. seus dados e referências ou um banco de dados existente. CRITÉRIO: Uma expressão que determina qual registro deve ser excluído. O comando DELETE exclui registros inteiros e não apenas dados em campos específicos.

. Sintaxe: UPDATE tabela SET campo1 = valornovo.PHP & MySql 42 (Excluirá da tabela funcionários todos os registros onde o salário é menor que 7999. Onde: TABELA: O nome da tabela onde você quer modificar os dados.. atualizados. para que os funcionarios que integram o depto 3 passem a pertencer ao depto 5: UPDATE funcionarios SET depto=5 WHERE depto=3. VALORNOVO: Uma expressão que determina o valor a ser inserido no campo do registro que será atualizado. WHERE critério. Utilizando a cláusula UPDATE é possível alterar os registros da tabela funcionários. CRITÉRIO: Uma expressão que determina quais registros devem ser atualizados. Caso fosse necessário dar um aumento de 20% de salário aos Só os registros que satisfazem a expressão são .. O comando UPDATE é bastante útil quando você quer alterar muitos registros ou quando os registros que você quer alterar estão em várias tabelas.) Comando UPDATE O comando UPDATE altera os valores de alguns campos de uma tabela especificada. Você pode alterar vários campos ao mesmo tempo. com base em critérios específicos.

'cachorro'. Crie um banco de dados com o comando: CREATE DATABASE animais. 'papagaio'. 'M'). dono VARCHAR (20). . Passe a utilizar o banco de dados animais nas suas consultas: USE animais. Insira algumas entradas nesta tabela: INSERT INTO pet VALUES ('Pluto'. 4. dono. 2. 5. INSERT INTO pet VALUES ('Rex'. 3. Obtenha detalhes da tabela: DESCRIBE pet. Utilize os comandos vistos anteriormente para manipular os bancos de dados: Roteiro – Criação de Banco de Dados 1.2 WHERE salario. 'Edgar'. 'Carlos'. 'M'). 'F'). INSERT INTO pet VALUES ('Loro'. 'cachorro'. Crie uma tabela chamada PET com os campos nome. especie e sexo CREATE TABLE pet (nome VARCHAR (20). 6.PHP & MySql 43 funcionários que ganham menos de 3000 reais o comando seria o seguinte: UPDATE funcionarios SET salario=salario+salario*0. sexo CHAR (1) ). 'Marisa'. especie VARCHAR (20). Liste as tabelas do banco: SHOW TABLES.

Remova uma entrada desta tabela: DELETE FROM pet WHERE nome='Pluto'. . Liste o conteúdo da tabela: SELECT * FROM pet. Liste novamente todo o conteúdo da tabela. Estabelecendo conexões entre PHP e MySql Para acessar bases de dados num servidor MySQL. string [login]. Especifique as colunas que quer observar em sua consulta: SELECT especie. Faça uma consulta mais sofisticada: SELECT * FROM pet WHERE (especie=“cachorro” AND sexo=“M”) OR (especie=“papagaio” AND sexo=“F”). Remova o banco: DROP DATABASE animais. nome FROM pet. 44 9. 8. Remova a tabela DROP TABLE pet. Para isso. string [senha]). é necessário antes estabelecer uma conexão. Altere uma entrada desta tabela: UPDATE pet SET dono = 'Carlos' WHERE nome='Rex'. e verifique o que foi alterado 10. 13. 14.PHP & MySql 7. 12. deve ser utilizado o comando mysql_connect: int mysql_connect(string [host[:porta]]. 11.

Selecionando a base de dados Depois de estabelecida a conexão. o interpretador PHP verifica se já existe uma conexão estabelecida com o mesmo host. Se existir. Uma conexão estabelecida com o comando mysql_connect é encerrada ao final da execução do script. o identificador desta conexão é retornado.PHP & MySql 45 O valor de retorno é um inteiro que identifica a conexão. que segue o seguinte modelo: int mysql_select_db(string base. Novamente. . Senão. é preciso selecionar a base de dados a ser utilizada. Para encerrá-la antes disso deve ser utilizado o comando mysql_close. uma nova conexão é criada. a última conexão estabelecida será utilizada. ou falso se a conexão falhar. a última conexão estabelecida será encerrada. se o identificador da conexão não for fornecido. Se o identificador não for fornecido. através do comando mysql_select_db. que tem a seguinte assinatura: int mysql_close(int [identificador da conexão]). Antes de tentar estabelecer uma conexão. o mesmo login e a mesma senha. int [conexao]).

int [conexao]). A consulta será executada na base de dados selecionada pelo comando mysql_select_db. A consulta pode conter qualquer comando SQL aceito pelo banco.PHP & MySql 46 Realizando consultas Para executar consultas SQL no MySQL. utiliza-se o comando mysql_query. sem o ponto-evírgula no final. Onde query é a expressão SQL a ser executada. e conexão é o identificador da conexão a ser utilizada. e diferente de zero se for correta. No caso de uma expressão SELECT. que tem a seguinte assinatura: int mysql_query(string query. as linhas retornadas são armazenadas numa memória de resultados. e o valor de retorno é o identificador do resultado. int mysql_free_result(int result). . O valor de retorno é falso se a expressão SQL for incorreta. Alguns comandos podem ser realizados com esse resultado: Apagando resultados O comando mysql_free-result deve ser utilizado para apagar da memória o resultado indicado. É bom lembrar que uma consulta não significa apenas um comando SELECT.

Utilizando os resultados Existem diversas maneiras de ler os resultados de uma query SELECT. int linha. Se foi utilizado um alias na consulta. mixed [campo]). ou um número correspondente ao número da coluna. int mysql_num_rows(int result). Quando o volume de dados for maior. Este comando deve ser utilizado apenas para resultados pequenos. CAMPO é uma string com o nome do campo. LINHA é o número da linha. este deve ser utilizado no comando mysql_result.PHP & MySql 47 Número de linhas O comando mysql_num_rows retorna o número de linhas contidas num resultado. Lê uma linha do resultado e devolve um array. iniciado por 0. RESULT é o identificador do resultado. Retorna o conteúdo de uma célula da tabela de resultados. As mais comuns serão vistas a seguir: int mysql_result(int result. é recomendado utilizar um dos métodos a seguir: array mysql_fetch_array(int result). A execução seguinte do mesmo comando lerá a . cujos índices são os nomes dos campos.

consulta. iniciando pelo 0 (zero). 48 Semelhante ao comando anterior. Update e Delete) Conceito para criação. Read. alteração e exclusão de registros feitos em um projeto de banco de dados relacional.: <input name="nome" type="text" size="10" type="text" maxlength="10"> Sobrenome:<input size="10" maxlength="10"> <input name="enviar" type="submit" value="Confirmar"> </form> name="sobrenome" . com a diferença que os índices do array são numéricos.php" method="post" name="teste"> Nome.php <html> <head> <title> CRUD</title> </head> <body> <h4>Inserir</h4> <form action="inserir. array mysql_fetch_row(int result). CRUD – (Create.PHP & MySql próxima linha. Exemplo: formulario. até chegar ao final do resultado.

php" method="post" name="teste"> Nome.: <input name="nome" type="text" size="10" maxlength="10"> <input name="enviar" type="submit" value="Confirmar"> </form> </body> </html> .php" method="post" name="teste"> Nome.: <input name="nome" type="text" size="10" maxlength="10"> <input name="enviar" type="submit" value= "Confirmar"> </form> <hr> <h4>Alterar</h4> <form action="alterar.PHP & MySql 49 <hr> <h4>Procurar</h4> <form action="procurar.php" method="post" name="teste"> Nome.: <input name="nome" type="text" size="10" maxlength="10"> <input name="enviar" type="submit" value= "Confirmar"> </form> <hr> <h4>Deletar</h4> <form action="deletar.

"treinam ento"). sobrenome) values ('$nome'. $sobrenome = $_POST[sobrenome]. $conectar). echo ("<BR>"). echo "Cadastro Efetuado!". 50 $conectar=mysql_connect("localhost". $valor = mysql_fetch_array($consulta).PHP & MySql inserir. $consulta = mysql_db_query ("teste". echo ?> ("<b> <a href=\"formulario. $conectar) or die ("Erro no acesso ao banco").php <? $nome = $_POST[nome].php <? $nome = $_POST[nome]. $declar."treinamento". procurar. $sobrenome = $_POST[sobrenome]. . $declar = "SELECT * from teste WHERE nome = '$nome'". $query = mysql_db_query("teste". $conectar=mysql_connect("localhost". $sql. $sql = "insert into teste (nome.'$sobrenome')"."treinamento"."treinam ento").php\">Voltar</a> </b> </center>").

"<br>". echo "<br>". ."treinamento". "<br>". echo ("<BR>").: "."treinam ento").">". echo "<b>Nome</b>.php <? $nome = $_POST[nome].php\">". $valor["nome"] .php\">Voltar</a> </b> </center>").: ". $sobrenome = $_POST[sobrenome]. echo "<form method=\"post\" action=\"alterar2. $declar = "SELECT * from teste WHERE nome = '$nome'". $valor["nome"] .:". .">". echo echo "<input "<input type=\"HIDDEN\" type=\"text\" name=\"id\" name=\"nome\" value=" value=" . $conectar=mysql_connect("localhost". echo ?> ("<b> <a href=\"formulario. $valor["sobrenome"] . "<b>Sobrenome</b>. $valor["id"] . $conectar) or die ("Erro no acesso ao banco"). $consulta = mysql_db_query ("teste". $declar. $valor = mysql_fetch_array($consulta).PHP & MySql 51 echo "<b>ID</b>. $valor["id"] . alterar.

"'. nome='" . $consulta = mysql_db_query ("teste"." />". $sobrenome . echo "<input type=\"submit\" value=\"Alterar\">". . $declar. $sobrenome = $_POST[sobrenome]. $valor["sobrenome"]. "' WHERE id='" . $declar=" UPDATE teste SET sobrenome='" .php <? $id = $_POST[id]. $conectar=mysql_connect("localhost". $nome = $_POST[nome]. ?> alterar2."treinamento"."treinam ento"). echo ("<BR>"). "'". echo "<center>Altera&ccedil.PHP & MySql 52 echo "<input type=\"text\" name=\"sobrenome\" value=" . echo ("<b> <a href=\"formulario. $conectar) or die ("Erro no acesso ao banco"). echo "</form>".$nome. $id .o Efetuada!".php\">Voltar</a> </b> </center>").&atilde.

echo ("<center> <b> <font size = 4> Exclus&atilde.php\">Voltar . if ($encontrados > 0){ $deletar = "DELETE from teste where nome = '$nome'"."treinamento".o n&atilde."treinam ento"). echo ("<BR>"). $consulta= mysql_db_query ("teste". echo("<center><b><a </a> </b> </center>"). 53 $conectar=mysql_connect("localhost".PHP & MySql deletar. $conectar)) { echo ("<BR>"). $conectar) or die ("Erro no acesso ao banco"). echo ("<BR><BR>"). echo ("<center> <b> <a href=\"formulario. href=\"formulario.o Efetuada </font> </b> </center>"). echo ("<center> <b> <font size = 4> Erro: Exclus&atilde. if (mysql_db_query ("teste". $sobrenome = $_POST['sobrenome']. $deletar. $declar. $declar = "SELECT * from teste WHERE nome = '$nome'". $encontrados = mysql_num_rows($consulta).php\"> Voltar</a> </b> </center>").o Efetuada </font> </b> </center>"). }else { echo ("<BR><BR>").php <? $nome = $_POST['nome'].

o primeiro passo será definir a base de dados e as tabelas em que você guardará as informações. 1 .html\"> Voltar </a> </b> </center>"). Projeto Criaremos um site dinâmico utilizando a linguagem PHP e o servidor de banco de dados MySQL. echo } ?> ("<center> <b> <a href=\"exclusao. telefone e e-mail. consulta. echo ("<BR><BR>"). Fazendo-se uma busca pelo nome do funcionário. alteração e exclusão de dados. seguindo o roteiro abaixo: Roteiro: . O objetivo desse site será a localização de funcionários dos Telecentros.o cadastrado </b> </center>"). echo ("<center> <b> Aluno n&atilde. O site permitirá inclusão.PHP & MySql 54 } } else { echo ("<BR><BR>"). serão disponibilizadas informações como: cargo.Criação da base de dados e tabelas Utilizando o servidor de banco de dados MySQL. Você pode criar a estrutura de dados diretamente no MySQL.

PHP & MySql 1. (Onde ''telecentros'' é o nome do banco de dados.) . (pergunte ao instrutor qual usuário e senha você deve utilizar). Os passos são: No campo “Criar nova base de dados” digite “telecentros” em seguida clique em “Criar”. Digite o endereço “http://localhost/phpmyadmin”. 55 2. Abra o navegador de sua preferência. 3. que conterá as tabelas a serem utilizadas no projeto. Crie uma base de dados no MySQL.

Tipos de Campos varchar(N) integer char(N) text date Not null É um campo texto variável de no máximo N caracteres.Coloque no campo “Nome” do item “Criar nova tabela na base de dados telecentros”. “alunos” e no campo “Number of fields:” o número “4” e clique em “Executa”. É um campo texto com exatamente N caracteres. . 56 Agora você já pode pensar nas tabelas que serão necessárias neste projeto. É um inteiro padrão. chamada “alunos”. Primary key Significa que é um campo chave. Para facilitar. Significa que o campo não pode ser nulo. É um campo data no formato ''AAAA-MM-DD''. você irá utilizar uma única tabela. Deverá aparecer a tela de confirmação.PHP & MySql 4. É um campo texto com no máximo 65535 caracteres.

Insira as informações mostradas abaixo e clique em “Guarda”.PHP & MySql . 57 - Deverá aparecer a tela de confirmação contendo as informações abaixo. .

consulta. Veja a figura abaixo. Essa página inicial terá a extensão . Clique no botão Executar. Pressione as teclas <Alt> + <F2>. 3. 2. Será exibida a tela do Bluefish. alteração e exclusão. Digite: Bluefish.html e será criada utilizando-se o BlueFish. Roteiro: 1. As opções terão links para seus respectivos módulos.Criação da home page do site 58 A página principal (homepage) do site será bastante simples e trará um menu com as opções de inclusão. . O BlueFish é uma ferramenta entre outras de desenvolvimento para Web.PHP & MySql 2 .

5.html. consulta.PHP & MySql 59 4. Transforme as opções do menu em links e direcione para seus respectivos endereços: inclusao. e .html no diretório indicado pelo instrutor. Escolha a opção Novo. Salve a página como index.html. exclusao.html. Digite as seguintes opções de menu: Inclusão.html. Clique no menu Arquivo. alteracao. Consulta. Exclusão e Sair. sair.html. Alteração.

Esse arquivo terá extensão .html .html Após digitar o código. Você irá digitar o código utilizando o Bluefish ou um editor de texto qualquer.Módulo de Inclusão Você irá criar a página para o formulário de inclusão.1) Formulário inclusao. 3.PHP & MySql 60 3 . salve-o e teste-o. Veja a figura abaixo: .

quando a requisição é de uma página com extensão PHP.php O programa "inclusao. Observe que a próxima página não terá mais a extensão html e sim php.php.PHP & MySql 61 Quando o formulário for submetido. .php" vai tratar os dados recebidos através do formulário. incluindo-os no banco de dados. Pode-se combinar os códigos HTML e PHP. Dica: Quando o servidor recebe a requisição de uma página HTML. dará um erro. alertando que o programa inclusao. para o qual você está encaminhando os dados não existe. Então. o servidor processa o código antes de enviá-la. 3. Por outro lado. você precisa criá-lo.2) Programa inclusão. ele apenas envia a página requisitada. pois o código vai conter programação PHP.

'$cargo'. } else { echo("Erro de inclus&atilde. $sql.mysql_error(). $res2 = mysql_db_query($bdConect. echo("<BR>")."values('$nome'.o Efetuada</font></b></center>"). telefone)".'$email'. $res1). $nome = $_POST['nome'].o ". if ($res2) { echo("<BR><BR>").php'). você utilizará algumas funções do PHP: Trim: retira os espaços em branco de uma variável. echo("<center><b><font size = 4>Inclus&atilde." (nome. <? include ('conect. A expressão or die pode ser usada como uma alternativa para o if/else. $cargo = $_POST['cargo']. echo("<center><b> <a href=\"inclusao. } ."\n"). '$telefone')".html\">Voltar</a> </b></center>"). echo("<center> <b> <a href=\"index.html\">Voltar </a></b></center>").php".PHP & MySql 62 Dicas: No código referente ao programa "inclusão. cargo. $email = $_POST['email']. $telefone = $_POST['telefone']. email. if ($res1) { $sql = "insert into $table ".

o ". Deixe os campos do formulário em branco. } mysql_close($res1). Clique em Enviar. 6. Deverá mostrar uma mensagem de erro. Abra o navegador de sua preferência e digite o seguinte endereço do site: http://localhost/<endereço>/index. Clique em Enviar. Volte para a página do formulário e entre com outros dados. telefone e e-mail. ?> } else 3.html onde <endereço> será o local indicado pelo instrutor. clique na opção Inclusão. 5.mysql_error(). 2. Deverá mostrar a mensagem "Inclusão Efetuada". O único campo que não é obrigatório é o e-mail. No menu da página principal.PHP & MySql 63 { echo("Erro de conex&atilde. só que . 4."\n").3) Testando o módulo de inclusão Roteiro: 1. 3. Preencha o formulário com os dados do funcionário: nome completo. cargo.

alertando que o programa consulta. Clique em Enviar. dará um erro. para o qual você está encaminhando os .Veja a figura abaixo: 4.php. 8.1)Formulário consulta. 64 7.PHP & MySql desta vez entre com um nome que já existe no banco de dados.Módulo de Consulta Você irá criar a página com o formulário de consulta. Deverá mostrar a mensagem "Inclusão não efetuada". pois o campo nome é chave e não aceita valores duplicados. Insira 3 funcionários. 4 .html Quando o formulário for submetido.

PHP & MySql dados não existe. mysql_fetch_row: obtém os campos do registro que retornou do select. não se esqueça de colocar no html a expressão a ser substituída (como comentário). mysql_num_rows: obtém o número de registros que retornou do select. concatena os conteúdos de cada elemento do array em uma string.php. utilizando ou não um delimitador entre eles. Então. você precisa criá-lo. STR_REPLACE: Vai ler uma string e substituir um determinado valor por outro. retornando o seu conteúdo como um array. por uma mensagem de erro. contida no código do "consulta. Cada linha do arquivo será representada por um elemento do array. você utilizará mais algumas funções do PHP: FILE: Lê um arquivo.php 65 O programa consulta. Dicas: No código referente ao programa consulta. .html". No nosso caso. 4.php vai receber o nome do formulário. IMPLODE: Armazena todo o conteúdo de um array como uma string.2) Programa consulta. Portanto. essa função substituirá a expressão "<!mensagem>". pesquisar no banco de dados e mostrar as informações referentes ao aluno.

jpg" width="100%" height="100" border="0" alt=""> </td> </tr> <tr valign="top"> <td> <h3>Dados Pessoais</h3> Nome.: <?echo("$nome")?><br> Cargo. $res1) or die ("Erro no acesso ao banco"). charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF"> <div id="conteudo"> <div id="tudo"> <? $nome= $_POST['nome']. if ($res1) { ?> <br><br><br> <table width="650" border="0" cellspacing="0" align="center"> <tr> <td colspan="2"><img src="cabecalho.: <?=$valor["email"]?><br> Tel. $res2 = mysql_db_query ($bdConect. $declar.:<?=$valor["cargo"]?><br> Email. $valor = mysql_fetch_array($res2). $declar = "SELECT * from $table WHERE nome = '$nome'".: <?=$valor["telefone"]?> </table> .php').PHP & MySql 66 <?php include_once ('conect. ?> <html> <head> <title>Consulta</title> <meta http-equiv="Content-Type" content="text/html.

3) Testando o módulo de consulta Roteiro: 1.html">Voltar</a></center> <? } else { echo("Aluno não encontrado"). 4. ?> </body> </html> 4. Abra o Mozilla e digite o seguinte endereço do site: http://localhost/<endereço>/index. . Deverá aparecer a seguinte mensagem "Aluno não cadastrado". Preencha o formulário com um nome de aluno inexistente e clique em enviar.html 2. No menu da página principal. } mysql_close($res1). Deixe o campo nome do aluno em branco e clique em Enviar. 3. Deverá aparecer uma mensagem de erro. clique na opção Consulta.PHP & MySql 67 <center><a href="index.

Veja a figura abaixo: 5.Módulo de Exclusão Você irá criar a página com o formulário de exclusão.PHP & MySql 68 5. Preencha o formulário com um nome de aluno válido e clique em enviar.html . Deverá mostrar os dados do aluno.1) Formulário exclusao. Veja a figura abaixo: 5 .

php <?php include_once ('conect. alertando que o programa exclusao. 5.php. Então. ?> <html> <head> <title>Exclusao</title> </head> <body bgcolor="#FFFFFF"> .2) Programa exclusao.php'). você precisa criá-lo. para o qual você está encaminhando os dados. dará um erro. não existe.PHP & MySql 69 Quando o formulário for submetido.

$nome = trim($nome).o Efetuada</font></b></center>"). echo ($html). $res1) or die ("Erro no acesso ao banco"). echo ("<center> Aluno: $nome </center>"). } else { . echo ("<BR><BR>"). if ($achou > 0) { echo ("<BR><BR>").PHP & MySql 70 <?php $nome = $_POST['nome']. echo ("<BR>").$erro. $query = mysql_db_query ($bdConect. $declar2. $declar = "SELECT nome from $table where nome = '$nome'". $declar. if (empty($nome)) { $html = file("exclusao.$html). } else { echo ("<p><center><img src=\"cabecalho. $erro = "<center><font color=\"#FF0000\"> Preencha o campo <b>Nome</b></font></center>". if (mysql_db_query ($bdConect. echo ("<center> <b> <font size = 4> Exclus&atilde. $html = str_replace("<!mensagem>". echo ("<center> <b> <a href=\"exclusao.html").$html). $res1)) { echo ("<BR><BR>").jpg\" width=\"745\" height=\"100\"></center></p>").html\">Voltar</a> </b> </center>"). $declar2 = "DELETE from $table where nome = '$nome'". $achou = mysql_num_rows($query). $html = implode(" ".

. 4. echo mysql_error(). } ?> </body> </html> 5.o n&atilde. echo ("<center><b><a href=\"exclusao. Abra o navegador e digite o seguinte endereço do site: http://localhost/<endereço>/index.html\"> Voltar</a></b></center>"). echo ("<BR><BR>").html\"> Voltar</a></b></center>"). clique na opção Exclusão. echo ("<center><b>Aluno cadastrado</b></center>"). Preencha o formulário com o nome completo do aluno e clique em Enviar. } } else { echo ("<BR><BR>"). Deverá aparecer a mensagem "Exclusão efetuada".PHP & MySql 71 echo ("<BR><BR>"). 3.o Efetuada</font></b></center>").3) Testando o módulo de exclusão Roteiro: 1. echo ("<center><b><a href=\"exclusao. } mysql_close ($res1). Deverá aparecer uma mensagem de erro. echo ("<center><b><font size = 4> Erro na Exclus&atilde. No menu da página principal. echo ("<BR><BR>").html 2. Deixe o campo nome do aluno em branco e clique em Enviar.

dará um erro. alertando que o programa "alteracao.html Você irá criar a página com o formulário de alteração.1) Formulário alteracao. para o qual você está encaminhando os dados.Módulo de Alteração 6. Então. Deverá mostrar a mensagem "Aluno não cadastrado". você precisa criá-lo.php". . 6 .Veja a figura abaixo: Quando o formulário for submetido. Preencha o formulário com o nome do aluno que você acabou de excluir e clique em Enviar. não existe.PHP & MySql 72 5.

if ($res1) { ?> <br><br><br> <table width="650" border="0" cellspacing="0" align="center"> <tr> <td colspan="2"><img src="cabecalho.php"> .php vai receber o dado do formulário. Para montar o formulário. <?php include_once ('conect. você criará uma função em PHP.jpg" width="100%" height="100" border="0" alt=""> </td> </tr> <tr valign="top"> <td><h3>Dados Pessoais</h3> <form name="alunos" method="post" action="alteracao2. recuperar as informações do banco de dados e mostrá-las num formulário para que elas sejam alteradas.php').2) Programa alteracao. ?> <html> <head> <title>Consulta</title> <meta http-equiv="Content-Type" content="text/html. $valor = mysql_fetch_array($res2). $res1) or die ("Erro no acesso ao banco"). charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF"> <? $aluno = $_POST['aluno']. $declar = "SELECT * from $table WHERE nome = '$aluno'".PHP & MySql 6.php 73 O programa alteracao. $declar. $res2 = mysql_db_query ($bdConect.

3) Programa conect.php" armazena todos os parâmetros de conexão com o banco de dados.PHP & MySql 74 <input type="hidden" name="id_seq" value="<?=$valor["id"].: <input type="text" name="email" maxlength="45" size="45" value="<?=$valor["email"]?>" ><br> Cargo.?>"> <font size="2">Nome.:<input type="text" name="cargo" maxlength="20" value="<?=$valor["cargo"]?>"><br> Telefone. contém informações como: usuário e senha do banco de dados. } mysql_close($res1). Nele. nome do banco e tabela a ser utilizada em todos os scripts.: <input type="text" name="telefone" maxlength="9" size="10" value="<?=$valor["telefone"]?>"><br> <center><input type="submit" name="alterar" value="Alterar"></center> </form> </table> <? } else { echo("não encontrado").: <input type="text" name="aluno" maxlength="50" size="50" value="<?=$valor["nome"]?>"><br> Email. ?> </body> </html> 6. .php O programa "conect.

php" vai pegar as informações alteradas e fazer um update (atualizar) no banco de dados. $email = $_POST['email']. Observação: Como o campo nome não é passado para o programa alteracao2. $table = "tc_alexandre" ?> Observe que o programa alteracao. $aluno = $_POST['aluno']. temos que passá-lo como um campo escondido input type="hidden". Isso porque. 6. $bdConect = "curso".PHP & MySql 75 <? $res1 = mysql_connect ("localhost". $telefone = $_POST['telefone']. "php". "1234").php'). $cargo = $_POST['cargo'].4) Programa alteracao2. <? include ('conect.php chama o programa alteracao2.php.php. if ($res1) { $sql = "update $table set nome = '$aluno'. por não se tratar de uma variável do formulário. . para você completar o módulo de alteração precisará de mais um programa que pegue as informações que foram alteradas e as inclua no banco de dados.php O programa "alteracao2.

"</b><br>Foi Alterado com sucesso! </center>"). $res2 = mysql_db_query($bdConect. echo("<br><br><br>"). charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF"> <?php echo("<br><br><br><br><br>"). email = '$email'". $sql. } } else { echo("Erro na tentativa de conexão ".mysql_error(). ?> 76 . ?> <?php } else { echo("Erro na alteração ".mysql_error(). $aluno ."\n").PHP & MySql cargo = '$cargo'. echo("<center><b><a href=\"index."\n"). echo("<br><br>"). if ($res2) { ?> <html> <head> <title>Alteracao</title> <meta http-equiv="Content-Type" content="text/html. } mysql_close($res1).html\">Voltar</a> </b></center>").html\">Voltar</a> </b></center>"). $res1). echo("<center><b><a href=\"index. echo("<center>O Aluno <b>" . telefone = '$telefone'. echo("<br><br><br>").

4.html A página sair. e salve-a com o nome de sair. 5. Preencha o formulário com um nome de aluno válido e clique em Enviar. Abra o navegador de sua preferência e digite o seguinte endereço do site: http://localhost/<endereço>/index.PHP & MySql 6.Criação da página sair. Preencha o formulário com um nome de aluno que não existe e clique em Enviar. Entre no módulo de consulta e confira se os dados foram realmente alterados. clique na opção Alteração. 7. Deixe o campo nome do aluno em branco e clique em Enviar. 6. . Deverá mostrar a mensagem "Alteração efetuada". Deverá mostrar a mensagem "Aluno não cadastrado". Altere alguns campos e clique em Enviar. Utilize o Quanta Plus para criar uma página simples que agradece ao usuário pelo uso do sistema.html é utilizada no nosso site apenas para agradecer ao usuário por utilizar o sistema.html 2.html. Será mostrado um formulário com os dados desse aluno.5) Testando o módulo de alteração Roteiro: 77 1. 8 . Deverá aparecer uma mensagem de erro. No menu da página principal. 3.

• Se eu perguntasse ao guarda mentiroso. 3. • Se eu perguntasse ao guarda verdadeiro. Resposta: 28 dias. Mas o mentiroso diria que o colega me indicaria: “porta B”.PHP & MySql 78 Respostas dos exercícios de lógica 1. qual a porta certa. qual é que ele me indica? Seja qual for o guarda inquirido. . ele indicaria a porta correta: “porta A”. ele diria a porta errada: “porta B” e o guarda verdadeiro diria o que o colega me indicaria: “porta B”. 4. Suponhamos a que a porta certa é a “A”. Resposta: Pergunta: se eu perguntar ao seu colega. Resposta: 9 2. ser-me-á respondido “ a porta errada”.

.PHP & MySql 79 Plano de aula 1ª aula .Double . * Comunicação cliente x servidor. * Exercícios de lógica: .Apresentação da turma. . * Delimitando o código PHP. . .Exercício “O prisioneiro”. . * Em que consiste uma página dinâmica.Variáveis (Definição) .Exercício “lesma”.Exercício 03 * Tipos de dados suportados.Exercício retângulo.Exercício “Teste dos 4 pontos. .Exercício 01 * Comentários no PHP. .Integer .Exercício 02 2ª aula . .PHP * Definição de PHP. * Sequência lógica.Lógica de programação.

.Array .Caractere de Escape .Objeto .Exercício 07 * Atribuição .Exercício 09 .Exercício 10 . * Exercício 05.Exercício 06 .Operadores * Aritmético * String .PHP & MySql .Booleano .Estruturas de controle * IF .String * Exercício 04.Integrando o PHP ao HTML * Métodos GET e POST .Exercício 08 * Incrementação * Lógicos * Comparação 80 3ª aula .

Laços * While .Popularização dos Bancos de Dados .Exercício 14 .Exercício 13 * For .Como utilizar a SQL para manipular os bancos de dados .Array * Exercício 16 .MySql .Include * Exercício 15 .PHP & MySql * Else .Exercício 17 5ª aula .Exercício 12 81 4ª aula .Exercício 11 * Elseif .Listas .MySql – Banco de dados .PhpMyAdmin (Apresentação) .O que é um Sistema de Gerenciamento de Banco de Dados? .

PHP & MySql MySQL? 82 * Acesso ao Banco de dados via terminal (contruir o banco conforme roteiro na página 42.Apagando resultados .Estabelecendo conexões entre PHP e MySql .Reteiro – Criação de Banco de Dados (Usando o terminal) .Realizando consultas .Utilizando os resultados .Número de linhas .Criar o mesmo Banco de Dados (Usando o PHPMyAdmin) 6ª aula .Selecionando a base de dados . -Comandos SQL: * Comando SHOW * Comando USE * Comando CREATE *Comando INSERT * Comando SELECT * Comando DESCRIBE * Comando DROP * Comando DELETE * Comando UPDATE .

(CRUD) 8ª aula .Elaboração do exercício .Elaboração do projeto 10ª aula .Explicação de exercício preparatório para o projeto (CRUD) .Finalização do projeto .PHP & MySql 83 7ª aula .Projeto final: Desenvolvimento do tema (escolhido pela turma) para elaboração do projeto.Elaboração do projeto 9ª aula . .

Pablo Dall'Oglio. Maurício Vivas. Korth. www. Makro Books. Sistema de Banco de Dados.PHP & MySql 84 Bibliografia PHP – Programando com orientação a objetos. 1995. Curso de Aplicações Web em PHP.php. Abraham Silberschatz. Henry F. 2007.mysql. Novatec.net www.com .

Sign up to vote on this title
UsefulNot useful