PHP - O necessário Para Programar
Introdução:
PHP, diferente de muitas linguagens WEB, necessita de um servidor para poder funcionar em um computador. Hosts já são preparados para suportar a linguagem, mas seu computador precisa de alguns recursos para que o PHP funcione.
O que instalar:
Os recursos básicos são o servidor, mas o banco de dados não é dispensável.
Como a maioria das pessoas que lêem este tutorial são iniciantes, instalar todos esses recursos manualmente seria muito complicado, então, para facilitar a vida de vocês, vocês podem baixar um dos dois pacotes para programação PHP abaixo. Eles incluem tudo que você precisa para ter um servidor em localhost no seu computador.
EasyPHP:
Pacote completo, nele tudo é mais automático. Recomendado para iniciantes.
12.87 MB
Download
(nova versão:
[Somente usuários registrados podem vem os links. ])
XAMPP:
Já nesse, você tem que configurar algumas coisas manualmente. Para usar esse é necessário uma experiência maior. Ele atualiza constantemente para acompanhar as novas versões dos recursos do servidor.
38.87 MB
[Somente usuários registrados podem vem os links. ]
Créditos: Aulto
Lembre-se de que você tem que dominar o PHP, pois irei fazer tutoriais de interação com MySQL e PHP.
Baixa este pacote de apostila para aprender um pouco sobre PHP.
[Somente usuários registrados podem vem os links. ]
2.0 Databases
O mais importante antes de começar qualquer coisa no MySQL, é ter uma database(banco de dados)
para implantar as tabelas. É o código mais simples que tem:
Código:
CREATE DATABASE `nome_da_database`;
Pronto, você já tem uma database para começar.
Para deletar esta database, você usa o comando:
Código:
DROP DATABASE `nome_da_database`;
3.0 Tabelas
Antes de trabalhar o MySQL junto com PHP, vamos ter uma idéia da sintaxe da linguagem.
O código é simples, assim como toda a linguagem SQL.
Código:
CREATE TABLE nome_da_tabela(
`campo` TIPO( QTD_MAX_CARACTERES ),
`campo2` TIPO( QTD_MAX_CARACTERES )
);
Você deve saber que existem tipos de dados para serem armazenados no MySQL.
São vários, mas os principais são:
VARCHAR - Armazenar strings.
TEXT - Armazenar uma string muito grande (texto)
INT - Armazenar números inteiros de -2147483648 até 2147483647.
BIGINT - Armazenar números inteiros de tamanho muito grande.
DATE - Armazenar datas(ANO-MÊS-DIA)
DATETIME - Armazenar data combinada com a hora
TIME - Armazenar a hora
YEAR - Armazenar anos
Desta forma, já podemos começar a criar uma tabela:
Código:
CREATE TABLE tabela1(
`nome` VARCHAR( 50 ) ,
`sobrenome` VARCHAR( 50 ) ,
`idade` INT( 10 ) ,
);
Criaremos, assim, uma tabela com os campos nome, sobrenome e idade, com limite máximo de caracteres, respectivamente, igual a 50, 50 e 10. Lembre-se: Para os numeros, quantidade máxima de caracteres não significa dizer que o numero só alcance até aquele valor, é apenas a quantidade máxima de caracteres que ele pode atingir, se você colocar o máximo de 3 caracteres, ele vai alcançar até 999(numericamente).
Para deletar a tabela:
Código:
DROP TABLE `nome_da_tabela`;
E para limpar a tabela, esvaziar todos os valores dos campos, mas sem deletar a tabela:
Código:
TRUNCATE TABLE `nome_da_tabela`;
3.1 Inserindo Valores na tabela
O método para inserir valores numa tabela é prático e muito simples:
Código:
INSERT INTO `tabela1` (nome, sobrenome, email) VALUES ('Exemplo', 'Exemplo', '[email protected]');
Com este código, você insere, respectivamente nos campos nome, sobrenome e email da tabela os
valores 'Giovanni', 'Paolo', '
[email protected]'. Isso significa dizer que a associação se torna:
Nome ---------- Giovanni
Sobrenome ----- Paolo
Email --------- Exemplo
Se eu executar mais esta consulta no SQL:
Código:
INSERT INTO `tabela1` (nome, sobrenome, email) VALUES ('Pedro', 'Henrique', '[email protected]');
A tabela passa a ser preenchida desta forma:
Nome | Sobrenome | Email
-------------+-------------------------+--------------------------
Giovanni | Paolo | Exemplo
Pedro | Henrique |
[Somente usuários registrados podem vem os links. ]
3.1.1 Inserção de valores nulos:
Antes de mais nada, você precisa entender o que é nulo:
Significado de Null (Nulo)
Bom neste tópico tentarei explicar sobre o famoso null, usando em todas linguagens de programação, eu resolvi ensinar sobre esse null, por causa de uma coisa que vi na net, dizendo que null e igual a nada ou 0, vou acabar com esse mito agora =]
O Null em linguagens de programação, e um valor especifico a um ponteiro, e se refere a um ponteiro Nulo, o null não e como muitos pensam, não valem por 0, na verdade sim mais 0 em binário, como sabem o sistema binário e composto de 0 e 1, o valor de nulo e igual a o 0 do binário, o valor mais baixo que um processador pode armazenar.
Em algumas linguagens de programação o Null e representado de outras formas, como no Pascal o Null e representado como 'nil', e em algumas linguagens e representado como 'nul'.
Exemplo no Visual Basic, e representado como Null, mais também tem o Nothing, que da o valor Null em Objetos.
O Null em algumas linguagem pode significar o final de uma string.
Lembrando, Null não tem o mesmo significado que nada, mesmo sendo nulo ele ainda e um numero binário.
[Fontes]
EneMy
Se eu fizer executar uma consulta desta forma:
Código:
INSERT INTO `tabela1` (nome, sobrenome, email) VALUES ('Aulto', NULL,
'[email protected]');
A tabela passa a ser assim:
Isso acontece porquê eu defini o valor do sobrenome como NULL na consulta.
3.2 Fazendo buscas na tabela
Usamos o comando SELECT para fazer buscas no MySQL.
Esse comando ele faz um filtro, portanto não pode ser chamado de busca, ele faz um filtro nos resultados e exibe apenas os que se enquadram nas espeficicações da busca. A adaptação desse comando para fazer um sistema que é um sistema de busca.
Vamos usar a tabela do tutorial anterior(Inserção de dados). Ela estava assim:
Vamos adicionar mais alguns valores:
Pronto. Lembrando, todos esses endereços são fictícios, exceto o primeiro, que é o meu.
Eu posso simplesmente fazer uma consulta assim:
Código:
SELECT * FROM `tabela1`;
Serão contados todos os resultados da tabela.
Mas eu quero fazer um filtro. Então, tenho que usar alguma coisa que limite os resultados.
Por exemplo:
Código:
SELECT * FROM `tabela1` WHERE Nome Like 'Giovanni';
Essa consulta pegará apenas resultados que tenham o valor do nome igual a "Giovanni".
A consulta retornará apenas um resultado.
Código:
SELECT * FROM `tabela1` WHERE Sobrenome Like 'Carvalho';
Neste caso, duas fileiras tem o campo sobrenome com o valor "Carvalho", então a consulta retornará dois resultados.
E se eu quiser apenas resultados onde os nomes são começados com a letra M?
Eu usarei um item do MySQL que significa que no lugar dele pode existir qualquer valor.
Este símbolo é o "%".
Então, usarei ele desta forma:
Código:
SELECT * FROM `tabela1` WHERE Nome Like 'M%';
Isso significa que a primeira letra tem que ser M e o restante(%) pode ser qualquer coisa.
Eu posso pôr um: Like 'Ma%', e isso fará com que busque apenas resultados que tenham o nome que
comece com 'Ma' e tenha qualquer coisa no final.
Isso significa que a primeira letra tem que ser M e o restante(%) pode ser qualquer coisa.
Eu posso pôr um: Like 'Ma%', e isso fará com que busque apenas resultados que tenham o nome que
comece com 'Ma' e tenha qualquer coisa no final.
Posso usar este '%' de outras formas, se eu pôr no começo, isso significa que pode começar de qualquer jeito, mas o final tem que ser obrigatoriamente aquele.
Código:
SELECT * FROM `tabela1` WHERE Nome Like '%a';
Neste caso, o código procurará resultados que terminem com a letra a.
Eu posso pôr o % no começo e no final do filtro da busca, e isso fará com que a consulta retorne resultados que comecem e terminem com qualquer coisa, mas, que no meio desta string deve conter o que foi especificado.
Código:
SELECT * FROM `tabela1` WHERE Nome Like '%a%';
Retornará todos os resultados que conterem a letra 'a' no valor.
Você pode ordenar a listagem dos resultados de uma consulta, é um método simples e é muito útil, pois te dá a facilidade de se localizar e achar um resultado com facilidade. Usamos, então, o comando ORDER BY:
Código:
SELECT * FROM `tabela1` WHERE Nome Like '%a%' ORDER BY Nome asc;
Nome = Filtro que ele usará para ordenar(Índice).
asc = Método que ele usará pra ordenar(Crescente/Ascendente).
Nome, deve ser um campo da tabela, nunca um valor de um campo da tabela. você pode usar qualquer campo da tabela para ordenar a pesquisa. Mas lembre-se de que os valores dos campos da tabela devem estar de acordo com o tipo de dado do campo da tabela. Caso contrário, a listagem pode não sair como você deseja.
Exemplo:
Preço = um campo da tabela que receberá números.
Se você pôr o tipo de dado desse campo como VARCHAR, quando deveria ser INT. A listagem(asc) ordenada por Id pode sair desta forma:
[Início da lista]
1500
25
3
4800
5
[/Fim da lista]
Você se pergunta: "Por que saiu assim?"
Resposta: Como o tipo do campo é varchar, será considerada apenas a primeira letra da string e será feita a ordenação. No caso, "5" está no fim da lista, mas ele não é maior que 4800. Ele está porque o MySQL considera apenas "5" e "4", então 5 será colocado depois do quatro, por ser maior. No lugar de asc, você pode pôr desc, para ordenar em forma decrescente, ou seja, do maior para o menor. Se o método for desc e o campo da tabela usado como índice tiver o tipo de dado como VARCHAR, ele ordenará os valores que começarem com letras de Z para A e os valores que começarem com números do maior para o menor.
Você pode também limitar a quantidade de resultados para serem exibidos na sua busca.
Código:
SELECT * FROM `tabela1` WHERE Nome Like '%a%' LIMIT 5;
Desta forma, exibirá apenas os 5(cinco) primeiros resultados.
Há também outa forma de usar o LIMIT, é colocando dois argumentos para ele, desta forma, ele buscará os resultados que estiverem entre os dois numeros informados.
Código:
SELECT * FROM `tabela1` WHERE Nome Like 'A%' LIMIT 5, 15;
Deste jeito, serão mostrados os resultados em que sua posição esteja entre 5 e 15.
É um começo inteligente para fazer paginação dos resultados da busca.
TODOS EMAILS ULTILIZADOS SÃO PARA DESMONSTRAÇÕES !!!
Créditos: Giovanni
Paolo -
Aulto