Buscar

apostila_php

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 91 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 91 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 91 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 Introdução ao PHP
1.1. O que é PHP?
O PHP é uma linguagem que permite criar sites WEB dinâmicos, possibilitando uma interação com o usuário através de formulários, parâmetros da URL e links. A diferença de PHP com relação a linguagens semelhantes a Javascript é que o código PHP é executado no servidor, sendo enviado para o cliente apenas html puro.
Desta maneira é possível interagir com bancos de dados e aplicações existentes no servidor, com a vantagem de não expor o código fonte para o cliente. Isso pode ser útil quando o programa está lidando com senhas ou qualquer tipo de informação confidencial.
O que diferencia PHP de um script CGI escrito em C ou Perl é que o código PHP fica embutido no próprio HTML, enquanto no outro caso é necessário que o script CGI gere todo o código HTML, ou leia de um outro arquivo.
1.2. Como surgiu a linguagem PHP?
A linguagem PHP foi concebida durante o outono de 1994 por Rasmus Lerdorf. As primeiras versões não foram disponibilizadas, tendo sido utilizadas em sua home-page apenas para que ele pudesse ter informações sobre as visitas que estavam sendo feitas.
A primeira versão utilizada por outras pessoas foi disponibilizada em 1995, e ficou conhecida como “Personal Home Page Tools” (ferramentas para página pessoal). Era composta por um sistema bastante simples que interpretava algumas macros e alguns utilitários que rodavam “por trás” das home-pages: um livro de visitas, um contador e algumas outras coisas.
Em meados de 1995 o interpretador foi reescrito, e ganhou o nome de PHP/FI, o “FI” veio de um outro pacote escrito por Rasmus que interpretava dados de formulários HTML (Form Interpreter). Ele combinou os scripts do pacote Personal Home Page Tools com o FI e adicionou suporte a mSQL, nascendo assim o PHP/FI, que cresceu bastante, e as pessoas passaram a contribuir com o projeto.
Estima-se que em 1996, PHP/FI estava sendo usado por cerca de 15.000 sites pelo mundo, e em meados de 1997 esse número subiu para mais de 50.000. Nessa época houve uma mudança no desenvolvimento do PHP. Ele deixou de ser um projeto de Rasmus com contribuições de outras pessoas para ter uma equipe de desenvolvimento mais organizada. O interpretador foi reescrito por Zeev Suraski e Andi Gutmans. Esse novo interpretador foi à base para a versão 3.
O lançamento do PHP4, ocorrido em 22/05/2000, trouxe muitas novidades aos programadores de PHP. Uma das principais foi o suporte a sessões, bastante útil pra identificar o cliente que solicitou determinada informação. Além das mudanças referentes a sintaxe e novos recursos de programação, o PHP4 trouxe como novidade um otimizador chamado Zend, que permite a execução muito mais rápida de scripts PHP. Hoje, já se encontra disponível no mercado a versão 5.x do PHP.
1.3. Características da Linguagem PHP
· É uma linguagem de fácil aprendizado;
· Tem suporte a um grande número de bancos de dados como: dBase, Interbase, mSQL, mySQL, Oracle, Sybase, PostgreSQL e vários outros.
· Tem suporte a outros serviços através de protocolos como IMAP, SNMP, NNTP, POP3 e, logicamente, HTTP;
· É multiplataforma, tendo suporte aos sistemas Operacionais mais utilizados no mercado;
· Seu código é livre, não é preciso pagar por sua utilização e pode ser alterado pelo usuário na medida da necessidade de cada usuário;
· Não precisa ser compilado.
1.4. 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 (request) do cliente (navegador) ao servidor web. O servidor processa essa requisição e retorna uma resposta (response) ao cliente, que por sua vez interpreta o código retornado e formata a página para a sua visualização. 
As páginas PHP devem ser salvas no diretório raiz do servidor. Para testes locais com o EasyPHP, essa pasta é: c:\Arquivos de programas\EasyPHP\www. 
Para acessar a página, deve-se abrir o browser Internet Explorer e digitar-se o nome do domínio (http://127.0.0.1) e o nome da página com extensão .php. Quando o EasyPHP está sendo executado, aparece um ícone com uma letra “e” ao lado do relógio do Windows.
Nos meus exemplos estarei usando o seguinte caminho: 
D:\Arquivos de programas\EasyPHP5.3.0\www.
2 Programando em PHP
	Vamos fazer nosso primeiro programa em PHP. Utilize o bloco de notas como editor de texto, e digite o seguinte:
<?php
phpinfo();
?>
	Salve com o arquivo com o seguinte nome: EX01.PHP. 
	Agora utilize o EasyPHP , clicando com botão direito do mouse no ícone do EasyPHP, e clique em Localhost, e em seguida, selecione o arquivo EX01.PHP.
 
Ex02.php
<html>
<body>
<?php
	//exemplo 02
	echo "<h2 align='center'>SITE PESSOAL </h2>";
	echo "centralizado com tamanho 2";
?>
</body>
</html>
2.1 Sintaxe Básica
Tags especiais indicam ao PHP onde estão os blocos de código. A tag de abertura é formada por um sinal de “menor que” (<), um sinal de interrogação (?) e a sigla php. A tag de fechamento é formada por um ponto interrogação (?) e sinal de “maior que” (>).
Ex:
<?php
...
?>
O sinal de ponto-e-vírgula (;) indica o final de um comando. 
	Podemos utilizar comentários (//).
Para iniciar uma seqüência de comentários, utilizaremos o (/*) para iniciar e depois finalizar com o (*/).
Ex.
/* este comentário vai ultrapassar a 
primeira linha */
	Quando quiser mostrar alguma informação na tela, podemos utilizar o comando ECHO.
Caso tente exibir o código fonte, vai receber a seguinte resposta:
<html>
<body>
<h2 align='center'>SITE PESSOAL </h2>centralizado com tamanho 2</body>
</html>
Como sabemos o PHP, roda no servidor. Toda a programação PHP é processada no servidor, que retorna somente o resultado final para o seu browser.
	
Ex03.php – mostrar a data atual, misturando HTML com PHP.
<html>
<body>
<?php
	$data_hoje = date("d/m/y",time())
?>
<p align="center"> Hoje é dia <?php echo $data_hoje; ?></p>
</body>
</html>
Ex04.php – comando ECHO.
<html>
<body>
<?php
	$salario = 1000;
	$desconto = 5.5;
	$resultado = $salario - ($salario * $desconto/100);
	echo $resultado;
?>
</body>
Ex05.php – Inclusão de uma variável dentro de outra variável.
<html>
<body>
<?php
	$mensagem = "Feliz Natal";
	$mensagem2 = "cuide-se bem";
	$mensagem3 = "Tenha um $mensagem e $mensagem2";
	echo $mensagem3; 
?>
</body>
2.2 Manipulando dados em PHP
2.2.1 Dados alfanuméricos (textos)
	As strings são sequências de caracteres que podem ser delimitadas por aspas simples (‘), aspas duplas (“) ou aspas invertidas (`). O PHP trata os dados alfanuméricos de forma diferente de acordo com o delimitador utilizado.
2.2.1.1 Aspas simples (‘)
	Observe os seguintes exemplos:
Ex06.php
<html>
<body>
<?php
	echo 'johns' ;	
?>
</body>
</html>
	Vamos tentar inserir a seguinte: john’s.
Ex07.php
<html>
<body>
<?php
	echo 'john's' ;	
?>
</body>
</html>
Iremos receber como retorno o seguinte:
Parse error: parse error, expecting `','' or `';'' in D:\Arquivos de programas\EasyPHP5.3.0\www\ex06.php on line 4
	Isso acontece, porque ele entendeu a segunda aspas simples como final do texto.
Ex08.php – Corrigido, colocando uma barra invertida (\).
<html>
<body>
<?php
	echo 'john\'s' ;	
?>
</body>
</html>
2.2.1.2 Aspas duplas (“)
Ex09.php
<html>
<body>
<?php
	echo "john's" ;
?>
</body>
</html>
	Não teremos problema com a finalização de texto.
Ex10.php
<html>
<body>
<?php
	echo "estou mostrando o caractere \" " ;
?>
</body>
</html>
Ex11.php – Utilizando a barra invertida para mostrar texto entre aspas.
<html>
<body>
<?php
	echo "usando \"aspas duplas\" " ; 	
?>
</body>
</html>
2.2.1.3 Aspas invertidas (`)
Ex12.php – ideal para mostrar comandos do Linux ou Windows .
<html>
<body>
<?php
	echo `dir *.php`; 
	
?>
</body>
</html>
2.3 Variáveis
	Com o objetivo de armazenar dados, podemos utilizar em qualquer ponto do programa.Toda variável em PHP tem seu nome composto pelo caracter $(dólar) e uma string, que deve iniciar por uma letra ou o caracter “_”. O PHP é case sensitive, ou seja, as variáveis $aula e $AULA são diferentes.
Exemplos de variáveis válidas: $salario, $nome, etc.
	Exemplos de variáveis inválidas: $5, $100tipo, etc.
2.3.1 Variáveis globais
	Quando a variável é declarada dentro de uma função, ela só estará disponível para o código desta função. O código a seguir gera um erro devido a essa característica.
Ex13.php
<html>
<body>
<?php
	function soma($a)
	{
	$b = $a + 5;
	}
	soma(10);
	echo "o valor de 'b' é $b";
?>
</body>
</html>
Para evitar este tipo de problema, deve-se definir a variável como global. O código a seguir resolve o problema do código anterior. Compare os resultados dos dois scripts.
Ex14.php
<html>
<body>
<?php
	function soma($a)
	{
	global $b;
	$b = $a + 5;
	}
	soma(10);
	echo "o valor de 'b' é $b";
?>
</body>
</html>
2.3.2 Tipos de Dados
	No PHP existem variáveis do tipo numéricas, alfanuméricas(strings), arrays e objetos.
2.3.2.1 Numéricas
	As variáveis numéricas podem possuir valores inteiros ou reais (ponto flutuante). No momento da atribuição de um valor a uma variável, ela passa a assumir um tipo.
Exemplos:
$numero = 100;
$x = 5;
$y = 100.23
Ex15.php
<html>
<body>
<?php
 	$inteiro = 10;
 	$real = 100.54;
echo $inteiro + $real;
?>
</body>
</html>
2.3.2.2 Alfanuméricas (strings)
	São cadeias de caracteres que, vimos anteriormente.
Exemplos:
$nome = “Pedro”;
2.3.2.3 Arrays
Arrays em PHP podem ser observados como mapeamentos ou como vetores indexados. Mais precisamente, um valor do tipo array é um dicionário onde os índices são as chaves de acesso. Vale ressaltar que os índices podem ser valores de qualquer tipo e não somente inteiros. Inclusive, se os índices forem todos inteiros, estes não precisam formar um intervalo contínuo Como a checagem de tipos em PHP é dinâmica, valores de tipos diferentes podem ser usados como índices de array, assim como os valores mapeados também podem ser de diversos tipos. No PHP, os arrrays iniciam-se em zero. Diferente de outras linguagens, você não precisa definir um número limite de posições dentro de um array, pois ele se expande dinamicamente. Caso o vetor não seja indicado entre os colchetes, o PHP irá procurar pelo último elemento do array e atribuir o novo valor na posição seguinte.
Ex16.php
<html>
<body>
<?php
	$cor[0] = "amarelo";
	$cor[1] = "vermelho";
	$cor[2] = "verde";
	echo $cor[1];
?>
</body>
</html>
2.4 Constantes
Constantes são identificadores para valores simples. O seu conteúdo não muda durante a execução do código. Elas são criadas com a função define e, por convenção, são escritas com letras maiúsculas e não usam o cifrão no início.
Ex17.php
<html>
<body>
<?php
define("NOME", "Pedro.");
echo NOME;
?>
</body>
</html>
2.5 Operadores
	
	Através dos operadores nós informamos ao PHP o que deve ser executado.
2.5.1 Operadores aritméticos
Só podem ser utilizados quando os operandos são números (integer ou float). Se forem de outro tipo, terão seus valores convertidos antes da realização da operação. São eles:
	+
	Adição
	-
	Subtração
	* 
	Multiplicação
	/
	Divisão
	%
	Módulo
	++
	Acrescenta um a uma variável
	--
	Subtrai um de uma variável
	+=
	Soma um valor a uma variável e lhe atribui o resultado
	
	Obs: diferença entre --variável e variável--
	
	Obs: diferença entre ++variável e variável++
Ex18.php
<html>
<body>
<?php
$x = 2;
echo($x + 2);
echo "<br>";
$x = 2;
echo(5 - $x);
echo "<br>";
$x = 4;
echo($x * 5);
echo "<br>";
$x = 15;
echo($x / 5);
echo "<br>";
$x = 10;
echo($x % 8);
echo "<br>";
$x = 5;
$x++;
echo($x);
echo "<br>";
$x = 5;
$x--;
echo($x);
echo "<br>";
$x = 8;
echo($x);
echo "<br>";
$x = 8;
$x = $x + 10;
echo($x);
echo "<br>";
$x = 8;
$x += 10;
echo($x);
?>
</body>
</html>
Ex19.php – utilização do pré-incremento (++variável) e pós-incremento (variável++)
<html>
<body>
<?php
	$a = 1;
	$b = 3;
	$c = 5;
	$res1 = ++$b - $a;
	$res2 = $c-- + $a;
	$res3 = --$a + $c++;
	echo "a = $a <br> b = $b <br> c = $c <br>";
	echo "res1 = $res1 <br> res2 = $res2 <br>
	res3 = $res3";
?>
	
</body>
</html>
Resultado
a=0 
b=4 
c=5 
res1=3 
res2=6 
res3=4
2.5.2 Operadores de Strings
	
	.
	Concatenação
	
Ex20.php
<html>
<body>
<?php
$nome = "Capitão";
$sobrenome = "Nascimento";
echo $nome." ".$sobrenome;
?>
</body>
</html>
	.=
	Atribuição – Acrescentar um valor a uma variável sem perder o antigo valor
Ex21.php
<html>
<body>
<?php
$nome = "Pedro";
$nome .= "Souza";
echo $nome;
?>
</body>
</html
2.5.3 Operadores de Comparação
	Há também os operadores de comparação. Uma comparação sempre gera um dos dois valores possíveis: vazio, que corresponde a falso, e 1, que corresponde a verdadeiro.
	= =
	é igual a
	>
	é maior que
	<
	é menor que
	>=
	é maior ou igual a
	<=
	é menor ou igual a
Ex22.php
<html>
<body>
<?php
$idade1 = 25;
$idade2 = 25;
if ($idade1 == $idade2)
{echo "verdadeiro";
}
else
{echo "falso";
}
?>
</body>
Exemplos:
$a == $b //retorna verdadeiro se forem iguais
$a != $b //retorna verdadeiro se forem diferentes
$a > $b //verdadeiro se $a maior que $b
$a >= $b //verdadeiro se $a for maior ou igual a $b
2.5.4 Operadores de Atribuição
Existe um operador básico de atribuição e diversos derivados. Sempre retornam o valor atribuído. No caso dos operadores derivados de atribuição, a operação é feita entre os dois operandos, sendo atribuído o resultado para o primeiro. A atribuição é sempre por valor, e não por referência
	=
	Atribuição simples
	+=
	Atribuição com adição
	-=
	Atribuição com subtração
	*=
	Atribuição com multiplicação
	/=
	Atribuição com divisão
	%=
	Atribuição com módulo
	.=
	Atribuição com concatenação
Ex23.php
<html>
<body>
<?php
$tempo1 = 25;
$tempo2 = 2;
$tempo1 += $tempo2;
echo $tempo1;
?>
</body>
</html>
2.5.5 Operadores Lógicos
Utilizados para inteiros representando valores booleanos.
	and
	“e” lógico
	or
	“ou” lógico
	!
	não (inversão)
	&&
	“e” lógico
	||
	“ou” lógico
Existem dois operadores para “e” e para “ou” porque eles têm diferentes posições na ordem de precedência.
2.5.5.1 Operações lógicas
Em todas as linguagens de programação existem as estruturas chamadas estruturas de decisão, que são blocos de comandos, escritos de forma que executem determinada função caso uma condição seja verdadeira e outra caso seja falsa. A própria estrutura avalia a condição e se for verdadeira, executa determinada(s) função(ões); Caso seja falsa, executa função(ões) diferentes. Porém, existem casos em que mais de uma condição deve ser avaliada. Para isso, utilizamos operações lógicas. Elas avaliam duas ou mais condições e, através de operações lógicas, determinam qual será o resultado das condições avaliadas. O programa, então, irá utilizar este valor para determinar o que fazer. Existem basicamente, quatro operações lógicas chamadas: AND, OR, XOR e NOT (E, OU, OU EXCLUSIVO e NÃO).
Operações lógicas permitem que o programa avalie se uma condição é verdadeira ou falsa e execute funções específicas com base nos resultados.
 Veremos agora as principais operações lógicas:
Operação AND
O operador AND retorna verdadeiro apenas quando todas as condições forem verdadeiras. Uma tabela de possíveis resultados é mostrada abaixo.
	Condição 1
	AND
	Condição 2 
	Resultado
	V
	AND
	V
	V
	V
	AND
	F
	F
	F
	AND
	V
	F
	F
	AND
	F
	F
Podemos comparar a operação lógica AND a uma multiplicação. Substituindo o Verdadeiro por 1 e Falso por 0, teremos o AND funcionando como um operador de multiplicação.
Operação OR
A operação OR não é tão “rígida”.O resultado será verdadeiro caso uma das condições seja verdadeira. Seria idêntico à uma operação de adição, porém com uma exceção: Na operação OR, a soma 1 + 1 é igual a 1. Vejamos a tabela:
	Condição 1
	OR
	Condição 2 
	Resultado
	V
	OR
	V
	V
	V
	OR
	F
	V
	F
	OR
	V
	V
	F
	OR
	F
	F
Transformando Verdadeiro em 1 e Falso em 0, teremos:
Operação XOR
A operação XOR (OU EXCLUSIVO) tem uma particularidade: Seu resultado será verdadeiro apenas se e somente se uma das condições for verdadeira, retornando falsa caso as duas tenham o mesmo valor. 
	Condição 1
	XOR
	Condição 2 
	Resultado
	V
	XOR
	V
	F
	V
	XOR
	F
	V
	F
	XOR
	V
	V
	F
	XOR
	F
	F
Operação NOT
Trata-se da mais simples de todas: Ela apenas inverte o resultado de uma operação, ou seja, verdadeiro torna-se falso e vice-versa.
Algumas Palavras-chave do PHP
and 		do 		for 		include 	require 	true
break 		else 		foreach 	list 		return 		var
case 		elseif 		function 	new 		static 		virtual
class 		extends 	global 		not 		switch 	xor
continue 	false 		if 		or 		this 		while
default
2.6 Estruturas de Controle
No PHP, as estruturas de controle são formadas por declarações condicionais e de looping.
2.6.1 Blocos
	Um bloco consiste de vários comandos agrupados com o objetivo de relacioná-los com determinado comando ou função. Em comandos como if, for, while, switch e em declarações de funções blocos podem ser utilizados para permitir que um comando faça parte do contexto desejado. Blocos em PHP são delimitados pelos caracteres “{” e “}”. A utilização dos delimitadores de bloco em uma parte qualquer do código não relacionada com os comandos citados ou funções não produzirá efeito algum, e será tratada normalmente pelo interpretador.
Exemplo1:
<html>
<body>
<?php
$idade1 = 25;
$idade2 = 25;
if ($idade1 <> $idade2)
{
echo "verdadeiro";
echo "<br>";
$idade1 += 10;
echo $idade1;
}
?>
</body>
Exemplo2:
<html>
<body>
<?php
$idade1 = 25;
$idade2 = 25;
if ($idade1 <> $idade2)
echo "verdadeiro";
echo "<br>";
$idade1 += 10;
echo $idade1;
?>
</body>
Observe os dois exemplos e encontre a diferença. Sabendo-se que o objetivo é acrescentar 10 a variável $idade1, se a variável $idade1 for diferente de $idade2.
2.6.2. Estrutura if / else / elseif
If
A estrutura if (do inglês: “se”) executa um determinado bloco, caso uma condição seja verdadeira. Sua sintaxe é:
if (expressão)
comando;
if (expressão) {
comando;
. . .
. . .
. . .
comando;
}
Ex24.php
<?php
$a = 45;
$b = 20;
if ($a >= $b) {
$media = ($a + $b) / 2;
$resto = $a % $b; //calcula o resto da divisão de A por B
echo "o Valor de A é: " .$a. "<br>";
echo "o Valor de B é: " .$b. "<br>";
echo "o Valor da média é: ".$media. "<br>";
echo "o resto da divisão de A por B é: ".$resto;
}
?>
Else
O else é um complemento opcional para o if. Se utilizado, o comando será executado se a expressão retornar o valor false (zero). Suas duas sintaxes são:
if (expressão)
comando;
else
comando;
ou
if (expressão) {
comando 1;
comando n
else {
comando 1;
comando n
}
Ex25.php
 
Em determinadas situações é necessário fazer mais de um teste, e executar condicionalmente diversos comandos ou blocos de comandos. Para facilitar o entendimento de uma estrutura do tipo:
if (expressao1)
comando1;
else
if (expressao2)
comando2;
else
if (expressao3)
comando3;
else
comando4;
Foi criado o comando, também opcional elseif. Ele tem a mesma função de um else e um if usados seqüencialmente, como no exemplo acima. Num mesmo if podem ser utilizados diversos elseif´s, ficando essa utilização a critério do programador.
Elseif
O comando elseif também pode ser utilizado com dois tipos de sintaxe. Em resumo, a sintaxe geral do comando if fica das seguintes maneiras:
if (expressao1)
comando;
elseif (expressao2)
comando;
else
comando;
ou
if (expressão 1) {
comando 1;
comando n;
}
elseif (expressão 2) {
comando 1;
comando n;
}
else {
comando 1;
comando n;
}
Ex26.php
<?php
$nota1 = 6;
$nota2 = 8;
$media = ($nota1 + $nota2) / 2;
if ($media > 7)
{
	echo "Média: ".$media. "<br>";
	echo "Aluno aprovado";
}
elseif ($media <7) 
{
echo "Média: ".$media ."<br>";
echo "Aluno reprovado";
}
else 
{
echo "Média: ".$media."<br>";
echo "Aluno em recuperação";
}
?>
2.6.3 Estrutura Switch Case
O comando switch atua de maneira semelhante a uma série de comandos if na mesma expressão.Freqüentemente o programador pode querer comparar uma variável com diversos valores, e executar um código diferente a depender de qual valor é igual ao da variável. Quando isso for necessário, deve-se usar o comando switch.
Sintaxe:
switch ($valor)
{
case "____";
comandos;
comandos;
break;
case "____";
comandos;
comandos;
break;
case "____";
comandos;
comandos;
break;
case "____";
comandos;
comandos;
break;
default;
comandos;
comandos;
break;
O exemplo seguinte mostra dois trechos de código que fazem a mesma coisa, sendo que o primeiro utiliza uma série de if’s e o segundo utiliza switch:
Exemplo 1: Estrutura IF
<?php
$i = 0;
if ($i == 0)
echo "i é igual a zero";
elseif ($i == 1)
echo "i é igual a um";
elseif ($i == 2)
echo "i é igual a dois";
?>
Exemplo 2: Estrutura SWITCH
<?php
$i = 0;
switch ($i) 
{
case 0:
	echo "i é igual a zero";
	break;
case 1:
	echo "i é igual a um";
	break;
case 2:
	echo "i é igual a dois";
	break;
}
?>
É importante compreender o funcionamento do switch para não cometer enganos. O comando switch testa linha a linha os cases encontrados, e a partir do momento que encontra um valor igual ao da variável testada, passa a executar todos os comandos seguintes, mesmo os que fazem parte de outro teste, até o fim do bloco. Por isso usa-se o comando break, quebrando o fluxo e fazendo com que o código seja executado da maneira desejada. 
Exemplo sem a utilização do break
<?php
$i = 0;
switch ($i) 
{
case 0:
echo "i é igual a zero";
case 1:
echo "i é igual a um";
case 2:
echo "i é igual a dois";
}
?>
2.6.4 Estrutura de Repetição
As estruturas de repetição são utilizadas quando o programador precisa, por exemplo, repetir o mesmo comando várias vezes. Vamos ver as estruturas de repetição existentes.
2.6.4.1 While
O while é o comando de repetição (laço) mais simples. Ele testa uma condição e executa um comando, ou um bloco de comandos, até que a condição testada seja falsa. Assim como o if, o while também possui duas sintaxes alternativas:
While (condição)
comando;
Ou
While (condição)
{
comandos;
comandos;
}
Ex27.php
<?php
$a = 0;
while($a <= 10) 
{
echo $a."<br>";
$a++;
}
?>
A expressão só é testada a cada vez que o bloco de instruções termina, além do teste inicial. Se o valor da expressão passar a ser false no meio do bloco de instruções, a execução segue até o final do bloco. Se no teste inicial a condição for avaliada como false, o bloco de comandos não será executado.
2.6.4.2 Do ... While
O laço do..while funciona de maneira bastante semelhante ao while, com a simples diferença que a expressão é testada ao final do bloco de comandos.
Sintaxe:
do 
{
comando
. . .
comando
}
while (<condição>);
Ex28.php
<?php
$a = 7;
do 
{
echo $a++;
echo "<br>";
}
while ($a <=10)
?>
2.6.4.3 For
O tipo de laço mais complexo é o for. Para os que programam em C, C++ ou Java, a assimilação do funcionamento do for é natural. Mas para aqueles que estão acostumados a linguagens como Pascal, há uma grande mudança para o uso do for.
Sintaxe:
for (<inicializacao>;<condicao>;<incremento>) {
<comando>;
. . .
<comando>;
}
As três expressões que ficam entre parênteses têm as seguintes finalidades:
Inicialização: comando ou seqüência de comandos a serem realizados antes do inicio do laço. Serve para inicializar variáveis.
Condição:Expressão booleana que define se os comandos que estão dentro do laço serão executados ou não. Enquanto a expressão for verdadeira (valor diferente de zero) os comandos serão executados.
Incremento: Comando executado ao final de cada execução do laço. Um comando for funciona de maneira semelhante a um while escrito da seguinte forma:
while (<condicao>)
{
comandos
...
<incremento>
}
Ex29.php
<?php
For ($a = 0; $a <10; $a++) 
{
Echo " O valor de A é: ". $a;
Echo "<br>";
}
?>
Resultado
O valor de A é: 0
O valor de A é: 1
O valor de A é: 2
O valor de A é: 3
O valor de A é: 4
O valor de A é: 5
O valor de A é: 6
O valor de A é: 7
O valor de A é: 8
O valor de A é: 9
2.6.5 Quebra de Fluxo
2.6.5.1 Break
O comando break pode ser utilizado em laços de do, for e while, além do uso já visto no comando switch. Ao encontrar um break dentro de um desses laços, o interpretador PHP para imediatamente a execução do laço, seguindo normalmente o fluxo do script
Ex30.php
<?php
$x = 20;
while ($x < 30)
{
if ($x == 5) 
{
	echo "Número inválido";
	break;
}
echo "Número ".$x."<br>";
$x--;
}
?>
Resultado
Número 20
Número 19
Número 18
Número 17
Número 16
Número 15
Número 14
Número 13
Número 12
Número 11
Número 10
Número 9
Número 8
Número 7
Número 6
Número inválido
No trecho de código acima, o laço while tem uma condição para seu término normal ($x < 30), mas foi utilizado o break para o caso de um término não previsto no início do laço. Assim o interpretador seguirá para o comando seguinte ao laço.
2.6.5.2 Continue
O comando continue também deve ser utilizado no interior de laços, e funciona de maneira semelhante ao break, com a diferença que o fluxo ao invés de sair do laço volta para o início dele.
Ex31.php
<?php
for ($i = 0; $i < 100; $i++) 
{
if ($i % 2)
continue;
echo "$i";
}
?>
2.7 Funções
	As funções (functions) são úteis para deixar o código dos programas mais organizados e mais modular, e além disso elas nos poupam da tarefa de ter que repetir determinado código toda vez que precisamos realizar a mesma tarefa.
Sintaxe:
function nome_da_função([arg1, arg2, arg3]) 
{
Comandos;
... ;
[return <valor de retorno>];
}
Qualquer código PHP válido pode estar contido no interior de uma função. Como a checagem de tipos em PHP é dinâmica, o tipo de retorno não deve ser declarado, sendo necessário que o programador esteja atento para que a função retorne o tipo desejado. É recomendável que esteja tudo bem documentado para facilitar a leitura e compreensão do código. 
2.7.1 Valor de retorno
Toda função pode opcionalmente retornar um valor, ou simplesmente executar os comandos e não retornar valor algum.
Não é possível que uma função retorne mais de um valor, mas é permitido fazer com que uma função retorne um valor composto, como listas ou arrays.
2.7.2 Argumentos
É possível passar argumentos para uma função. Eles devem ser declarados logo após o nome da função, entre parênteses, e tornam-se variáveis pertencentes ao escopo local da função. A declaração do tipo de cada argumento também é utilizada apenas para efeito de documentação.
Ex32.php
<?php
 function soma_todos($v1,$v2,$v3)
 {
 $soma = $v1+$v2+$v3;
 echo "O resultado é: $soma";
 }
 
 $n1 =10;
 $n2 =20;
 $n3 =30;
 soma_todos($n1,$n2,$n3);
?>
 
Ex33.php
<?php
 function exibir_texto()
 {
 echo "AULA DE INFORMATICA";
 }
 exibir_texto();
?>
Ex34.php
<?php
 function soma($valor1, $valor2)
 {
 $resultado = $valor1 + $valor2;
 return ($resultado);
 }
 $x = soma(7, 8);
 echo($x);
?>
2.7.3 Comando Return
	O comando return devolve para o ponto de chamada da função o valor da variável ou expressão que aparece imediatamente após esse comando. Desse modo, podemos atribuir a uma variável (com o operador =) o valor retornado da função.
Ex35.php
<?php
 Function triplo($numero)
 {
 $x = $numero * 3;
 return $x;
 }
 
 $valor = 10;
 echo triplo($valor);
?>
2.7.4 Passagem de parâmetros: valor e referência
	Quando passamos uma variável como argumento para uma função, por padrão estamos passando apenas o valor dela, e isso faz com que as alterações realizadas dentro da função não se reflitam sobre a variável quando terminar a execução da função. Isso é chamado de passagem de parâmetros por valor. 
	Existem situações em que queremos que a variável a ser passada como argumento seja alterada conforme as alterações feitas durante a execução da função. Isso é chamado de passagem de parâmetros por referência. Esse tipo de passagem de parâmetros requer que seja colocado o símbolo & antes do nome da variável.
Ex36.php
<?php
 function dobro($valor)
 {
 $valor = 2 * $valor;
 }
 function duplica(&$valor)
 {
 $valor = 2 * $valor;
 }
 $valor = 5;
 dobro($valor);
 echo $valor . "<br>";
 duplica($valor);
 echo $valor;
?> 
Resultado:
5
10
	A função dobro, retorna o valor original, enquanto a função duplica, retorna o valor alterado.
Ex37.php
<?php
 function mais5(&$num1, $num2) 
 {
 $num1 += 5;
 $num2 += 5;
 }
 $a = $b = 1;
 mais5($a, $b);
 echo $a. "<br>" .$b;
 /* Neste caso, só $num1 terá seu valor alterado, pois a passagem por referência está definida na declaração da função. */
?>
2.7.4.1 Argumentos com valores pré-definidos (default)
Em PHP é possível ter valores default para argumentos de funções, ou seja, valores que serão assumidos em caso de nada ser passado no lugar do argumento. Quando algum parâmetro é declarado desta maneira, a passagem do mesmo na chamada da função torna-se opcional.
Ex38.php
<?php
 function padrao($lembrete = "Estudar?") 
 {
 echo $lembrete;
 }
 padrao(); // imprime "Estudar?"
 echo "<br>";
 padrao("Estudar bastante"); // imprime “Estudar bastante”
?>
Exercícios
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
<?php
 function calcula_todos($v1,$v2,$v3,$opt)
 {
 if ($opt=="s") 
 $calculo = $v1+$v2+$v3;
 else 
 $calculo = $v1-$v2-$v3;
 echo "O resultado é: $calculo";
 } 
 $n1 =10;
 $n2 =20;
 $n3 =30;
 $opt = "s"; 
 calcula_todos($n1,$n2,$n3,$opt); 
?>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
<?php
 
 function reajuste(&$salario) 
 { 
 $salario *= 1.10; 
 }
 $antigo = 1000;
 reajuste($antigo);
 echo $antigo; 
?>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
<?php
 function padrao($calc = 3) 
 {
 echo $calc + 5;
 }
 padrao();
 echo "<br>";
 padrao(10);
?>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
<?php
 function padrao($calc = "valor nulo") 
 {
if($calc=="valor nulo")
echo $calc;
else
 echo $calc + 5;
 }
 padrao();
 echo "<br>";
 padrao(10);
?>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
<?php
	function padrao ($v1="",$v2="")
{
	if($v1=="" && $v2=="") echo "Valores não definidos";
	else echo $v1*$v2;
}
padrao ();
echo "<br>";
padrao (2,3);
?>
2.8 Utilizando Includes em PHP 
Escrever scripts em php pode ser simples, porém, não é uma boa prática colocar todo script dentro de um único documento. O ideal é que se tenha documentos separados e que estes sejam chamados quando necessários (assim como as funções). Para que um script contido em um arquivo separado possa ser usado, devemos chamá-lo utilizando as funções require() e include(). Essas funções agem como chamadas à funções, carregando o script php que recebem como parâmetro e executando-o dentro do script que o chamou. Ex: Temos um script chamado data.php, cuja função é imprimir na tela a data atual. Seu conteúdo é:
Nome do arquivo: data.php
<?php
$data = date("d-m-Y");
echo " Hoje é $data <br>";
?>
Se quisermos que a data seja exibida em todas as páginas de nosso site, não precisaremos escrevereste script novamente. Basta que o “chamemos”, através da função include:
Nome do arquivo: Principal.php
<?php
include("data.php");
?>
Criando um menu para o Site
Arquivo: Menu.php
<font size="2">
<p><strong>Menu</strong></p>
<p><a href="Home.php">HOME</a></p>
<p><a href="Sobre.php">Sobre a Empresa</a></p>
<p><a href="Imagens.ph">Fotos</a></p>
</font>
Arquivo: Principal.php
<?php
include("menu.php");
?>
	Além do comando Include, existe também o comando Require, porém o Require permite chamar somente um arquivo, enquanto o Include através de funções podemos chamar vários.
Exemplo:
<?php
$incluir = array ("data.php","menu.php");
For ($i=0; $i<sizeof($incluir); $i++)
{	
 	include"$incluir[$i]";
	 
}
?>
Usando require, somente será incluído o arquivo: data.php. 
2.9 Formulários
	Formulários são estruturas usadas para que o visitante possa interagir com o site, enviando informações para o site. Essas informações são processadas por scripts que capturam as informações enviadas e as processam, retornando um resultado, gravando-as no banco de dados do site, etc....
O campo pertencente ao formulário é delimitado pelas tag's <form> e </form>. Dentro dessas tag's inserimos os elementos do formulário (campos de texto, botões, etc). Esses elementos irão capturar a informação fornecida pelo visitante e enviar ao script para processamento. Cada elemento possui um nome que é referenciado pelo script na captura de informações.
As tags são:
<form name=”” action=”” method=”” enctype=””>
name: o identificador do formulário. Utilizado principalmente em Scripts client-side (JavaScript);
action: nome do script que receberá os dados do formulário ao ser submetido;
method: método de envio dos dados: get ou post;
enctype: formato em que os dados serão enviados. O default é urlencoded. Se for utilizado um elemento do tipo upload de arquivo (file) é preciso utilizar o tipo multipart/form-data.
2.9.1 Como criar um formulário 
	Os formulários são criados por meio da linguagem HTML. Um formulário é composto de no mínimo um campo para entrada de dados, e um botão para enviar as informações contidas nele.
Exf01.php
<form>
 <p>Digite seu nome: <input type="Text" name="nome" size="20"></p>
 <p><input type="Submit" value="Enviar" name="enviar"></p>
</form>
	Quando clicamos no botão “Enviar” desse formulário, o valor do nome não será enviado a lugar nenhum, pois o navegador não sabe para onde enviar as informações.
	Antes de continuar, iremos verificar algumas informações necessárias para confecções de páginas.
	
2.9.1.1 A tag <input>
Muitos elementos de um formulário html são definidos pela tag <input>. Cada tipo de elemento possui parâmetros próprios, mas todos possuem pelo menos dois parâmetros em comum: type, que define o tipo de elemento, e name, nome daquele elemento. Existem, ainda, outros parâmetros, também chamados atributos que são comuns a maioria dos campos de um formulário. São eles:
Value - o valor pré-definido do elemento, que aparecerá quando a página for carregada;
Size - O tamanho do elemento na tela, em caracteres;
Maxlength - O tamanho máximo do texto contido no elemento, em caracteres;
Exemplo:
<p>Digite seu nome: <input type="Text" name="nome" size="100" maxlength="10"></p>
2.9.1.1.1 Valores da Opção Type
Text: Mostra uma caixa de texto de uma linha, e permite a entrada de numéricos ou alfanuméricos;
Password: Utilizado para a digitação de senhas. São mostrados asteriscos (*) no lugar dos caracteres digitados;
Hidden: é um campo escondido. Não aparece na tela. Podemos utilizá-lo para passar informações aos programas que recebem dados. 
Select: mostra uma lista de seleção (drop-down);
Checkbox: exibe uma caixa de seleção, que pode ser marcada ou desmarcada;
Radio: são botões de seleção, em que o usuário escolhe uma entre várias opções disponíveis;
Textarea: caixa de texto com várias linhas;
File: permite envio de arquivo;
Submit: botão que aciona o envio de dados do formulário;
Image: tem a mesma função do submit, mas utiliza uma imagem em vez do botão tradicional do formulário;
Reset: limpa os campos de um formulário e retorna ao valor-padrão (se existir).
Text
Exf02.php
<form>
<p>Digite seu nome: <input type="Text" name="nome" size="100" maxlength="10"></p>
 <p><input type="Submit" value="Enviar" name="enviar"></p>
</form>
Password
Exf03.php
<form>
<p> Informe a senha: <input type="Password" name="senha" size="6" maxlength ="6"</p>
<p><input type="Submit" value="Enviar" name="enviar"></p>
</form>
Select
Size - número de linhas exibidas. Default: 1;
Multiple - parâmetro que, se presente, permite que sejam selecionadas duas ou mais linhas, através das teclas Control e Shift;
Option - Cada item do tipo “option” acrescenta uma linha ao select;
Value - Valor a ser enviado ao servidor se aquele elemento for selecionado. Default: o texto do item;
Texto - valor a ser exibido para aquele item. Não é definido por um parâmetro, mas pelo texto que fica entre as tags <option> e </option>
Se o parâmetro “size” tiver o valor 1 e não houver o parâmetro “multiple”, exibe na tela uma “combo box”, caso contrário, exibe na tela uma “select list”.
Exf04.php
<form>
<p> 
 Estado: <select name = "Estado" Size = "1">
 <Option value = "RO"> RO </option>
 <option value = "SP">SP </option>
 <option value = "RS"> RS </option>
 </select>
</p>
<p><input type="Submit" value="Enviar" name="enviar"></p>
</form>
Exf05.php
	
<form>
<p> 
 Estado: <select name = "Estado" Size = "3" multiple>
 <Option value = "RO"> RO </option>
 <option value = "SP">SP </option>
 <option value = "RS"> RS </option>
 </select>
</p>
<p><input type="Submit" value="Enviar" name="enviar"></p>
</form>
Checkbox
Value - o valor que será enviado ao servidor quando o formulário for submetido, no caso do campo estar marcado;
Checked – o estado inicial do elemento. Quando presente, o elemento já aparece marcado;
Exf06.php
<form>
 <p> 
 <input type="Checkbox" name="novidades" value = "nov">
 Quero receber as novidades do site por e-mail
 </p>
<p><input type="Submit" value="Enviar" name="enviar"></p>
</form>
Exf07.php
<form>
 <p> 
 <input type="Checkbox" name="novidades" value = "nov" checked>
 Quero receber as novidades do site por e-mail
 </p>
<p><input type="Submit" value="Enviar" name="enviar"></p>
</form>
Radio
Value - o valor que será enviado ao servidor quando o formulário for submetido, no caso do campo estar marcado;
Checked – o estado inicial do elemento. Quando presente, o elemento já aparece marcado;
Exf08.php
<form>
<p> Sexo: <br>
 <input type="radio" name = "sx" value = "masculino" checked> Masculino
 <br>
 <input type="radio" name = "sx" value = "feminino"> Feminino
 </p>
 <p><input type="Submit" value="Enviar" name="enviar"></p>
</form>
Textarea 
Cols - número de colunas do campo, em caracteres;
Rows - número de linhas do campo, em caracteres;
Wrap - Maneira como são tratadas as quebras de linha automáticas. O valor soft faz com que o texto “quebre” somente na tela, sendo enviado para o servidor o texto da maneira como foi digitado; O valor “hard” faz com que seja enviado para o servidor da maneira como o texto aparece na tela, com todas as quebras de linhas inseridas automaticamente; o valor “off” faz com que o texto não quebre na tela e nem quando enviado ao servidor.
Obs.: O elemento do tipo textarea não possui o parâmetro “value”. O valor pré-definido do campo é o texto que fica entre as tags <textarea> e </textarea>.
Exf09.php
<form>
 <textarea name="Comentarios" rows = "5" cols = "20" 
 wrap="hard"></textarea>
 <p><input type="Submit" value="Enviar" name="enviar"></p>
</form>
Upload de arquivos (file)
Exibe na tela do browser um campo de texto e um botão, que ao clicado abre uma janela para localizar um arquivo no disco. Para utilizar este tipo decomponente, o formulário deverá utilizar o método “POST” e ter o parâmetro “enctype” com o valor "multipart/form-data".
Size - O tamanho do campo de texto exibido.
Exf10.php
<form name="form1" enctype="multipart/form-data" method="post" 
 action="">
 <input type="file" name="" size="30">
</form>
Submit Button
Exf11.php
<form> 
 <p><input type="Submit" value="Enviar" name="enviar"></p>
</form>
Reset Button
Exf12.php
<form>
 	<p>Digite seu nome: <input type="Text" name="nome" size="100" 
maxlength="10"></p>
 	<p>
 	<input type="Submit" value="Enviar" name="enviar">
 	<input type="Reset" value="Limpar" name="Cancelar">
</form>
Exemplo:
<form>
 <strong>Dados Cadastrais</strong><br>
 <pre>
 Nome <input type="Text" name="nome" size="35" maxlength="35">
 Endereço <input type="text" name="endereco" size = "35" 
 maxlength="35">
 Bairro <input type="text" name="bairro" size = "20" maxlength="20">
 Cidade <input type="text" name="cidade" size = "20" maxlength="20">
 UF <select name="estado">
 		<option value="AC">AC</option>
 		<option value="AL">AL</option>
 		<option value="AM">AM</option>
 		<option value="AP">AP</option>
 		<option value="BA">BA</option>
 		<option value="CE">CE</option>
 		<option value="DF">DF</option>
 		<option value="ES">ES</option>
 		<option value="GO">GO</option>
 		<option value="MA">MA</option>
 		<option value="MG">MG</option>
 		<option value="MS">MS</option>
 		<option value="MT">MT</option>
 		<option value="PA">PA</option>
 		<option value="PB">PB</option>
 		<option value="PE">PE</option>
 		<option value="PI">PI</option>
 		<option value="PR">PR</option>
 		<option value="RJ">RJ</option>
 		<option value="RN">RN</option>
 		<option value="RO">RO</option>
 		<option value="RR">RR</option>
 		<option value="RS">RS</option>
 		<option value="SC">SC</option>
 		<option value="SE">SE</option>
 		<option value="SP">SP</option>
 		<option value="TO">TO</option>
 	 </select>
 Sexo	<input type = "radio" name = "sx" value="masculino"> Masculino
 	 	<input type = "radio" name = "sx" value="Feminio"> Feminino
 		<input type="Checkbox" name="novidades" value = "nov" 
		checked> Quero receber as novidades por e-mail
 		E-mail <input type="text" name="email" size = "50" 
maxlength="100">
 		Senha <input type="Password" name="senha1" size="6" 
maxlength ="6"> Repetir Senha <input type="Password" 
name="senha2" size="6" maxlength ="6">
 
 </pre>
 
 <p>
 <input type="Submit" value="Enviar" name="enviar">
 <input type="Reset" value="Limpar" name="Cancelar">
 </p>
</form>
2.10 Formulários com PHP
	A linguagem PHP é muito utilizada para o tratamento de formulários. Como visto anteriormente, formulários são utilizados para que o usuário possa enviar informações à página, como seu endereço de e-mail, ou um nome a pesquisar. As informações são enviadas pelo formulário através dos métodos GET ou POST, processadas pelo servidor e armazenadas em arquivos ou bancos de dados. Muitas vezes, esse processamento retorna um resultado (Ex: uma pesquisa) que é enviado ao usuário. A linguagem HTML não é capaz de manipular essas informações, exigindo para isso o uso de scripts, como o PHP. 
O que você deverá observar quando criar seus formulários para manipular dados no PHP:
 Seu formulário deve conter um botão "SUBMIT" para poder enviar as informações;
Todos os campos do formulário que serão tratados no script PHP devem conter o parâmetro "NAME", caso contrário, os dados não serão passados para o script PHP;
Como as informações do formulário são passadas para esse script PHP e como as informações do formulário enviado são tratadas, dependem de você. Existem 2 métodos como as informações podem ser passadas: GET e POST. O recomendável sempre, para todos os formulários é usar o método POST, onde os dados enviados não são visíveis nas URLs, ocultando possíveis importantes informações e permitindo o envio de longas informações. O GET é totalmente o contrário disso. Se no momento da criação de um formulário nenhum método for especificado na opção method da tag form, estaremos usando o método GET para o envio dos dados.
Exemplo:
<form action="recebe.php">
<p>Nome..: <input type="text" name ="nome" size ="30"></p>
<p>Cidade: <input type="text" name ="cidade" size ="30"></p>
<p><input type="submit" value="Enviar" name="enviar"></p>
</form>
Clicando no botão enviar vai receber no navegador a seguinte resposta:
http://127.0.0.1/recebe.php?nome=Euder&cidade=Lins&enviar=Enviar
Como não foi especificado o method, ele assume o padrão GET.
Os campos são passados por parâmetros após o endereço de destino. O caractere ? representa o início de uma cadeia de variáveis, e o símbolo & identifica o início de uma nova variável. As variáveis e seus respectivos valores são separados pelo caractere =.
A vantagem do método GET é a possibilidade da passagem de parâmetros: http://www.loja.com.br/produto.php?codigo=50.
Somente com o método GET, podemos passar parâmetros por links. O método POST trabalha somente com formulários.
Com o método POST,nosso script ficaria assim:
<form action="recebe.php" method="POST">
<p>Nome..: <input type="text" name ="nome" size ="30"></p>
<p>Cidade: <input type="text" name ="cidade" size ="30"></p>
<p><input type="submit" value="Enviar" name="enviar"></p>
</form>
Clicando no botão enviar vai receber no navegador a seguinte resposta:
http://127.0.0.1/recebe.php 
	
	O método POST, envia os dados do formulário por meio do corpo da mensagem encaminhada ao servidor.
	Uma vantagem do método POST é que não há limitação de tamanho dos dados (2000 caracteres com GET) que estão sendo enviados.
	O método GET não envia imagens.
2.10.1 Array superglobal $_GET
O PHP disponibiliza o array $_GET para tratar as informações enviadas pelo método GET. As informações enviadas são mantidas dentro destes arrays e o nome dos campos é utilizado como chave associativa para que o script possa acessar os valores. Exemplo: $_GET['nome'] e $_GET['cidade'].
Arquivo Envia.php
<form name="envia" method="get" action="recebe.php">
<p>Nome..: <input type="text" name ="nome" size ="30"></p>
<p>Cidade: <input type="text" name ="cidade" size ="30"></p>
<p><input type="submit" value="Enviar" name="enviar"></p>
</form>
Arquivo Recebe.php
<?php
//captura as informações enviadas pelo formulário
$nome = $_GET['nome'];
$cidade = $_GET['cidade'];
//mostra as informações na tela
echo "<p align='center'>Meu nome é $nome</p>";
echo "<p align='center'>Minha cidade é $cidade</p>";
?>
2.10.2 Array superglobal $_POST
	Esta variável é utilizada para receber as variáveis vindas do formulário pelo método post.
Sintaxe:
$_POST[campo_do_formulário]
onde:
campo_do_formulário – é o campo que foi criado no formulário que se deseja recuperar.
Exemplo:
<?
$_POST[campo1];
?>
Arquivo Envia.php
<form name="envia" method="POST" action="recebe.php">
<p>Nome..: <input type="text" name ="nome" size ="30"></p>
<p>Cidade: <input type="text" name ="cidade" size ="30"></p>
<p><input type="submit" value="Enviar" name="enviar"></p>
</form>
Arquivo Recebe.php
<?php
//captura as informações enviadas pelo formulário
$nome = $_POST['nome'];
$cidade = $_POST['cidade'];
//mostra as informações na tela
echo "<p align='center'>Meu nome é $nome</p>";
echo "<p align='center'>Minha cidade é $cidade</p>";
?>
Para usar o método POST, basta trocar o $_GET por $_POST.
Exf13.php
Cadastro.php
<form name="Cadastro" method="post" action="DadosCadastro.php">
<p>Nome:<br>
<input name="nome" type="text" id="nome" size="30" maxlength="30"></p>
<p>Senha:<br><input name="senha" type="password" id="senha" size="10" maxlength="10"></p>
<p>Sexo:<br>
<input name="sexo" type="radio" value="Masculino">Masculino
<input name="sexo" type="radio" value="Feminino">Feminino</p><p>Selecione o Turno:<br>
<input name="turno" type="checkbox" id="turno" value="Manhã">Manhã
<input name="turno" type="checkbox" id="turno" value="Tarde">Tarde
<input name="turno" type="checkbox" id="turno" value="Noite">Noite</p>
<p>Cidade:<br>
<select name="cidade" id="cidade">
<option value="vazio"> </option>
<option value="Rio">Rio de Janeiro</option>
<option value="São Paulo">São Paulo</option>
<option value="Belo Horizonte">Belo Horizonte</option>
</select></p>
<p><input type="submit" value="Enviar"></p>
<input type='hidden' name='btnOK' value='1'>
</form>
DadosCadastro.php
<?php
// Recebe os dados do formulário com a variável $_POST
$nome = $_POST["nome"];
$senha = $_POST["senha"];
$sexo = $_POST["sexo"];
$turno = $_POST["turno"];
$cidade = $_POST["cidade"];
// Exibe os dados na página de resposta
echo "Os dados recebidos do formulário são: <p>";
echo "
<table width = '400' border='1' cellspacing='0' cellpadding='0'>
<tr>
<td width = '100'>Nome:<td>
<td width = '300'>$nome</td>
</tr>
<tr>
<td width = '100'>Senha:<td>
<td width = '300'>$senha</td>
</tr>
<tr>
<td width = '100'>Sexo:<td>
<td width = '300'>$sexo</td>
</tr>
<tr>
<td width = '100'>Turno:<td>
<td width = '300'>$turno</td>
</tr>
<tr>
<td width = '100'>Cidade:<td>
<td width = '300'>$cidade</td>
</tr>
</table>
";
?>
<html>
<body>
<p><font face="Arial, Helvetica, sans-serif" size="4">
<a href="cadastro.php">Clique aqui para voltar ao formulário.</a>
</font>
</body>
</html>
2.10.3 Verificando campos de um formulário 
	Para evitar ausência de informações, é possível verificar se todos os campos do formulário foram preenchidos.
	Iremos utilizar o cadastro.php para enviar os dados e dadoscadastro.php para receber os dados.
Funções utilizadas:
EMPTY – Verifica se determinada string está vazia(nula)
STRLEN – Retorna o número de caracteres de uma string
SUBSTR_COUNT – Retorna o número de vezes que uma substring é encontrada.
STRSTR – Acha a primeira ocorrência de uma string. Se não encontrar retorna falso(FALSE).
Cadastro.php
<form name="Cadastro" method="post" action="DadosCadastro.php">
<p>Nome:<br>
<input name="nome" type="text" id="nome" size="30" maxlength="30"></p>
<p>Senha:<br><input name="senha" type="password" id="senha" size="10" maxlength="10"> Min. 5 Caracteres</p>
<p>Sexo:<br>
<input name="sexo" type="radio" value="Masculino" checked>Masculino
<input name="sexo" type="radio" value="Feminino">Feminino</p>
<p>Selecione o Turno:<br>
<input name="turno" type="radio" id="turno" value="Manhã" checked>Manhã
<input name="turno" type="radio" id="turno" value="Tarde">Tarde
<input name="turno" type="radio" id="turno" value="Noite">Noite</p>
<p>Cidade:<br>
<select name="cidade" id="cidade">
<option value="vazio"> </option>
<option value="Rio">Rio de Janeiro</option>
<option value="São Paulo">São Paulo</option>
<option value="Belo Horizonte">Belo Horizonte</option>
</select></p>
<p>E-mail:<br>
<input name="email" type="text" size="50" maxlength="50"></p>
Comentários<p><textarea name="Comentarios" rows = "5" cols = "20" wrap="hard"></textarea>
<p><input type="submit" value="Enviar"></p>
<input type='hidden' name='btnOK' value='1'>
</form>
Dadoscadastro.php
<?php
// Recebe os dados do formulário com a variável $_POST
$nome = $_POST["nome"];
$senha = $_POST["senha"];
$sexo = $_POST["sexo"];
$turno = $_POST["turno"];
$cidade = $_POST["cidade"];
$email = $_POST["email"];
$comentarios = $_POST["Comentarios"];
$erro = 0;
if (empty($nome))
{ $mensagem[] = "Informe o Nome";
 $erro = 1;
}	
if (strlen($senha <= 5))
{
 $mensagem[] = "A Senha deverá ter no mínimo 5 caracteres";
 $erro = 1;
}
if (substr_count($email, "@")!=1 and substr_count($email, ".")!=1 and strlen($email) < 8 )
{ 
 
 $mensagem[] = "E-mail Inválido";
 $erro =1;
}
if ($erro <> 0) 
{
For ($i=0; $i<sizeof($mensagem); $i++)
{
 echo "<br>";
 Echo $mensagem[$i];
}
}
if($erro == 0){
// Exibe os dados na página de resposta
echo "Os dados recebidos do formulário são: <p>";
echo "
<table width = '400' border='1' cellspacing='0' cellpadding='0'>
<tr>
<td width = '100'>Nome:<td>
<td width = '300'>$nome</td>
</tr>
<tr>
<td width = '100'>Senha:<td>
<td width = '300'>$senha</td>
</tr>
<tr>
<td width = '100'>Sexo:<td>
<td width = '300'>$sexo</td>
</tr>
<tr>
<td width = '100'>Turno:<td>
<td width = '300'>$turno</td>
</tr>
<tr>
<td width = '100'>Cidade:<td>
<td width = '300'>$cidade</td>
</tr>
<tr>
<td width = '100'>E-Mail:<td>
<td width = '300'>$email</td>
</tr>
<tr>
<td width = '100'>Comentários:<td>
<td width = '300'>$comentarios</td>
</tr>
</table>
Realizado com sucesso!!!
";
}
?>
<html>
<body>
<p><font face="Arial, Helvetica, sans-serif" size="4">
<a href="cadastro.php">Clique aqui para voltar ao formulário.</a>
</font>
</body>
</html>
Opção para o e-mail:
if(strstr($email ,'@')==FALSE)
{
 $mensagem[] = "E-mail Inválido";
 $erro =1;
}
Funções trim(), ltrim() e chop()	
Para evitar problemas, podemos remover os espaços em excesso que o usuário envia utilizando uma das funções citadas acima. Apesar de possuírem o mesmo objetivo, essas funções possuem pequenas diferenças: A função chop() remove espaços apenas no final da string. A função ltrim() remove espaços no início da string e a função trim() remove espaços no início e no final da string. A utilização depende do resultado desejado.
Envia.php
<form name="envia" method="post" action="recebe.php">
<p>Nome..: <input type="text" name ="nome" size ="30"></p>
<p>Cidade: <input type="text" name ="cidade" size ="30"></p>
<p>Salário: <input type="text" name ="salario" size ="30"></p>
<p><input type="submit" value="Enviar" name="enviar"></p>
</form>
Recebe.php
<?php
//captura as informações enviadas pelo formulário
$nome = $_POST['nome'];
$cidade = $_POST['cidade'];
$salario = $_POST['salario'];
//mostra as informações na tela
echo "<p align='center'>Meu nome é $nome</p>";
echo "<p align='center'>Minha cidade é $cidade</p>";
echo "<p align='center'>Meu salário é $salario</p>";
$cidade = strlen($_POST['cidade']);
echo "<p align='center'>Minha cidade é $cidade</p>";
?>
Foi utilizado a função strlen – mostra a quantidade de caracteres.
Agora imagina que o usuário deixou alguns caracteres em branco no momento da digitação da cidade. Ex: Rio de Janeiro (observa que deixei espaços antes da palavra Rio e após a palavra Janeiro). No momento de gravar em Banco de Dados, iremos guardar informações desnecessárias.
Recebe.php
<?php
//captura as informações enviadas pelo formulário
$nome = $_POST['nome'];
$cidade = $_POST['cidade'];
$salario = $_POST['salario'];
//mostra as informações na tela
echo "<p align='center'>Meu nome é $nome</p>";
echo "<p align='center'>Minha cidade é $cidade</p>";
echo "<p align='center'>Meu salário é $salario</p>";
$cidade = strlen(($_POST['cidade']));
echo "<p align='center'>Minha cidade é $cidade</p>";
$cidade = strlen(chop(($_POST['cidade'])));
echo "<p align='center'>Minha cidade é $cidade</p>";
$cidade = strlen(ltrim(($_POST['cidade'])));
echo "<p align='center'>Minha cidade é $cidade</p>";
$cidade = strlen(trim(($_POST['cidade'])));
echo "<p align='center'>Minha cidade é $cidade</p>";
?>
Exercício Utilizando Checkbox e a função isset()
A função isset() - Retorna true se a variável estiver preenchida (ainda que com uma string vazia ou o valor zero), e false em caso contrário.
X1.php
<html>
<body>
<p align="center"><big><big>
<strong>Selecionar carros</strong></big></big></p>
<form method="POST" action="x2.php">
<div align="center"><center><p>
carro1: <input type="checkbox" name ="carro[]" value=100> </p> </center> </div> 
<div align="center"><center><p>
carro2: <input type="checkbox" name ="carro[]" value=200> </p> </center> </div>
<div align="center"><center><p>
<input type="submit" value="Prosseguir"name="prosseguir"> </p> </center> </div>
</form>
</body>
</html>
X2.php
<html>
<body>
<?php
$recebe = 0;
// Verifica se usuário escolheu algum CARRO
if(isset($_POST["carro"]))
{
foreach($_POST["carro"] as $carro)
{
 $recebe = $recebe + $carro;
}
}
 echo $recebe;
?>
</body>
</html>
Isset.php
<?php
$nome = "Ana";
if (isset($nome))
{ 
echo "OK";
}
?>
2.10.4 Passando informações através de páginas 
	Em um cadastramento de um usuário, alguns programadores resolvem dividir este cadastramento em etapas.
	Para isso utilizaremos um campo Hidden (escondido), serve para passar informações escondidas para a página que será acionada pelo formulário.
Passo1.php
<html>
<body>
<p align="center"><big><big>
<strong>Cadastramento - Passo 1 de 3</strong></big></big></p>
<form method="POST" action="passo2.php">
<div align="center"><center><p>
Nome:<Input type="text" name="nome" size = "20"></p></center</div>
<div align="center"><center><p>
E-mail:<Input type="text" name="email" size = "20"></p></center</div>
<div align="center"><center><p>
Data Nascimento:<Input type="text" name="nascimento" size = "20"> </p> </Center> </div>
<div align="center"><center><p>
Sexo:<Input type="radio" value ="masculino" checked name="sexo">
Masculino&nbsp;&nbsp;
<input type="radio" value="feminino" name="sexo">Feminino</p> </center> </div>
<div align="center"><center><p>
Profissão: <input type="text" name ="profissao" size="20"></p></center></div>
<div align="center"><center><p>
<input type="submit" value="Prosseguir" name="prosseguir"> </p> </center> </div>
</form>
</body>
</html>
Passo2.php
Iremos utilizar o campo tipo hidden para passar informações do passo1.php e do passo2.php para o passo3.php
<html>
<body>
<p align="center"><big><big>
<strong>Cadastramento - Passo 2 de 3</strong></big></big></p>
<form method="POST" action="passo3.php">
<?php echo $_POST['nome']; ?>
<input type = "hidden" name="nome" value="<?php echo $_POST['nome']; ?>">
<input type = "hidden" name="email" value="<?php echo $_POST['email']; ?>">
<input type = "hidden" name="nascimento" value="<?php echo $_POST['nascimento']; ?>"> 
<input type = "hidden" name="sexo" value="<?php echo $_POST['sexo']; ?>"> 
<input type = "hidden" name="profissao" value="<?php echo $_POST['profissao']; ?>">
<div align="center"><center><p>
Telefone:<Input type="text" name="telefone" size = "20"></p></center</div>
<div align="center"><center><p>
Endereço:<Input type="text" name="endereco" size = "20"></p></center</div>
<div align="center"><center><p>
Cidade:<Input type="text" name="cidade" size = "20"> &nbsp;&nbsp;&nbsp;
Estado:<Input type="text" name="estado" size ="2"></p></center</div>
<div align="center"><center><p>
Cep:<Input type="text" name= "cep" size= "9"></p></center></div>
<div align="center"><center><p>
<input type="submit" value="Prosseguir" name="prosseguir"> </p> </center> </div>
</form>
</body>
</html>
Passo3.php
<html>
<body>
<p align="center"><big><big>
<strong>Cadastramento - Passo 3 de 3</strong></big></big></p>
<form method="POST" action="cadastrar.php">
<input type = "hidden" name="nome" value="<?php echo $_POST['nome']; ?>">
<input type = "hidden" name="email" value="<?php echo $_POST['email']; ?>">
<input type = "hidden" name="nascimento" value="<?php echo $_POST['nascimento']; ?>"> 
<input type = "hidden" name="sexo" value="<?php echo $_POST['sexo']; ?>"> 
<input type = "hidden" name="profissao" value="<?php echo $_POST['profissao']; ?>">
<input type = "hidden" name="telefone" value="<?php echo $_POST['telefone']; ?> ">
<input type = "hidden" name="endereco" value="<?php echo $_POST['endereco']; ?> ">
<input type = "hidden" name="cidade" value="<?php echo $_POST['cidade']; ?> ">
<input type = "hidden" name="estado" value="<?php echo $_POST['estado']; ?> ">
<input type = "hidden" name="cep" value="<?php echo $_POST['cep']; ?> ">
<div align="center"><center><p>
Username:<Input type="text" name="username" size = "10"></p></center</div>
<div align="center"><center><p>
Senha:<Input type="text" name="senha1" size = "10"></p></center</div>
<div align="center"><center><p>
Confirma senha:<Input type="text" name="senha2" size = "10"></p> </center> </div>
<div align="center"><center><p>
<input type="submit" value="Finalizar Cadastro" name="fim"> </p> </center> </div>
</form>
</body>
</html>
Cadastrar.php
<?php
//captura as informações enviadas pelo formulário
echo $_POST['nome'];
echo "<br>";
echo $_POST['email'];
echo "<br>";
echo $_POST['nascimento'];
echo "<br>";
echo $_POST['sexo'];
echo "<br>";
echo $_POST['profissao'];
echo "<br>";
echo $_POST['telefone'];
echo "<br>";
echo $_POST['endereco'];
echo "<br>";
echo $_POST['cidade'];
echo "<br>";
echo $_POST['estado'];
echo "<br>";
echo $_POST['cep'];
echo "<br>";
echo $_POST['username'];
?>
2.11 Variáveis de Ambiente 
	Caso precise descobrir informações úteis, devemos utilizar as variáveis de ambiente.
Ex: descobrir o IP do usuário – Utilizando a função getenv.
<?php
 $ip = getenv("REMOTE_ADDR");
 echo "Seu IP: " .$ip;
?>
Ex: Utilização de algumas variáveis de ambiente (existem mais).
<?php
 // Servidor de Software
 $informacao = getenv("SERVER_SOFTWARE");
 echo $informacao;
 //Nome do servidor ou endereco IP
 $informacao = getenv("SERVER_NAME");
 echo "<br>" .$informacao;
//NUmero da porta
 $informacao = getenv("SERVER_PORT");
 echo "<br>" .$informacao;
//Método de envio
 $informacao = getenv("REQUEST_METHOD");
 echo "<br>" .$informacao;
//Nome e versão do browser utilizado pelo cliente 
 $informacao = getenv("HTTP_USER_AGENT");
 echo "<br>" .$informacao;
?>
3 MySQL – phpMyAdmin
O Programa MySQL é um sistema de gerenciamento de banco de dados relacionais baseado em comandos SQL (Structured Query Language - Linguagem Estruturada para Pesquisas) que vem ganhando grande popularidade sendo atualmente um dos bancos de dados mais populares.
Existem muitos SGBD's disponíveis no mercado, de forma gratuita ou através de pagamento de licenças. Entre eles, está o MySQL, um sistema desenvolvido pela Sun Microsystems que roda nativamente no PHP.
A linguagem PHP suporta diversos SGBD's como Oracle, Sybase, Interbase(Firebird), mSQL, Microsoft SQL Server, MSSQL, MySQL, PostgreSQL, entre outros. Entretanto, o MySQL, como SGBD nativo do PHP, não exige instalação de nenhum recurso adicional (driver, extensão, etc), bastando apenas que o sistema esteja funcionando no servidor.
O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito grandes de maneira muito mais rápida que as soluções existentes e tem sido usado em ambientes de produção de alta demanda por diversos anos de maneira bem sucedida. Apesar de estar em constante desenvolvimento, o Servidor MySQL oferece hoje um rico e proveitoso conjunto de funções. A conectividade, velocidade, e segurança fazem com que o MySQL seja altamente adaptável para acessar bancos de dados na Internet.
3.1 Tipos de Tabelas
Vamos conhecer os tipos de tabelas suportados pelo MySQL e suas características.
No MySQL podemos definir vários tipos de tabelas, sendo que um banco de dados pode conter diferentes tipos de tabelas.
Quando você cria uma nova tabela, você pode dizer ao MySQL que tipo de tabela criar. O tipo padrão é o MyISAM.
Abaixo segue um descrição rápida dos tipos de tabelas suportados pelo MySQL:
MyISAM: MyISAM é o tipo de tabela padrão no MySQL. Ela é baseada no código ISAM e possui várias extensões úteis. O índice é armazenado em um arquivo com extensão .MYI (MYIndex), e os dados são armazenados em um arquivo com a extensão .MYD (MYData). Você pode verificar/reparar tabelas MyISAM com o utilitário myisamchk.
Merge: Uma tabela MERGE (também conhecida como tabela MRG_MyISAM) é uma coleção de tabelas MyISAM idênticas que podem ser usadas como uma. Você só pode fazer SELECT, DELETE, e UPDATE da coleção de tabelas.Se você fizer um DROP na tabela MERGE, você só está apagando a especificação de MERGE.
HEAP: As tabelas HEAP do MySQL utilizam hashing 100% dinâmico sem áreas em excesso. Não há espaços extras necessários para listas livres. Tabelas HEAP também não têm problemas com deleção + inserção, o que normalmente é comum em tabelas com hash.
InnoDB: O InnoDB prove o MySQL com um mecanismo de armazenamento seguro com transações (compatível com ACID) com commit, rollback, e recuperação em caso de falhas. InnoDB faz bloqueio a nível de registro e também fornece uma leitura sem bloqueio em SELECT em um estilo consistente com Oracle. Estes recursos aumentam a performance e a concorrência de multi-usuários. InnoDB é o primeiro gerenciador de armazenamento no MySQL que suportam restrições FOREIGN KEY.
3.2 Tipos de dados do MySQL
Os tipos de dados que pode ter um campo, podem-se agrupar em três grandes grupos:
1. Tipos numéricos
2. Tipos de Data
3. Tipos de Cadeia
3.2.1 Tipos numéricos
Existem tipos de dados numéricos, que se podem dividir em dois grandes grupos, os que estão em vírgula flutuante (com decimais) e os que não.
TinyInt: é um número inteiro com ou sem sinal. Com sinal a margem de valores válidos é desde -128 até 127. Sem sinal, a margem de valores é de 0 até 255
SmallInt: número inteiro com ou sem sinal. Com sinal a margem de valores válidos é desde -32768 até 32767. Sem sinal, a margem de valores é de 0 até 65535.
MediumInt: número inteiro com ou sem sinal. Com sinal a margem de valores válidos é desde -8.388.608 até 8.388.607. Sem sinal, a margem de valores é de 0 até 16777215.
Int: número inteiro com ou sem sinal. Com sinal a margem de valores válidos é desde -2147483648 até 2147483647. Sem sinal, a margem de valores é de 0 até 429.496.295
BigInt: número inteiro com ou sem sinal. Com sinal a margem de valores válidos é desde -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. Sem sinal, a margem de valores é de 0 até 18.446.744.073.709.551.615.
Float: número pequeno em vírgula flutuante de precisão simples. Os valores válidos vão desde -3.402823466E+38 até -1.175494351E-38,0 até desde 175494351E-38 até 3.402823466E+38.
Double: número em vírgula flutuante de dupla precisão. Os valores permitidos vão desde -1.7976931348623157E+308 até -2.2250738585072014E-308, 0 e desde 2.2250738585072014E-308 até 1.7976931348623157E+308.
Decimal: Número em vírgula flutuante desempacotado. O número armazena-se como uma cadeia.
3.2.2 Tipos de Data
Na hora de armazenar datas, há que ter em conta que MySQL não verifica se uma data é válida ou não. Simplesmente comprova que o mês está compreendido entre 0 e 12 e que o dia está compreendido entre 0 e 31.
Date: tipo data, armazena uma data. A margem de valores vai desde o 1 de Janeiro de 1001 ao 31 de dezembro de 9999. O formato de armazenamento é de ano-mes-dia.
DateTime: Combinação de data e hora. A margem de valores vai desde o 1 de Janeiro de 1001 às 0 horas, 0 minutos e 0 segundos ao 31 de Dezembro de 9999 às 23 horas, 59 minutos e 59 segundos. O formato de armazenamento é de ano-mes-dia horas:minutos:segundos.
TimeStamp: Combinação de data e hora. A margem vai desde o 1 de Janeiro de 1970 ao ano 2037. O formato de armazenamento depende do tamanho do campo:
Time: armazena uma hora. A margem de horas vai desde -838 horas, 59 minutos e 59 segundos. O formato de armazenamento é 'HH:MM:SS'.
Year: armazena um ano. A margem de valores permitidos vai desde o ano 1901 ao ano 2155. O campo pode ter tamanho dois ou tamanho 4 dependendo de se queremos armazenar o ano com dois ou quatro algarismos.
3.2.3 Tipos de Cadeia
Char(n): armazena uma cadeia de longitude fixa. A cadeia poderá conter desde 0 até 255 caracteres.
VarChar(n): armazena uma cadeia de longitude variável. A cadeia poderá conter desde 0 até 255 caracteres. Dentro dos tipos de cadeia pode-se distinguir dois subtipos, os tipo Test e os tipo Blob (Binary Large Object) A diferença entre um tipo e outro é o tratamento que recebem na hora de ordená-los e compará-los. No tipo test ordena-se sem ter importância as maiúsculas e as minúsculas e no tipo blob ordena-se tendo em conta as maiúsculas e minúsculas.
TinyText e TinyBlob: Coluna com uma longitude máxima de 255 caracteres.
Blob e Text: um texto com um máximo de 65535 caracteres.
MediumBlob e MediumText: um texto com um máximo de 16.777.215 caracteres.
LongBlob e LongText: um texto com um máximo de caracteres 4.294.967.295. Há que ter em conta que devido aos protocolos de comunicação os pacotes podem ter um máximo de 16 Mb.
Enum: campo que pode ter um único valor de uma lista que se especifica. O tipo Enum aceita até 65535 valores diferentes.
3.3 Programando em MySQL
	Iremos desenvolver um projeto para controlar os lançamentos de livros e autores, o nosso banco de dados vai se chamar Biblioteca e as nossas tabelas são: Livros e Autores, lembrando que para cada livro cadastrado temos um autor.
	Vamos iniciar nossa tabela livros com os seguintes campos:
	
	BIBLIOTECA
	LIVROS
	*ID_ISBN
	TITULO
Caracteres(100)
	PAGINAS
INT(4)
	ID_AUTOR
INT(4)
3.3.1 Criando um Banco de Dados
	Iremos trabalhar com PHPMYADMIN – ferramenta gráfica para auxiliar na administração de Banco de Dados. Depois que você instalou o EasyPHP, basta seguir os seguintes passos:
Clicar com botão direito do mouse no ícone do EasyPHP.
Clicar em Administração.
Depois no navegador, clique em PHPMYADMIN.
Também é possível acessar o PHPMYADMIN, digitando no navegador o seguinte endereço: http://127.0.0.1/home/mysql/.
	
Através da interface do PHPMYADMIN, é possível executar vários comandos SQL.
	Vamos criar o Banco de Dados: BIBLIOTECA.
	Você pode criar seu Banco de Dados, através dos comandos SQL, basta clicar em SQL e digitar o seguinte comando: CREATE DATABASE BIBLIOTECA, depois clique em Executar.
	Você pode observar que todos os Bancos existentes estão listados do lado esquerdo da tela.
	É possível listar os bancos através dos comandos SQL. Exemplo: SHOW DATABASES.
	Para começar a criar as tabelas, iremos selecionar o Banco de Dados: BIBLIOTECA.
	Basta digitar o nome da tabela (próxima figura) o número de campos e depois clicar em Salvar e Executar. 
Desta forma foi criado uma chave primária para o campo ID_ISBN e um índice para o campo ID_AUTOR, que depois será transformado em chave estrangeira.
SELECIONE:
e depois clique em .
Observe que foi criado o seguinte comando SQL:
CREATE TABLE `BIBLIOTECA`.`LIVROS` (`ID_ISBN` VARCHAR(25) NOT NULL, `TITULO` VARCHAR(100) NOT NULL, `PAGINAS` INT(4) NOT NULL, `ID_AUTOR` INT(4) NOT NULL, PRIMARY KEY (`ID_ISBN`), INDEX (`ID_AUTOR`)) ENGINE = InnoDB;
Neste momento você pode: Alterar, eliminar, criar chave e índice.
Você poderá ainda adicionar mais campos na tabela. EXEMPLO:
	Vamos agora neste momento inserir alguns registros.
	Basta clicar em .
	Clique em executar, e observe o código SQL gerado:
INSERT INTO `BIBLIOTECA`.`LIVROS` (`ID_ISBN`, `TITULO`, `PAGINAS`, `ID_AUTOR`) VALUES ('987-85-7522-219-5', 'Aplicacões web com PHP e Mysql', '336', '1'), ('978-85-7522-171-6', 'GIMP- Guia do Usuário', '368', '1');
	Vamos inserir mais um registro:
	Se você clicar em , poderá ver os registros existentes na nossa tabela LIVROS.
	Também é possível obter o mesmo resultado com o seguinte comando SQL:
SELECT * FROM `LIVROS`.
Vamos agora criar a tabela: AUTORES.
	BIBLIOTECA
	AUTORES
	*ID_AUTOR
	NOME
Caracteres(35)
	CIDADE
Caracteres(35)
	ESTADO
Caracteres(2)
	TELEFONE
Caracteres(30)
Neste momento estou colocando como chave primária o campo: ID_AUTOR, e também dizendo que este campo é auto incremento (A_I). Estou permitindo que o campo telefone pode ficar em branco (Nulo).
SELECIONE:
e depois clique em .
Observe que foi criado o seguinte comando SQL:
CREATETABLE `biblioteca`.`AUTORES` (`ID_AUTOR` INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY, `NOME` VARCHAR(35) NOT NULL, `CIDADE` VARCHAR(35) NOT NULL DEFAULT 'JI-PARANA', `ESTADO` VARCHAR(2) NOT NULL DEFAULT 'RO', `TELEFONE` VARCHAR(35) NULL) ENGINE = InnoDB;
Iremos inserir alguns dados em nossa tabela:
Observe que foi criado o seguinte comando SQL:
INSERT INTO `biblioteca`.`AUTORES` (
`ID_AUTOR` ,
`NOME` ,
`CIDADE` ,
`ESTADO` ,
`TELEFONE`
)
VALUES (
NULL , 'André MIlani', 'São Paulo', 'SP', NULL
), (
NULL , 'Pablo Dall’Oglio', 'JI-PARANA', 'RO', NULL
);
	Podemos observar que a numeração do campo ID_AUTOR, ficou em sequencia.
	Iremos agora aplicar uma função definida no momento da inserção de um dado.
Observe que foi criado o seguinte comando SQL:
INSERT INTO `biblioteca`.`AUTORES` (`ID_AUTOR`, `NOME`, `CIDADE`, `ESTADO`, `TELEFONE`) VALUES (NULL, UPPER('Flávio Gomes da Silva Lisboa'), 'JI-PARANA', 'RO', NULL);
	Para eliminar um campo da tabela, basta selecionar o campo e clicar em Eliminar.
	Vamos agora inserir um novo campo na tabela Livros.
Inserindo um campo tipo TEXT.
Inserindo um campo tipo BLOB (Binary Large Object) para imagens e sons.
Clique em .
	Editando o campo para alteração .
Inserindo um campo tipo ENUM e SET.
O campo ENUM – 1 único valor.
O campo SET – vários valores.
	Observe que foi criado o seguinte comando SQL:
UPDATE `biblioteca`.`livros` SET `CATEGORIAS2` = 'WEB,PHP' WHERE `livros`.`ID_ISBN` = '987-85-7522-219-5' LIMIT 1;
	Inserindo um campo tipo DATA.
Inserindo um campo tipo DATETIME.
Buscando Informações
	Clique em .
	Preenche as informações necessárias e depois clique em Executar.
	Observe que foi criado o seguinte comando SQL:
SELECT `ID_ISBN`, `TITULO`, `PAGINAS`, `CATEGORIAS` FROM `livros` WHERE `TITULO` LIKE '%PHP%'
Buscando informações no Banco de Dados
	Selecione o e depois clique em .
Visualizando as informações
	Basta clicar em visualização para impressão
Criando um relacionamento entre tabelas
	Iremos agora relacionar as duas tabelas do nosso projeto.
Selecione a tabela Tabela AUTORES (modo Estrutura), e clique em Ver relações. 
Depois selecione NOME na opção escolha o campo para exibir e depois clique no botão SALVAR.
	Selecione a tabela LIVROS (modo Estrutura), e depois clique em Ver relações. Modifique conforme a próxima figura e clique em salvar.
	Desta maneira, quando um autor é excluído, seus livros também serão excluídos. 
	A nossa inserção ficará da seguinte maneira:
	Clicando em , é possível ver a relação.
Operações em Banco de Dados
	Também é possível realizar algumas operações com nosso Banco de Dados, para isso basta clicar em .
	Duas opções importantes são: Renomear e Copiar.
Privilégios
	Iremos agora configurar o PhpMyAdmin, para trabalhar com controle de senhas e privilégios de usuário de Banco de Dados.
	Através da usuário root, clique em .
	Agora clique em Adicionar novo usuário.
Usuário (User): é o nome do usuário propiamente dito. Por exemplo: root, euder. Podem existir duplicatas desses nomes e nesse caso o que vai diferenciar pode ser o próximo campo. Quando este campo está como “Qualquer”, isso quer dizer o servidor de banco de dados pode ser acessado sem usuário. (comando: mysql -u ‘ ‘) 
Servidor (Host): de onde o usuário vem. Você pode restringir o usuário root, por exemplo, para ser acessado apenas da máquina local (localhost), enquanto o usuário euder pode ser acessado apenas de 192.168.0.1. O caracter % significa de qualquer lugar. 
Senha (Password): mais simples impossível: se o usuário tem uma senha configurada ou não. 
Privilégios Globais (Global Privileges): o que o usuário pode fazer em todo o servidor de banco de dados. Cada um desses privilégios é expresso na sintaxe SQL, que é inglês. Por exemplo: SELECT é consultar dados de um banco, UPDATE é atualizar os dados, DELETE é remover e por aí vai. 
Conceder/Grant (Grant): Se sim, o usuário pode conceder privilégios à outros usuários. Geralmente utilizado por “super-usuários”, ou seja, os roots de um banco de dados. 
	Irei adicionar o usuário Masterkey com a senha 1, e não vou associar no momento Banco de Dados e nem permitir privilégios para ele.
	Agora clique em .
	Agora iremos configurar o PhpMyAdmin para pedir usuário e senha.
	Primeiramente, feche seu navegador e abre o arquivo texto: 
	
	Neste momento iremos alterar a seguinte linha:
$cfg['Servers'][$i]['auth_type'] = 'config';
Para
$cfg['Servers'][$i]['auth_type'] = 'cookie';
O PhpMyAdmin exige usuário e senha.
	Digite o Masterkey para o campo usuário e 1 para a senha.
	Como não foi criado privilégios para o usuário, não é possível criar Banco de Dados. Para resolver esse problema, você deverá entrar com um super usuário tipo root, para permitir privilégios ou até associar algum Banco de Dados para este usuário (Masterkey).
	Clique em sair.
	Entre com um usuário com privilégios.
	Clique em , e localize o usuário Masterkey.
	Nesta opção você poderá associar algum Banco de Dados existentes para este usuário. Ex: Biblioteca.
	Marque a seguinte opção:
	Agora faça login com o usuário Masterkey e você vai perceber que ele somente poderá somente consultar informações.
	Você pode trocar os privilégios e verificar os resultados.
Descrições dos Privilégios
CREATE – Permite criar tabelas ou bancos de dados; 
DROP – Permite remover tabelas ou bancos de dados, juntamente com todo seu conteúdo; 
GRANT – Permite adicionar novos privilégios à outros usuários; 
ALTER – Permite alterar a estrutura de tabelas de um banco de dados; 
DELETE – Permite remover dados dentro de tabelas; 
INDEX – Permite criar índices de tabelas dentro de bancos de dados; 
INSERT – Permite inserir dados dentro de tabelas de um banco de dados; 
SELECT – Permite visualizar e fazer consulta aos dados de um banco de dados; 
UPDATE – Permite modificar os dados já existes (mudança de valores) dentro de tabelas de um banco de dados; 
LOCK TABLES (admin) – Permite “trancar” as tabelas, para que não haja mais atualizações nos dados. Utilizado principalmente para fazer backups dos dados (via mysqldump por exemplo); 
CREATE USER (admin) – Permite criar usuários; 
PROCESS (admin) – Permite mostrar as consultas e os dados de monitoramento do servidor de banco de dados; 
RELOAD (admin) – Permite recarregar as configurações do servidor de banco de dados; 
SHUTDOWN (admin) – Permite desligar o servidor de banco de dados; 
SUPER (admin) – Permite o usuário ser um super-usuário, que pode fazer tudo sem excessões. 
4 PHP + MySQL
	Iremos utilizar comandos de SQL + conhecimentos de Banco de Dados. Iremos direcionar nossas informações para um destino determinado.
4.1 Conectando Com o Banco de Dados
A função mysql_connect tenta uma conexão com um servidor MySQL. Deve-se passar como parâmetros: o nome do servidor (ou número IP) onde o MySQL está sendo executado, o nome de usuário e a senha deste usuário. O comando alternativo die trata um possível fracasso na conexão.
A função mysql_selectdb seleciona qual base será selecionada dentro do banco de dados que foi conectado. O comando alternativo die trata um possível fracasso na seleção da base, podendo ser incluída uma mensagem customizada.
A função mysql_query faz consultas à base previamente selecionada. Deve-se passar, como parâmetros, os comandos SQL apropriados. Novamente, o comando alternativo die pode tratar um não sucesso na consulta.
<html>
<head>
<title>Página Conexao</title>
</head>
<body>
<?php
$local_serve = "localhost"; //local do servidor
$usuario = "Masterkey"; //nome do usuario
$senha = "1"; //senha
$banco_dados = "biblioteca"; //nome do banco 
$conn = mysql_connect($local_serve,$usuario,$senha) 
or die ("O SERVIDOR NAO

Outros materiais