0% acharam este documento útil (0 voto)
25 visualizações63 páginas

Curso PHP 3a4 Parte

Enviado por

Amauri Franco
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOC, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
25 visualizações63 páginas

Curso PHP 3a4 Parte

Enviado por

Amauri Franco
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOC, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 63

CENTRO UNIVERSITÁRIO CENTRAL PAULISTA - UNICEP

APOSTILA DE PHP
EXEMPLOS COM BANCO DE DADOS,
PASSAGEM DE PARÂMETROS, SESSÕES E INCLUDES

Prof. José Eduardo dos Reis

São Carlos
2007
SUMÁRIO

1. MYSQL............................................................................................................3
1.1 Campos..................................................................................................... 4
1.2 Tabelas......................................................................................................7
2. CONFIGURAÇÃO DO BANCO DE DADOS MYSQL...................................14
2.1 Criação da base de dados bdteste no MySQL........................................15
2.2 Criação das tabelas.................................................................................16
2.3 Exemplos de utilização de comandos SQL no MYSQL...........................17
2.3.1 Inserção de registros na tabela.........................................................17
2.3.2 Seleção de registros na tabela..........................................................18
2.3.3 Alteração de registros na tabela........................................................18
2.3.4 Exclusão de registros na tabela........................................................18
3. EXEMPLOS MYSQL X PHP.........................................................................19
4. MODELO DE ÁREA RESTRITA E CADASTRO DE USUÁRIOS................30
4.1 PHP com HTML.......................................................................................34
4.2 Utilizando javascript para verificação de campos vazios.........................35
4.3 PHP e banco de dados MYSQL..............................................................36
4.3.1 Conexão com o banco de dados.......................................................36
4.3.2 Execução da “Query” SQL e criação da Seção................................36
4.4. Criação da Área Restrita.........................................................................37
4.5 Criação do cadastro de Usuário..............................................................39
4.5.1 Listagem de Usuários.......................................................................41
4.5.2 Inserção de Usuários........................................................................43
4.5.3 Alteração de Usuários.......................................................................48
4.5.4 Exclusão de Usuários.......................................................................48
4.5.5 Outros exemplos de cadastros..........................................................48
Cadastro de Grupo de Produtos....................................................................48
Cadastro de Produtos....................................................................................... 49

2
1. MYSQL

O MySQL é um sistema gerenciador de bancos de dados.


Um banco de dados é uma coleção de dados estruturados. Ele pode ser
qualquer coisa desde uma simples lista de compras a uma galeria de imagens
ou a grande quantidade de informação da sua rede coorporativa. Para
adicionar, acessar, e processar dados armazenados em um banco de dados
digital, você necessita de um sistema gerenciador de bancos de dados
semelhante ao MySQL. Como os computadores são muito bons em lidar com
grandes quantidades de dados, o gerenciamento de bancos de dados funciona
como a engrenagem central na computação, como utilitários independentes, ou
como partes de outras aplicações.
O primeiro Banco de dados surgiu em 1960 e era baseado em sistemas de
arquivos, disponíveis na época. Os Sistemas Gerenciadores de Banco de
Dados (SGBD) evoluíram desses sistemas criando novas estruturas de dados
com o objetivo de armazenar informações.

Modelos de Banco de Dados:


 Hierárquico
 Redes
 Relacional (implementado no início dos anos 80);
 Orientado à Objetos (implementado em meados dos anos 80).

Segundo TAKAI (2005), acredita-se que os Bancos de Dados Orientados a


Objetos serão usados em aplicações especializadas, enquanto os sistemas
relacionais continuarão a sustentar os negócios tradicionais, onde as estruturas
de dados baseadas em relações são suficientes.

Um banco de dados relacional, como o MySQL, armazena dados em tabelas


separadas embora todos os dados estejam armazenados em um só local. Isso
proporciona velocidade e flexibilidade. As tabelas são unidas por relações
definidas tornando possível combinar dados de diferentes tabelas nas
requisições. A parte SQL do MySQL atende pela "Linguagem estruturada de
pesquisas" - a linguagem padrão mais comum usada para acessar bancos de
dados.
3
O MySQL foi desenvolvido pela T.c.X. Data Konsult AB e está disponível para
download em : www.mysql.com.br (versão em português).

Tabelas e campos

Uma base de dados e formada pelo seguinte esquema:


Base de dados < Tabela < Registro < Coluna (datatype)
Banco de dados < Tabela < Linha < Campo

A etapa de montagem das tabelas, é senão a mais importante, uma das mais
importantes etapas da montagem de uma base de dados, pois um bom projeto
pode facilitar muito o trabalho de programação.

1.1 Campos

Como já sabemos, os campos são a parte fundamental de uma base de dados.


É nos campos que as informações ficam armazenadas. Para uma otimização
da base de dados, antes e utilizar, devemos definir os campos que desejamos
usar, e especificar o que cada um pode conter.

Principais tipos de campos do MySQL

O MySQL oferece os mais comuns campos, que até mesmo um programador


novato já deve ter visto. Alguns deles estão aqui listados:

CHAR(M)
Os campos CHAR são usados para caracteres alfanuméricos, como endereços
e nomes. Seu tamanho é fixo e instaurado ao ser criado. Um campo do tipo
CHAR pode ter de 1 a 255 caracteres. Exemplo: nome CHAR(10);
Define um campo chamado 'nome', que pode conter até dez letras. Observe
que não há acentos no nome do campo, pois muitos servidores não acentuam,
e sua tabela teria difícil acesso.

4
VARCHAR(M)
Sua estrutura e funcionamento são idênticos ao campo anterior, salvo que no
tipo CHAR, o tamanho definido é fixo, e mesmo que não usado, aquele espaço
em disco é alocado. Já o campo VARCHAR, aloca apenas o espaço
necessário para gravação. Contudo, vale lembrar que trocamos espaço por
velocidade, pois este campo é 50% mais lento que o anterior.
Exemplo: nome VARCHAR(10);
Define um campo chamado ‘nome’ que pode conter até dez letras. Se você
preencher apenas duas, o campo não ocupará todos dez bytes, mas apenas 2.

INT(M) [Unsigned]
O campo INT, que como o próprio número diz, suporta o conjunto dos números
inteiros numa variação de −2147483648 a 2147483647. O parâmetro Unsigned
pode ser passado, excluindo os números negativos, proporcionando um
intervalo de 0 até 4294967295.
Exemplos:
codigo INT;

FLOAT[(M,D)]
Os pontos flutuantes (FLOAT) representam pequenos números decimais, e são
usados para representar números com maior precisão. Exemplo: preco
FLOAT(4,2);

DATE
Campo usado para armazenar informações referentes a data. A forma padrão
‚ é 'AAAA−MM−DD', onde AAAA corresponde ao ano, MM ao mês, e DD ao
dia. Ele pode variar de 0000−00−00 a 9999−12−31. Exemplo: nascimento
DATE;

TEXT/BLOB
Os campos texto e blob são usados para guardar grandes quantidades de
caracteres. Podendo conter de 0 a 65535 bytes, os blobs e texts são úteis para
armazenar documentos completos, como este que você está lendo. A única
diferença entre os campos BLOB e TEXT está no fato de um campo TEXT não

5
ser sensível a letras maiúsculas e minúsculas quando uma comparação é
realizada, e os BLOBs sim. Exemplo: relatorio BLOB; relatorio TEXT;

SET
Um campo interessante, que permite que o usuário faça uma escolha dado
determinado número de opções. Cada campo pode conter até‚ 64 opções.
Exemplo: vicio SET("cafe", "cigarro") NOT NULL;
Neste exemplo este campo pode conter apenas os seguintes itens:
""
"cafe"
"cigarro"
"cafe,cigarro"

ENUM
Um campo com funcionamento semelhante ao SET, com a diferença que
apenas um valor pode Ser escolhido. Exemplo: virtude ENUM("programar",
"amar") NOT NULL;
Neste exemplo este campo pode conter os seguintes valores:
""
"programar"
"amar"

Registros
Um conjunto de campos relacionados, forma o que chamamos de registro. Um
registro, portanto, pode ter a seguinte estrutura:
nome CHAR(15);
email CHAR(25);
telefone INT;
Neste exemplo, nosso registro contém três campos, podendo armazenar o
email e o telefone de uma determinada pessoa. Observe que o campo nome foi
definido como CHAR, portanto poderá conter qualquer tipo de caractere,
contudo, o campo telefone, definido como INT, poderá apenas conter números,
pois foi configurado como INT.

6
1.2 Tabelas

Um conjunto de registros, forma uma tabela. As tabelas portanto, armazenam


grande quantidade de dados. Como no exemplo anterior, poderíamos ter
centenas de nomes diferentes cadastrados em nossa tabela de pessoas. Cada
conjunto de dados corresponde a um registro.
Antes de usar uma base de dados, ou dar qualquer comando, nós precisamos
de uma tabela pelo menos, para armazenar os dados: Isto pode ser feito
usando o comando CREATE TABLE, que recebe como parâmetro o nome da
tabela que desejamos usar.

Abra o Command Line Client do MySQL e crie uma nova base de dados:
mysql> create database db1;

Na seqüência, cria a tabela teste, como mostrado abaixo:

mysql> CREATE TABLE teste(


>codigo INT,
>nome CHAR(15),
>email CHAR(25),
>telefone INT);
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Notas:
− Não é possível criar duas tabelas com o mesmo nome;
− Cada conjunto de dados, quando visto em uma tabela, é também chamado
linha;
− Você acaba de criar sua primeira tabela!
Características das linhas:
− O nome de uma coluna pode ter até 64 letras;
− O nome de uma coluna pode começar com um número;
− O nome de uma coluna não pode ser composto de números apenas.

7
Opções de uma tabela:
As seguintes opções podem ser adicionadas a qualquer campo de uma tabela,
concatenando recursos adicionais a estes campos.

−Chave primária:
Usado para que não seja permitido, que o usuário consiga cadastrar dois
registros com chaves primárias iguais. Isto é claramente útil, quando não é
desejado que seja digitado um segundo registro igual ao primeiro por engano.
Para se definir uma chave primária, basta adicionar 'PRIMARY KEY' a
definição do campo que se deseja a não duplicidade.
Exemplo: nome CHAR(15) PRIMARY KEY;
Esta declaração faz com que não seja permitido o cadastro na tabela de dois
registros com nomes iguais.

−Auto incremento:
Este recurso, faz com que conforme novos registros são criados,
automaticamente estes obtém valores que correspondem ao valor deste
mesmo campo no registro anterior, somado a 1.
Exemplo: codigo INT AUTO_INCREMENT;
Soma um a cada registro automaticamente neste campo. Começando de 1,
com inserção subsequente.

Comandos relativos às tabelas:


Podemos executar comandos para saber as condições que as tabelas se
encontram, e também manipulá−las. Abaixo, poderemos conhecer os
fundamentais:

−Mostrar tabelas
Função: Lista todas as tabelas existentes no banco de dados atual.
Comando: mysql>show tables;

−Mostrar colunas
Função: Mostra as informações referentes a estrutura, ou seja, as colunas da
tabelas desejada.
Comando: mysql>show columns from teste;

8
Manipulando a base de dados
Uma base de dados pode ser manipulada com quatro operações básicas:
Incluir, Apagar, Alterar, e Pesquisar. Estes tópicos serão brevemente
abordados nas seções seguintes:
Seleciona base de dados:
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
use teste;
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
−Cria tabela:
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
mysql> CREATE TABLE teste(
>codigo INT,
>nome CHAR(15),
>email CHAR(25),
>telefone INT);
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

Inserindo registros
Para se adicionar dados a uma tabela, usamos o comando INSERT, que diz
por si só sua função, como o exemplo que segue:
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
−mysql>INSERT INTO teste VALUES
mysql>(NULL, 'Ernesto', 'ernesto@nbsnet.com.br',
mysql>2742729);
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

Observações:
−Apostrofes foram colocadas na entrada de campos tipo CHAR. Todos os
campos que contém texto, ou seja, CHAR, VARCHAR, BLOB, TEXT, etc. têm
de ficar entre apóstrofes, ou um erro ocorrerá;
−Para campos do tipo número, não se usam apóstrofes.
−A entrada NULL em um campo do tipo auto−incremento, permite que o
MySQL providencie o conteúdo deste campo de forma automática. No caso do

9
primeiro campo, o valor será 1, no segundo 2, no terceiro 3 e assim
consecutivamente.
−Se possuíssemos um campo DATE, a entrada NULL faria com que o valor
gravado no registro se torne a data atual.

Nota:
É importante lembrar sempre de passar para o comando INSERT um número
de parâmetros igual ao número de campos na tabela que está recebendo os
dados. Caso contrário, você obterá uma mensagem de erro. O mesmo erro
também ocorre ao tentar inserir mais parâmetros do que o número de campos
suportado pela tabela.
Nota 2:
Uma das grandes vantagens do MySQL é a capacidade de conversão entre
campos. O sistema automaticamente converte números em caracteres, ou em
datas sem problemas.

Pesquisando registros
As pesquisas no MySQL são feitas através do comando SELECT. Este
comando pode fazer desde uma simples e trivial pesquisa até uma pesquisa
extremamente complexa.
Exemplos:
Ação:

mysql>SELECT * FROM teste;


Resultado: Lista todos registros da tabela teste.
Ação:
mysql>SELECT * FROM teste
mysql>WHERE (nome = "Maria");
Resultado:
Lista todos os registros da tabela teste que contém "Maria" no campo nome.

10
Apagando registros
Quando um registro não nos é mais útil, podemos apagá−lo, para que a tabela
não contenha dados obsoletos.
Ação:
mysql>DELETE FROM teste
mysql>WHERE (telefone = 2744747);
Resultado: Apaga da tabela teste todos os registros que têm o conteúdo
"2744747" no campo telefone.

Alterando registros
Para tal, existe o comando UPDATE. Observe os exemplos:
Ação:
mysql>UPDATE teste SET nome = 'Maria Ana'
mysql>WHERE nome = 'Maria';
Resultado:
Procura na tabela um registro que contenha no campo nome o conteúdo
'Maria', definido pelo comando WHERE. Encontrado o registro, ele é
substituído pelo nome definido no comando SET, que é 'Maria Ana'.

Operadores
O MySQL é repleto de comandos avançados que permitem fazer operações
para todas as necessidades. Veremos agora alguns comandos avançados do
MySQL:

Operadores lógicos:
O MySQL suporta todas operações lógicas, estando abaixo listadas as mais
conhecidas:

AND (&&)
O operador lógico AND, ou E, deve ser usado em uma pesquisa que se deseja
entrar dois valores. O AND verifica ambas as clausulas da comparação, e só
retorna algum valor se as duas tiverem uma resposta verdadeira. Observe o
exemplo:

11
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
mysql>SELECT * FROM teste WHERE
mysql>(nome = "Aline") AND
mysql>(telefone = 2728918);
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
A pesquisa mostrará todos os registros que contém no campo nome e
conteúdo "Aline", E (AND) no campo telefone, o conteúdo 2728988.

OR (||)
O operador lógico OR, ou OU, deve ser usado em uma pesquisa que se deseja
entrar dois valores.
O exemplo abaixo verifica ambas as cláusulas da comparação, e retorna
valores se qualquer um dos membros obtiver resultado.
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
mysql>SELECT * FROM teste WHERE
mysql>(nome = "Aline") OR
mysql>(telefone = 2728918);
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Este pesquisa fará com que todos os resultados que contenham o conteúdo
"Aline" no campo nome, OU 2728918 sejam exibidos na tela.

NOT (!)
O operador lógico NOT, ou NÃO, realiza uma pesquisa, excluindo valores
determinados do resultado.
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
mysql>SELECT * FROM teste WHERE
mysql>(nome != "Aline");
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Esta pesquisa listara todos os registros da base de dados teste, NÃO (NOT)
mostrando aqueles que possuem "Aline" como conteúdo do campo nome.

12
ORDER BY
O operador lógico ORDER BY, ou ORDENAR POR, simplesmente lista os
registros, colocando−os em ordem de acordo com o campo solicitado.
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
mysql>SELECT * FROM teste WHERE
mysql>(nome = "Aline")
mysql>ORDER BY telefone;
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
O resultado desta busca resultara em todos os registros contendo "Aline" no
campo nome, e a listagem será organizada de acordo com a ordem do
telefone.

13
2. CONFIGURAÇÃO DO BANCO DE DADOS MYSQL

Para a configuração do Servidor de Banco de dados MySQL, utilizando o


MySQL Control Center, siga os passos abaixo:

Configure-o da seguinte forma:


 Host Name: localhost
 User Name: root
 Deixaremos sem senha.
 Clique em Adicionar.

O MySQL Control Center criará um novo servidor de banco de dados, como


mostrado na figura abaixo:

14
 Clique com o botão direito do mouse no servidor MySQL criado:

e selecione a opção Conectar.

2.1 Criação da base de dados bdteste no MySQL

Existem duas formas de criação da base: a primeira é utilizando a opção de


entrada de comandos SQL e a outra é utilizando a parte gráfica, clicando com o
botão direito nas opções, conforme vão sendo criadas. Ex: New Database, New
Table, etc.
Segue abaixo a criação das duas formas de modo detalhado:

 Clicando sobre o botão e executando o código, como mostrado na


figura abaixo:

Para executar o código, clique no botão

 Outra forma de criar a base é simplesmente clicando com o botão direito


sobre a pasta Databases, e selecionem a opção New Database. Na
seqüência, digite o nome: bdteste.

15
2.2 Criação das tabelas

Da mesma forma como explicado anteriormente, poderá ser feito com a criação
das tabelas, via comandos SQL ou via modo gráfico.

 Para o primeiro caso, basta entrar com o código SQL para criação da
tabela. Ex: Criação da Tabela Usuario, a qual será usada para
realizarmos a verificação de usuário e senha válidos para nossa área
restrita:

CREATE TABLE `Usuario` (


`idusuario_us` int(11) NOT NULL default '0',
`nome_us` varchar(100) NOT NULL default '',
`login_us` varchar(20) NOT NULL default '',
`senha_us` varchar(20) NOT NULL default '',
PRIMARY KEY (`idusuario_us`)
)

Para o caso de criação via modo gráfico, basta seguir os passos abaixo:

Clique com o botão direito em Tables, New Table.

Entre com o nome dos campos da tabela e seus tipos. Ex:


Field Name: Idusuario_us
Data Type: int

Depois de entrar com todos os campos, basta salvar e acrescentar o nome da


tabela, que no nosso primeiro caso será Usuario.

16
2.3 Exemplos de utilização de comandos SQL no MYSQL

Seguem abaixo alguns exemplos de comandos SQL que serão importantes


para nossos controles de INSERÇÃO, SELEÇÃO, ALTERAÇÃO e EXCLUSÃO
de registros em nossa página PHP:

2.3.1 Inserção de registros na tabela

Entre com o código SQL para criação da tabela. Ex: Inserção de um registro na
Tabela Usuário:

INSERT INTO `Usuario` (idusuario_us, nome_us, login_us, senha_us) values


(1,"Nome do administrador","adm","1");

INSERT INTO `Usuario` (idusuario_us, login_us, senha_us) values


(2,"adm","2");

INSERT INTO `Usuario` values (3,"Nome do usuario","adm","senha3");

Ou, via modo gráfico, dê dois cliques sobre a tabela criada e na seqüência,
clique em adicionar registro, clicando no botão assinalado abaixo:

Depois de digitados os valores do nosso registro, clique em executar [ ! ].

17
2.3.2 Seleção de registros na tabela

O comando abaixo mostrará todos os registros inseridos:

SELECT * FROM Usuario

Caso precisemos que a seleção nos mostre, por exemplo, somente os registros
que possuem o login ‘adm’:

SELECT * FROM Usuario WHERE login_us = “adm”

Caso precisemos que a seleção nos mostre, por exemplo, somente os registros
que possuem o nome de usuário vazio:

SELECT * FROM Usuario WHERE nome_us = ""

2.3.3 Alteração de registros na tabela

Caso precisemos alterar o login (que continha o valor “adm”) para receber o
valor administrador, e a senha (que continha o valor “1”), para receber o valor
“1234”

UPDATE Usuario SET login_us = "administrador", senha_us = "1234" WHERE


idusuario = 1

Caso precisemos alterar o nome (que continha o valor “Nome do


administrador”) para receber o seu nome:

UPDATE Usuario SET nome_us = "seu nome" WHERE login = “usuário”

O comando abaixo mostrará todos os registros com as modificações:

SELECT * FROM Usuario

2.3.4 Exclusão de registros na tabela

Caso precisemos excluir um registro, por exemplo, o registro onde o id do


usuário é 3:

DELETE FROM Usuario WHERE idusuario_us = 3

Caso precisemos apagar todos os registros:

DELETE FROM Usuario

18
3. EXEMPLOS MYSQL X PHP
Crie uma base de dados chamada teste2.
Crie a tabela como mostrado no código abaixo:

CREATE TABLE `teste`.`Clientes` (


`CodigoDoCliente` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`NomeDaEmpresa` VARCHAR( 50 ) NOT NULL ,
`NomeDoContato` VARCHAR( 30 ) NULL ,
`Cidade` VARCHAR( 30 ) NULL
) TYPE = MYISAM

Exemplo de conexão com o servidor MySQL, conexão com a base de dados e


consulta à tabela Clientes:

ex_bd.php

<html>
<head>
<title>Página PHP</title>
</head>
<body>
<?
if (mysql_connect("127.0.0.1", "root", "") or die("Não foi possível
conectar"))
echo "Conexão com o servidor realizada com a com
sucesso<br>";
if (mysql_select_db("teste2") or die("Não foi possível selecionar o banco
de dados"))
echo "Conexão com o banco de dados teste realizada com a com
sucesso<br>";
if (mysql_query("SELECT * FROM Clientes") or die("Falha na execução
da consulta"))
echo "Consulta à tabela Clientes realizada com sucesso";
?>
</body>
</html>

Crie um arquivo de conexão como mostrado abaixo:

<?
mysql_connect("localhost","root","") or die("Erro de conexão");
mysql_select_db("teste2") or die("Base de dados não existe");
?>

19
ex_bd1.php

<? include_once("conexao.php"); // Incluindo o arquivo de conexão com o


BD ?>
<html>
<head>
<title>Página PHP</title>
</head>
<body>
<?php
$consulta = "SELECT * FROM Clientes";
$resultado = mysql_query($consulta) or die ("Falha na execução da
consulta");

$linha = mysql_fetch_assoc($resultado);
$NomeDaEmpresa = $linha["NomeDaEmpresa"];
$NomeDoContato = $linha["NomeDoContato"];
echo "<b>Nome da empresa:</b> $NomeDaEmpresa<br>";
echo "<b>Nome do contato:</b> $NomeDoContato";
?>
</body>
</html>

ex_bd2.php

<? include_once("conexao.php"); ?>


<html>
<head>
<title>Página PHP</title>
</head>
<body>
<?php
$consulta = "SELECT * FROM Clientes";
$resultado = mysql_query($consulta) or die("Falha na execução da
consulta");
while ($linha = mysql_fetch_assoc($resultado))
{
$NomeDaEmpresa = $linha["NomeDaEmpresa"];
echo "<b>Nome da empresa:</b> $NomeDaEmpresa<br>";

echo "<b>Nome do contato: </b>".


$linha["NomeDoContato"]."<br><br>";
}

?>
</body>
</html>

20
ex_bd2_1.php

<? include_once("conexao.php"); ?>


<html>
<head>
<title>Página PHP</title>
</head>
<body>
<?php
$consulta = "SELECT * FROM Clientes";
$resultado = mysql_query($consulta) or die("Falha na execução da
consulta");
$i = 0;
while (mysql_num_rows($resultado) > $i)
{
$NomeDaEmpresa =
mysql_result($resultado,0,'NomeDaEmpresa');
echo "<b>Nome da empresa:</b> $NomeDaEmpresa<br>";

echo "<b>Nome do contato: </b>". mysql_result($resultado,


$i,'NomeDoContato')."<br><br>";
$i++;
}
?>
</body>
</html>

ex_bd3.php

<html>
<head>
<title>Página PHP</title>
</head>
<body>
<?php
$link = mysql_connect("127.0.0.1", "root", "") or die("Não foi possível
conectar");
mysql_select_db("teste") or die("Não foi possível selecionar o banco de
dados");
$consulta = "SELECT * FROM Clientes";
$resultado = mysql_query($consulta) or die("Falha na execução da
consulta");
while ($linha = mysql_fetch_assoc($resultado))
{
$NomeDaEmpresa = $linha["NomeDaEmpresa"];
$NomeDoContato = $linha["NomeDoContato"];
echo "<b>Nome da empresa:</b> $NomeDaEmpresa<br>";
echo "<b>Nome do contato:</b> $NomeDoContato<p>";
}
?>
</body>
</html>

21
ex_bd4.php

<? include_once("conexao.php"); ?>


<html>
<head>
<title>Página PHP</title>
</head>
<body>
<table width="400" border="1" cellspacing="0" cellpadding="0">
<?php
$consulta = "SELECT * FROM Clientes";
$resultado = mysql_query($consulta) or die("Falha na execução da
consulta");
//$linha = mysql_fetch_assoc($resultado);
while ($linha = mysql_fetch_assoc($resultado))
{
$NomeDaEmpresa = $linha["NomeDaEmpresa"];
?>
<tr>
<td><? echo "<b>Nome da empresa:</b> $NomeDaEmpresa<br>";

echo "<b>Nome do contato: </b>".


$linha["NomeDoContato"]."<br><br>"; ?></td>
</tr>

<?
//$cidade = mysql_result($resultado,0,'Cidade');
//echo "<b>Cidade: </b> $cidade<br>";
}

?>
</table>
</body>
</html>

22
ex_bd5.php

<? include_once("conexao.php"); ?>


<html>
<head>
<title>Página PHP</title>
</head>
<body>
<table width="400" border="1" cellspacing="0" cellpadding="0">
<?php
$consulta = "SELECT * FROM Clientes";
$resultado = mysql_query($consulta) or die("Falha na execução da
consulta");
//$linha = mysql_fetch_assoc($resultado);
$cor = '#DEE3EB';
while ($linha = mysql_fetch_assoc($resultado))
{
$NomeDaEmpresa = $linha["NomeDaEmpresa"];
?>
<tr>
<td bgcolor="<?=$cor?>"><? echo "<b>Nome da empresa:</b>
$NomeDaEmpresa<br>";

echo "<b>Nome do contato: </b>".


$linha["NomeDoContato"]."<br>"; ?></td>
</tr>

<?
if ($cor == '#DEE3EB')
$cor = '#ffffff';
else if ($cor == '#ffffff')
$cor = '#ffffcc';
else
$cor = '#DEE3EB';
//$cidade = mysql_result($resultado,0,'Cidade');
//echo "<b>Cidade: </b> $cidade<br>";
}

?>
</table>
</body>
</html>

23
ex_bd6.php

<? include_once("conexao.php"); ?>


<html>
<head>
<title>Página PHP</title>
</head>
<body>
<table width="400" border="1" cellspacing="0" cellpadding="0">
<tr>
<td><div align="center"><strong>EMPRESA</strong></div></td>
<tD><div align="center"><strong>CONTATO</strong></div></td>
</tr>
<?php
$consulta = "SELECT * FROM Clientes";
$resultado = mysql_query($consulta) or die("Falha na execução da
consulta");
//$linha = mysql_fetch_assoc($resultado);
$cor = '#DEE3EB';
while ($linha = mysql_fetch_assoc($resultado))
{
$NomeDaEmpresa = $linha["NomeDaEmpresa"];
?>
<tr>
<td width="168" bgcolor="<?=$cor?>"><?= $NomeDaEmpresa; ?></td>
<td width="226" bgcolor="<?=$cor?>"><?= $linha["NomeDoContato"];
?></td>
</tr>

<?
if ($cor == '#DEE3EB')
$cor = '#ffffff';
else if ($cor == '#ffffff')
$cor = '#ffffcc';
else
$cor = '#DEE3EB';
//$cidade = mysql_result($resultado,0,'Cidade');
//echo "<b>Cidade: </b> $cidade<br>";
}

?>
</table>
</body>
</html>

24
ex_bd7.php

<? include_once("conexao.php"); ?>


<html>
<head>
<title>Página PHP</title>
</head>
<body>
<?php
$consulta = "SELECT NomeDaEmpresa, NomeDoContato FROM Clientes
WHERE Cidade = 'Rio Claro'";
$resultado = mysql_query($consulta) or die("Falha na execução da consulta");
while ($linha = mysql_fetch_assoc($resultado))
{
$NomeDaEmpresa = $linha["NomeDaEmpresa"];
$NomeDoContato = $linha["NomeDoContato"];
echo "<b>Nome da empresa:</b> $NomeDaEmpresa<br>";
echo "<b>Nome do contato:</b> $NomeDoContato<p>";
}
?>
</body>
</html>

ex_bd8.php

<? include_once("conexao.php"); ?>


<html>
<head>
<title>Página PHP</title>
</head>
<body>
<?php
$consulta = "SELECT NomeDaEmpresa, NomeDoContato FROM Clientes
WHERE Cidade = 'Rio Claro'
Order by NomeDaEmpresa";
$resultado = mysql_query($consulta) or die("Falha na execução da consulta");
while ($linha = mysql_fetch_assoc($resultado))
{
$NomeDaEmpresa = $linha["NomeDaEmpresa"];
$NomeDoContato = $linha["NomeDoContato"];
echo "<b>Nome da empresa:</b> $NomeDaEmpresa<br>";
echo "<b>Nome do contato:</b> $NomeDoContato<p>";
}
?>
</body>
</html>

25
ex_bd9.php

<? include_once("conexao.php"); ?>


<html>
<head>
<title>Página PHP</title>
</head>
<body>
<?php
//$CodigoDoCliente = "EELTD";
$NomeDaEmpresa = "Editora Europa";
$NomeDoContato = "Rodolfo Melo";
$Cidade = "São Paulo";
$consulta = "INSERT INTO Clientes (NomeDaEmpresa,
NomeDoContato, Cidade)
VALUES ('$NomeDaEmpresa', '$NomeDoContato', '$Cidade')";
$resultado = mysql_query($consulta) or die("Falha na execução da
consulta");
echo "Dados adicionados com sucesso";
?>
</body>
</html>

ex_bd10.php

<? include_once("conexao.php"); ?>


<html>
<head>
<title>Página PHP</title>
</head>
<body>
<?php
$CodigoDoCliente = 5;
$NomeDoContato = "Robinson Melgar";
$consulta = "UPDATE Clientes SET NomeDoContato =
'$NomeDoContato'
WHERE CodigoDoCliente = $CodigoDoCliente";
$resultado = mysql_query($consulta) or die("Falha na execução da
consulta");
echo "Dados alterados com sucesso";
?>
</body>
</html>

26
ex_bd11.php

<? include_once("conexao.php"); ?>


<html>
<head>
<title>Página PHP</title>
</head>
<body>
<?php
$CodigoDoCliente = 5;
$consulta = "DELETE FROM Clientes WHERE CodigoDoCliente =
$CodigoDoCliente";
$resultado = mysql_query($consulta) or die("Falha na execução da
consulta");
echo "Registro excluído com sucesso";
?>
</body>
</html>

27
Exemplo de um livro de visitas:

Criem uma base chamada bdvisitas e na seqüência criem a tabela abaixo:

CREATE TABLE `livro_visita` (


`id` int(5) unsigned zerofill NOT NULL auto_increment,
`nome` varchar(255) default NULL,
`localizacao` varchar(50) default NULL,
`mensagem` text,
`data` datetime default NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;

index.php

<html>
<head>
<title>Livro de Visitas: Assinar</title>
</head>
<body bgcolor="white">
<h1>Assine o Livro de Visitas</h1>
<?
if ($err) {
?>
<ul><font color="red"><? echo $err; ?></font></ul>
<?
}
?>
<form method="post" action="assinar.php">
<table border="0">
<tr>
<td>Nome: </td>
<td><input type="text" size="60" name="nome" maxlength="250"></td>
</tr>
<tr>
<td>Localização: </td>
<td><input type="text" size="60" name="localizacao" maxlength="45"></td>
</tr>
<tr>
<td colspan="2">
<textarea cols="60" rows="10" name="mensagem">Digite aqui sua
mensagem!</textarea>
</td>
</tr>
</table>
<input type="submit" value="Assinar">
</form>
</body>
</html>

28
assinar.php

<?
// getenv -> Retorna o nome da variável de ambiente varname, ou FALSE em
caso de erro, ou seja, caso o modulo de chamada do form não seja post ele
retorna erro
if (getenv("REQUEST_METHOD") == "POST") {
// Captura o valor dos campos digitado e atribui a uma variável
$nome = $_POST['nome'];
$localizacao = $_POST['localizacao'];
$mensagem = $_POST['mensagem'];
// Verifica se os campos foram preenchidos, caso não chama o index.php
denovo e mostra mensagem de erro
if ($nome and $localizacao and $mensagem) {
$conexao = mysql_connect("localhost","root","");
mysql_select_db("bdvisitas",$conexao);
$query = "INSERT INTO livro_visita
VALUES('00000','$nome','$localizacao','$mensagem',NOW())";
mysql_query($query,$conexao);
header("Location: index.php");
} else {
$err = "Preencha todos os campos!";
header("Location: index.php?err=$err");
}
}
?>

29
4. MODELO DE ÁREA RESTRITA E CADASTRO DE USUÁRIOS

No Dreamweaver, abra uma nova página dinâmica (PHP). Esta virá com os
comandos HTML abaixo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"


"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-
1" />
<title>Untitled Document</title>
</head>
<body>

</body>
</html>

 Crie uma tabela com 4 linhas, uma coluna em cada linha e com largura
de 780 pixels (isso porque vamos colocar uma figura no cabeçalho com
essa largura) e altura 100%. Centralize a tabela.
 A primeira linha deverá estar com 66 pixels (isso porque vamos colocar
uma figura com essa altura).
 A segunda linha deverá estar com 20 pixels de altura.
 A terceira linha deverá estar com 100% de altura. Subdivida a terceira
linha em 3 colunas.

Selecione a tabela, coloque borda 1 e acrescente cores para as linhas. Na


seqüência, salve o arquivo para visualização no browser.

30
Para deixar nossa tabela alinhada no topo da página, faça:

 Entre no código HTML, e procure a tag <body>


 Acrescente as opções de topo e base das margens como mostrado
abaixo:

<body topmargin="0" bottommargin="0">

Visualizem novamente a página no browser:

Verificamos que a página alinhou somente o topo. Para alinhar a página na


base também (em 100% vertical), faça:
 No código HTML, apaguem a primeira linha:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"


"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Visualize novamente a página no browser:

31
Acesse a página http://www.unicep.edu.br e clique em pesquisa. Copie a
primeira figura do cabeçalho e colem no Paint. Na seqüência deixe somente o
logo da UNICEP no canto direito e pinte o resto de azul. Salve a figura como
nome barracima.gif, numa pasta com o nome imagens, dentro de nosso
diretório:
C:\phpdev\www\public\php\imagens\

Insira a figura barracima.gif no cabeçalho da página, salve o arquivo e o


visualize no browser:

No modo visual, na coluna à esquerda da terceira linha, clique dentro e alinhe


topo (vertical), e coloque largura de 140 pixels.
Crie uma tabela com 140 pixels de largura, 8 linhas, 1 coluna.
Faça o mesmo para a coluna à direita da terceira linha.
Clique na coluna do meio e coloque 64% na largura.

Monte o restante da página como mostrado na figura abaixo (basta acrescentar


os textos e alterar as cores):

Obs.: no caso dos links, faça:

Página inicial  coloque o link: index.php


Produtos  coloque o link: produtos.php
Fale conosco  coloque o link: faleconosco.php

32
No caso dos nossos textfields (campos de usuário e senha), coloque como
nomes: usuario e senha respectivamente e um botão para submeter o
formulário.

Na coluna à esquerda, em torno de nossa tabela de opções, acrescente um


formulário (form) como mostrado o código abaixo:

<form name="frmteste" method="post" action="acesso.php">


<table width="140" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="20" bgcolor="#244D85">
<div align="center" class="style21">Op&ccedil;&otilde;es</div></td>
</tr>
( …)
</table>
</form>
Esse form será útil para passarmos os dados preenchidos, nos campos usuário
e senha, como parâmetros para acesso à Área Restrita.

33
4.1 PHP com HTML

No modo visual, clique dentro da segunda linha, alinhe à direita, entrem no


modo código e insira o código PHP abaixo:

Salve o arquivo e o visualize no browser.

O uso de INCLUDE, REQUIRE ou variações de ambos é importante


porque podemos incluir/requerer um arquivo contendo um cabeçalho, por
exemplo, em todas as páginas de nosso site, incluindo uma tag INCLUDE /
REQUIRE. Isso facilitará a manutenção, pois, bastará alterar somente o
conteúdo de um único arquivo e as demais páginas já do site serão
atualizadas.
A diferença entre INCLUDE e REQUIRE é que o arquivo “incluído” com
include será usado pelo arquivo vigente, mas “não é tão importante assim”.
Já com REQUIRE, o arquivo “incluído” é requerido, ou seja, de suma
importância e o funcionamento do arquivo vigente depende totalmente da
“inclusão” do outro.
Por isso, quando utilizamos o include e o arquivo passado como
parâmetro não for localizado, será gerado um erro do tipo Warning. O Warning
é um aviso de que algo está errado, mas não impede a continuidade da
execução do script.
Já no require, se o arquivo passado como parâmetro não for localizado,
será gerado um erro do tipo Warning e outro do tipo Fatal. Como a própria
palavra já diz, é um erro que impede que a execução do script continue porque
há “uma morte”.
Assim, se você quer que, na falta do arquivo “incluído” o script seja
interrompido, use require.

34
Acrescente comentários no código HTML de onde serão os inícios e términos
de cada parte. Ex:
 Logo após o término da segunda linha, inclua o código de comentário:
<!-- FIM DO CABEÇALHO E INÍCIO DO CONTEUDO -->

 Antes do início do menu esquerdo, inclua o código de comentário (pode


abranger o <form ...>):
<!-- INÍCIO DO MENU ESQUERDO -->

 Após o menu esquerdo, inclua o código de comentário (pode abranger o


</form>:
<!-- FIM DO MENU ESQUERDO -->

 Logo após o término da terceira linha, inclua abaixo o código de


comentário:
<!-- FIM DO CONTEUDO E INICIO DO RODAPE -->

Copie todo código HTML do index.php até o “fim do cabeçalho e inicio do


conteudo”.
Abra um novo arquivo dinâmico cole o código copiado e salve-o com o nome:
cabeçalho.php

Volte ao index.php e insira, antes do comentário fim do cabeçalho e início do


rodapé, o código:

<? require_once("cabecalho.php"); ?>

Faça o mesmo com nosso menu esquerdo (menu_esq.php) e com o rodapé


(rodape.php).

4.2 Utilizando javascript para verificação de campos vazios

Antes de chamarmos nosso arquivo de conexão com o banco de dados, vamos


verificar, através de uma função javascript, se os campos usuario e senha
foram preenchidos.
Para isso, selecione o botão AVANÇAR, e no evento onClick, adicione a
chamada para a função javascript verifica( ):

<input type="button" name="Button" value="Avan&ccedil;ar" onclick="javascript:verifica();" />

<script>
function verifica()
{
if ((document.frmteste.usuario.value) && (document.frmteste.senha.value))
document.frmteste.submit()
else
alert("Campo Usuário ou senha não está preenchido!");
}
</script>

Obs.: Mais um detalhe, a ação do nosso botão (action) deverá estar


selecionado none, porque caso esteja como submit, ele irá submeter o
formulário, independente se o usuário preencheu ou não os campos.
35
4.3 PHP e banco de dados MYSQL

Caso não tenha criado ainda a tabela de usuario, segue abaixo o código para
criação da tabela:

CREATE TABLE `Usuario` (


`idusuario_us` int(11) NOT NULL default '0',
`nome_us` varchar(100) NOT NULL default '',
`login_us` varchar(20) NOT NULL default '',
`senha_us` varchar(20) NOT NULL default '',
PRIMARY KEY (`idusuario_us`)
)

Para o PHP interagir com uma base de dados SQL, independente da base de
dados, existem três comandos básicos que devem ser utilizados:
 um que faz a ligação com o servidor da base de dados;
 um que seleciona a base de dados a ser utilizada;
 um que executa uma "query" SQL.

4.3.1 Conexão com o banco de dados

Crie um arquivo com o nome conexao.php e inclua o script abaixo:


<?
mysql_connect("localhost","root","") or die("Erro de conexão"); // conexão com o servidor
mysql_select_db("bdteste") or die("Base de dados não existe"); // seleção da base de dados
?>

4.3.2 Execução da “Query” SQL e criação da Seção

Como mostrado anteriormente, o nosso form, após ser submetido, irá chamar,
via função post, o arquivo acesso.php .

Portanto crie um novo arquivo com o nome: acesso.php e inclua o código


abaixo:

<?
require_once('conexao.php');
session_start();
$usuario = $_POST["usuario"];
$senha = $_POST["senha"];

$rset = mysql_query("Select * from Usuario where login_us ='$usuario' and senha_us ='$senha'");
if (mysql_num_rows($rset) > 0)
{
if(!(session_is_registered("idusuario")))
$_SESSION["idusuario"] = mysql_result($rset,0,'idusuario_us');
header("Location: opcoes.php");
}
else
header("Location: index.php");
?>

36
Logo no início, é feita a conexão com o servidor e selecionada a base de
dados. Através do comando REQUIRE_ONCE(‘conexao.php’) incluiremos o
arquivo de conexão.

Na seqüência, será criada a sessão, mas para que isso ocorra, será necessário
que o usuário e senha fornecidos em nossa página inicial sejam válidos, isto é,
eles devem existir em nossa base de dados.

37
Primeiro, os parâmetros de usuário e senha são recuperados através da
variável pré-definida $_POST, pois os parâmetros foram passados via método
POST. Poderia ser utilizado também o comando $_REQUEST (no caso do uso
de request, não importa o método utilizado). Na seqüência é feita uma busca
na base de dados para verificar se são válidos.

Caso forem válidos, a sessão é criada, como mostrado no código abaixo, e


redirecionamos para a Área restrita (opçoes.php):

Obs.: Caso não atenda alguma verificação acima, será redirecionada para a
página inicial (index.php).

4.4. Criação da Área Restrita

Monte uma tela simples, como mostrado na figura abaixo:

opcoes.php

<html>
<head>
<title>Untitled Document</title>
</head>
<body topmargin="0">
<table width="800" height="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="400" valign="top"><table width="800" height="80" border="0" cellpadding="0"
cellspacing="0">
<tr>
<td height="80" bgcolor="#E6F2FF"><strong>&Aacute;REA RESTRITA </strong></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><strong>OP&Ccedil;&Otilde;ES</strong></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><a href="listausuarios.php">&#9658; Cadastro de Usu&aacute;rios</a> </td>
</tr>
<tr>
<td><a href="listaprodutos.php">&#9658; Cadastro de Produtos</a> </td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table> </td>
</tr>
<tr>
<td height="40" bgcolor="#E6F2FF">

38
<form id="form1" name="formsair" method="post" action="destroi_sessao.php">
<div align="center">
<input type="reset" name="Reset" value="Sair" onclick="javascript: window.document.formsair.submit();" />
</div>
</form>
</td>
</tr>
</table>
</body>
</html>

Caso o usuário deseje SAIR, basta submeter o formulário, o qual irá chamar a
próxima página (destroi_sessao.php). Este arquivo conterá o código abaixo,
onde podemos ver a sessão sendo limpa e na seqüência, sendo destruída.
Após ser destruída, redirecionamos para a página inicial.

<?
session_start();
unset($_SESSION['idusuario']); // limpa a sessão usuario
session_destroy(); // destroy a sessão criada
header ('Location: index.php'); // redireciona para a página inicial
?>

A área restrita (opcoes.php) deverá ser mostrada somente se a sessão foi


criada. Para isso, acrescente o código PHP abaixo antes de iniciar o código
HTML da página:

<?
session_start();
if(session_is_registered("idusuario"))
{
?>

E ao final do código HTML, acrescente o código php abaixo, para fechar a


verificação se sessão havia sido criada.

<?
}
else
{
header("Location: index.php");
}
?>

39
4.5 Criação do cadastro de Usuário

O cadastro de Usuários fará parte de uma de nossas opções dentro da Área


Restrita.
Para criar um link para a página de cadastro de usuários, no modo visual do
Dreamweaver, clique em “► Cadastro de usuários”, na opção Link, acrescente:
listausuarios.php

Crie uma página HTML no Dreamweaver conforme o exemplo abaixo e salve


com o nome listausuarios.php:

<html>
<head>
<title>..:: &Aacute;rea restrita ::..</title>
</head>

<body topmargin="0">
<table width="800" height="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="400" valign="top">
<form id="form1" name="form1" method="post" action="">
<table width="800" height="80" border="1" cellpadding="0" cellspacing="0" bordercolor="#DCECEF">
<tr>
<td height="80" colspan="4" bgcolor="#E6F2FF"><strong>&Aacute;REA RESTRITA </strong></td>
</tr>

<tr>
<td colspan="4"><strong>CADASTRO DE USU&Aacute;RIOS </strong></td>
</tr>
<tr>
<td colspan="4">
<table width="800" height="80" border="1" cellpadding="0" cellspacing="0">
<tr>
<td width="287" bgcolor="#DCECEF"><strong>Usu&aacute;rio</strong></td>
<td width="289" bgcolor="#DCECEF"><strong>Senha</strong></td>
<td colspan="2" bgcolor="#DCECEF"><div align="center"><strong>Op&ccedil;&otilde;es</strong></div></td>
</tr>

<tr>
<td>nome</td>

40
<td>senha</td>
<td width="116"><div align="center"><a href="cadusuario.php">ALTERAR</a></div></td>
<td width="108"><div align="center"><a href="cadusuario.php">EXCLUIR</a></div></td>
</tr>

<tr>
<td colspan="4"><div align="center">Nenhum registro encontrado! </div> </td>
</tr>

</table>
</td>
</tr>
<tr>
<td colspan="4"><div align="center">|| <a href="javascript: history.go(-1);">VOLTAR</a> || <a
href="cadusuario.php">INSERIR</a> || </div></td>
</tr>
</table>
</form>
</td>
</tr>
<tr>
<td height="40" bgcolor="#E6F2FF">
<form id="form1" name="formsair" method="post" action="destroi_sessao.php">
<div align="center">
<input type="reset" name="Reset" value="Sair" onclick="javascript: window.document.formsair.submit();" />
</div>
</form>
</td>
</tr>
</table>
</body>
</html>

Acrescente ao código HTML o controle de sessão, da mesma forma como foi


feito na página de opções.
<?
require_once('conexao.php');
session_start();
if(session_is_registered("idusuario"))
{
?>
<html>
<head>
<title>..:: &Aacute;rea restrita ::..</title>
</head>

<body topmargin="0">
.
.
.
</body>
</html>
<?
}
else
{
header('Location: index.php');
}
?>

41
4.5.1 Listagem de Usuários

Para gerar uma listagem de usuários, clique na linha que receberá os valores,
conforme mostra a figura abaixo:

Entre a primeira linha e o início da segunda linha, acrescente o código para


fazer uma seleção na tabela Usuario de nossa base, com mostrado abaixo:

<?
$sql = "Select * from Usuario Order by login_us";
$rset = mysql_query($sql,$db);
$total = mysql_num_rows($rset);
$i = 0;
while ($i < $total)
{
$idUsuario = mysql_result($rset,$i,'idUsuario_us');
$nomeUsuario = mysql_result($rset,$i,'login_us');
$senha1 = mysql_result($rset,$i,'senha_us');
?>

A variável $total receberá a quantidade total de registros cadastrados no


banco.

Podemos verificar que já foi acrescentada também uma estrutura de repetição


(while), a qual será importante para listar, todos os registros selecionados, isto
é, enquanto nosso índice $i for menor que o $total de registros.

Na segunda linha, acrescente as tags php para receberem os valores que


foram retornados, através da busca na tabela Usuario, como mostrado no
código abaixo:

<tr>
<td><?= $nomeUsuario ?></td>
<td><?= $senha1 ?></td>

<td width="116"><div align="center"><a href="cadusuario.php?id=<?=$idUsuario?>


&nome=<?=$nomeUsuario?>&opcao=A&mostrar=true&voltar=1">ALTERAR</a></div></td>

<td width="108"><div align="center"><a href="cadusuario.php?id=<?=$idUsuario?>


&nome=<?=$nomeUsuario?>&opcao=E&mostrar=true&voltar=1">EXCLUIR</a></div></td>

</tr>

Após retornado o primeiro registro, precisaremos incrementar nosso índice


para que nossa estrutura de repetição não entre em looping (laço infinito).
Na seqüência fecharemos a estrutura de repetição.

42
Caso não houver nenhum registro cadastrado, isto é, se nossa variável $i for
igual a 0, mostraremos a mensagem “Nenhum registro encontrado!”, como
mostra o código abaixo:

<?
$i++;
}
if ($i== 0)
{
?>
<tr>
<td colspan="4"><div align="center">Nenhum registro encontrado! </div> </td>
</tr>
<?
}
?>

Para os links VOLTAR e INSERIR, insira o código abaixo:

<tr>
<td colspan="4"><div align="center">|| <a href="javascript: history.go(-1);">VOLTAR</a> ||
<a href="cadusuario.php?opcao=I&mostrar=true&voltar=1">INSERIR</a> || </div></td>
</tr>

O link VOLTAR retornará para a página anterior, enquanto o link INSERIR,


abrirá a página para Inserção de Usuários. Observe que será usado o método
GET, para receber os parâmetros que indicarão que a página será usada para
inserção e não para alteração ou exclusão de registros.

Obs.: Será explicado mais adiante o uso dos parâmetros que estão sendo
passados (opcao, mostrar e voltar) no link INSERIR.

Portanto criaremos uma página com o nome cadusuario.php que será


utilizada para a manutenção do cadastro. Nela realizaremos a inserção, a
alteração e a exclusão de usuários.

43
4.5.2 Inserção de Usuários

Crie uma página HTML no Dreamweaver conforme o exemplo abaixo e salve


com o nome cadusuario.php:

<html>
<head>
<title>Untitled Document</title>
<script>
function verifica()
{
if ((document.form1.senha1.value != "") && (document.form1.senha1.value ==
document.form1.senha2.value))
document.form1.submit()
else
alert("Os campos senha1 e senha2 estão vazios ou não são iguais. Por
favor, digite novamente!");
}
</script>
</head>

<body topmargin="0">
<table width="800" height="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="400" valign="top">
<form id="form1" name="form1" method="post" action="<?=$PHP_SELF ?>">
<table width="800" height="80" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="80" colspan="2" bgcolor="#E6F2FF"><span class="style1">&Aacute;REA
RESTRITA </span></td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
<tr>
<td colspan="2"><strong> Tipo de cadastro </strong></td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
<tr>
<td width="121"><div align="right">Usu&aacute;rio:</div></td>

44
<td width="679"><input name="nome" type="text" size="20" value="">
</td>
</tr>
<tr>
<td><div align="right">Senha:</div></td>
<td><span class="Texto">
<input name="senha1" type="password" id="senha1" size="20" value=""/>
</span></td>
</tr>
<tr>
<td><div align="right">Confirme a senha: </div></td>
<td><span class="Texto">
<input name="senha2" type="password" id="senha2" size="20" value=""/>
</span></td>
</tr>

</table>
<input name="passou" type="hidden" value="true"/>
<input name="opcao" type="hidden" value=""/>
<input name="id" type="hidden" value=""/>
<input name="mostrar" type="hidden" value=""/>
</form>
</td>
</tr>
<tr>
<td height="40" bgcolor="#E6F2FF"><label>
<div align="center">|| <a href="javascript: history.go(-<?=$voltar?>);">VOLTAR</a> ||
<? if ($mostrar == true){ ?>
<a href="javascript:verifica();">AVANÇAR</a> ||
<? } ?>
</div></label></td>
</tr>
</table>
</body>
</html>

A função javascript verifica( ) será utilizada para verificar se os campos usuário,


senha e confirmação de senha foram preenchidos.

Acrescente ao código HTML o controle de sessão, da mesma forma como foi


feito nas páginas anteriores (pertencentes à Área Restrita).

A inserção de um Usuário ocorrerá da seguinte forma:

A página cadusuario.php será formada de duas partes distintas:


- a primeira será composta pelo HTML mostrado acima;
- a segunda será composta pelos comandos que irão fazer a inserção,
alteração ou exclusão.

Portanto, adicionaremos um estrutura condicional para que, na primeira vez em


que acessarmos a página cadusuario.php, nos mostre somente a primeira
parte.

Após entrarmos com os dados de login e senha, avançaremos.

45
Será incluído um campo hidden (campo escondido) com um parâmetro, por
exemplo, “passou = true”, o qual entenderá que na próxima passagem ele
mostre a segunda parte da página e omita a primeira.

Obs.: em avançar existirá um link contendo um comando para submeter o


formulário e este chamará ele mesmo ($PHP_SELF ou cadusuario.php).

Portanto, nessa segunda parte, o php recuperará os dados informados nos


campos login e senha e irá inseri-los no banco através do comando INSERT.

Segue na seqüência, a montagem passo a passo.

Antes da linha que contém os campos de login e senha, colocaremos a


seguinte estrutura condicional:

<?
if (!$passou)
{
?>
<tr>
<td width="121"><div align="right">Usu&aacute;rio:</div></td>
<td width="679"><input name="nome" type="text" size="20" value="">
</td>
</tr>
<tr>
<td><div align="right">Senha:</div></td>
<td><span class="Texto">
<input name="senha1" type="password" id="senha1" size="20" value=""/>
</span></td>
</tr>
<tr>
<td><div align="right">Confirme a senha: </div></td>
<td><span class="Texto">
<input name="senha2" type="password" id="senha2" size="20" value=""/>
</span></td>
</tr>
<?
}
else
{
echo (‘Espaço para os comandos da Inserção’);
}

?>

No início da página, adicionaremos os comandos de $_POST ou $_REQUEST


para recuperar os parâmetros passados, como mostrado abaixo:

<?
require_once('conexao.php');
session_start();
if(session_is_registered("idusuario"))
{
$id = $_REQUEST["id"];
$usuario = $_REQUEST["nome"];
$op = $_REQUEST["opcao"];
$mostrar = $_REQUEST["mostrar"];
$voltar = $_REQUEST["voltar"];

46
$passou = $_REQUEST["passou"];
$senha1 = $_REQUEST["senha1"];

$disb ="";
if ($op == 'I')
$mensagem = "INSERÇÃO DE USUÁRIO";
else if ($op == 'A')
$mensagem = "ALTERAÇÃO DE USUÁRIO";
else if($op == 'E')
{
$mensagem = "EXCLUSÃO DE USUÁRIO";
$disb =" disabled";
}
?>

O formulário deverá chamar ele mesmo, como mostrado abaixo:

Acrescente os parâmetros para os campos do tipo hidden (campos


escondidos):

<input name="passou" type="hidden" value="true"/>


<input name="opcao" type="hidden" value="<?=$op?>"/>
<input name="id" type="hidden" value="<?=$id?>"/>
<input name="mostrar" type="hidden" value="<?=$mostrar?>"/>

Na segunda parte do cadastro, após o else, adicione os comandos abaixo


para visualizar se os parâmetros estão sendo passados corretamente:

Se tudo deu certo, dentro do else, substitua os comandos de mostrar os


parâmetros sendo passados pelos comandos para fazer a inserção dos dados,
como mostrado abaixo:

<?php
}
else
{
$mostrar = false;
$voltar = 2;

if($op == 'I') // INSERÇÃO DE USUÁRIOS


{
$sql = "Select * from Usuario where login_us ='".$usuario."'";
$rset = mysql_query($sql);

47
$total = mysql_num_rows($rset);
if ($total > 0)
{
?>
<tr>
<td colspan="2"><div align="center">Usuario <strong><?=
$usuario?></strong> ja existe no banco! </div></td>
</tr>
<?
}
else
{
$sql = "Select MAX(idusuario_us) as maximo from Usuario";
$rset = mysql_query($sql);
$total2 = mysql_result($rset,'0','maximo') + 1;
$sql = "Insert into Usuario (idusuario_us, login_us, senha_us) Values (".
$total2.",'".$usuario."','".$senha1."')";
$rset = mysql_query($sql);
echo " <tr><td><div align='center'>Usuario <strong> $usuario </strong>
inserido com sucesso! </div></td> </tr> ";
}
}

}
?>

Acrescente os comandos para fazer a alteração dos dados, como mostrado


abaixo:

OBS.: Para o caso da alteração e exclusão, será necessário que os campos de


usuário, senha e confirmação de senha venham preenchidos.

Portanto, adicionaremos uma consulta para recuperar os campos através do id


e carregaremos esses campos na tela.

Para a consulta, utilize o código abaixo:

if ($op != 'I')
{
$consulta = "Select senha_us from Usuario where idusuario_us = $id";
$resultado = mysql_query($consulta);
$linha = mysql_fetch_assoc($resultado);
$senha1 = $linha['senha_us'];
}

Agora, basta colocá-los nos campos html correspondentes:

<input name="nome" type="text" size="20" value="<?= $usuario ?>" <?=$disb?>>


<input name="senha1" type="password" id="senha1" size="20" value="<?= $senha1 ?>" <?=$disb?>/>
<input name="senha2" type="password" id="senha2" size="20" value="<?= $senha1 ?>" <?=$disb?>/>

48
4.5.3 Alteração de Usuários

Para realizar a alteração de usuários, utilize o código abaixo:

else if($op == 'A') // ALTERAÇÃO DE USUÁRIOS


{
$sql = "Update Usuario set login_us = '$usuario', senha_us = '$senha1' where
idusuario_us = $id";
$rset = mysql_query($sql);
echo " <tr><td><div align='center'>Usuario <strong> $usuario </strong>
alterado com sucesso! </div></td> </tr>";
}

4.5.4 Exclusão de Usuários

Para realizar a exclusão de usuários, utilize o código abaixo:


else // EXCLUSÃO DE USUÁRIOS
{
$sql = "Delete from Usuario where idusuario_us = $id";
$rset = mysql_query($sql);
echo " <tr><td><div align='center'> Usuario <strong> $usuario </strong>
removido com sucesso! </div></td> </tr> ";
}
}
?>

4.5.5 Outros exemplos de cadastros

** Cadastro de Grupo de Produtos **

Para o cadastro de Grupo de Produtos, acrescente no banco de dados a tabela


abaixo:

CREATE TABLE `grupo` (


`idgrupo_gr` INT NOT NULL ,
`nome_gr` VARCHAR( 30 ) NOT NULL ,
PRIMARY KEY ( `idgrupo_gr` )
);

Repita os passos acima para o desenvolvimento do cadastro de Grupo de


Produtos.

49
** Cadastro de Produtos **

Para o cadastro de Grupo de Produtos, acrescente no banco de dados a tabela


abaixo:

CREATE TABLE `Produto` (


`idproduto_prod` int( 11 ) NOT NULL default '0',
`descricao_prod` varchar( 100 ) NOT NULL default '',
`detalhe_prod` varchar( 255 ) default NULL ,
`aplicacao_prod` varchar( 255 ) default NULL ,
`imagem_prod` blob,
`idgrupo_prod` int( 11 ) NOT NULL default '0',
`promocao_prod` char( 1 ) default NULL ,
`preco_prod` float default NULL ,
PRIMARY KEY ( `idproduto_prod` )
)

Repita os passos acima para o desenvolvimento do cadastro de Produtos.

listaprodutos.php
<?
require_once('conexao.php');
session_start();
if(session_is_registered("idusuario"))
{
?>
<html>
<head>
<title>..:: &Aacute;rea Restrita ::..</title>
<style type="text/css">
<!--
.style1 {color: #003366;
font-weight: bold;
font-size: 24px;
}
-->
</style>
</head>

<body topmargin="0">
<table width="800" height="391" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="349" valign="top">
<form id="form1" name="form1" method="post" action="">
<table width="800" height="80" border="1" cellpadding="0" cellspacing="0"
bordercolor="#DCECEF">
<tr>
<td height="80" colspan="4" bgcolor="#E6F2FF"><span class="style1">&Aacute;REA
RESTRITA </span></td>
</tr>

<tr>
<td colspan="4"><strong>CADASTRO DE PRODUTOS </strong></td>
</tr>
<tr>
<td colspan="4">
<table width="800" height="80" border="1" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="#DCECEF"><strong>Descri&ccedil;&atilde;o</strong></td>
<td colspan="2" bgcolor="#DCECEF"><div
align="center"><strong>Op&ccedil;&otilde;es</strong></div></td>

50
</tr>
<?php
$sql = "Select * from Produto Order by descricao_prod";
$rset = mysql_query($sql,$db);
$total = mysql_num_rows($rset);
$i = 0;
while ($i < $total)
{
$idproduto = mysql_result($rset,$i,'idproduto_prod');
$descricao = mysql_result($rset,$i,'descricao_prod');
?>
<tr>
<td><?= $descricao ?></td>
<td width="116"><div align="center"><a href="cadproduto.php?id=<?=$idproduto?
>&nome=<?=$descricao?>&opcao=A&mostrar=true&voltar=1">ALTERAR</a></div></td>
<td width="108"><div align="center"><a href="cadproduto.php?id=<?=$idproduto?
>&nome=<?=$descricao?>&opcao=E&mostrar=true&voltar=1">EXCLUIR</a></div></td>
</tr>
<?
$i++;
}
if ($i== 0)
{
?>
<tr>
<td colspan="3"><div align="center">Nenhum registro encontrado! </div> </td>
</tr>
<?
}
?>
</table>
</td>
</tr>
<tr>
<td colspan="4"><div align="center">|| <a href="javascript: history.go(-1);">VOLTAR</a> ||
<a href="cadproduto.php?opcao=I&mostrar=true&voltar=1">INSERIR</a> || </div></td>
</tr>
</table>
</form>
</td>
</tr>
<tr>
<td height="40" bgcolor="#E6F2FF">
<form id="form1" name="formsair" method="post" action="destroi_sessao.php">
<div align="center">
<input type="reset" name="Reset" value="Sair" onClick="javascript:
window.document.formsair.submit();" />
</div>
</form>
</td>
</tr>
</table>
</body>
</html>
<?
} else {
header('Location: index.php');
}
?>

cadproduto.php

51
<?
require_once('conexao.php');
session_start();
if(session_is_registered("idusuario"))
{
$id = $_REQUEST["id"];
$descricao = $_REQUEST["nome"];
$op = $_REQUEST["opcao"];
$mostrar = $_REQUEST["mostrar"];
$voltar = $_REQUEST["voltar"];

$passou = $_REQUEST["passou"];

$disb ="";
if ($op == 'I')
$mensagem = "INSERÇÃO DE PRODUTOS";
else if ($op == 'A')
$mensagem = "ALTERAÇÃO DE GRUPO";
else if($op == 'E')
{
$mensagem = "EXCLUSÃO DE GRUPO";
$disb =" disabled";
}
?>
<html>
<head>
<title>..:: &Aacute;rea Restrita ::..s</title>
<style type="text/css">
<!--
.style1 {
color: #003366;
font-weight: bold;
font-size: 24px;
}
-->
</style>
</head>

<body>
<table width="800" height="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="400" valign="top">
<form id="form1" name="form1" method="post" action="<?=$PHP_SELF ?>">
<table width="800" height="80" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="80" bgcolor="#E6F2FF"><span class="style1">&Aacute;REA RESTRITA
</span></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><strong><?=$mensagem?> </strong></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<?php
if (!$passou)
{
if ($op != 'I')
{

52
$sql = "Select * from Produto where idproduto_prod =". $id;
$rset = mysql_query($sql,$db);
$descricao = mysql_result($rset,'0','descricao_prod');
$detalhe = mysql_result($rset,'0','detalhe_prod');
$aplicacao = mysql_result($rset,'0','aplicacao_prod');
$imagem = mysql_result($rset,'0','imagem_prod');
$promocao = mysql_result($rset,'0','promocao_prod');
$preco = mysql_result($rset,'0','preco_prod');
$idsubgrupo = mysql_result($rset,'0','idgrupo_prod');
}
?>
<tr>
<td>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr valign="middle">
<td width="17%" height="20" class="Texto"><div align="right">
Descri&ccedil;&atilde;o:&nbsp;</div></td>
<td width="83%" height="20" class="Texto"><input name="descricao" type="text" id="descricao"
value="<?= $descricao ?>" size="70" maxlength="70" <?=$disb?> ></td>
</tr>
<tr valign="middle">
<td height="20" class="Texto"><div align="right">Detalhe:&nbsp;</div></td>
<td height="20" class="Texto"><input name="detalhe" type="text" id="detalhe" value="<?=
$detalhe ?>" size="70" maxlength="70" <?=$disb?> ></td>
</tr>
<tr valign="middle">
<td height="20" class="Texto"><div align="right">Aplica&ccedil;&atilde;o:&nbsp;</div></td>
<td height="20" class="Texto"><input name="aplicacao" type="text" id="aplicacao" value="<?=
$aplicacao ?>" size="70" maxlength="70" <?=$disb?> ></td>
</tr>
<tr valign="middle">
<td height="20" class="Texto"><div align="right">Nome do Logo :&nbsp;</div></td>
<td height="20" class="Texto"><input name="nomelogo" type="text" id="nomelogo" value="<?=
$imagem ?>" size="70" maxlength="70" <?=$disb?> ></td>
</tr>
<tr valign="middle">
<td height="20" class="Texto"><div align="right">Upload do Logo :&nbsp;</div></td>
<td height="20" class="Texto">
<input name="upload" type="button" class="Texto" id="upload"
onClick="javascript:window.open('upload.php','upload','width=700,height=300');" value="Upload do
logotipo ...">
</td>
</tr>
<tr>
<td valign="top" class="Texto"><div align="right">&nbsp;</div></td>
<td valign="top" class="Texto">&nbsp;</td>
</tr>
<tr>
<td valign="top" class="Texto"><div align="right">Subgrupo :&nbsp;</div></td>
<td valign="top" class="Texto"><select name="grupo" id="grupo" <?=$disb?>>
<?php
$rset = mysql_query("select * from grupo order by nome_gr",$db);
$total = mysql_num_rows($rset);
$i = 0;
while ($i < $total)
{
$idsg = mysql_result($rset,$i,'idgrupo_gr');
$dan = mysql_result($rset,$i,'nome_gr');
if ($idsubgrupo == $idsg)
$sel = "SELECTED" ;
else $sel ="";
?>

53
<option value="<?= $idsg ?>" <?= $sel ?>><?= $dan ?></option>
<?
$i++;
}
?>
</select></td>
</tr>
<tr>
<td valign="top" class="Texto"><div align="right">Promo&ccedil;&atilde;o :</div></td>
<td valign="top" class="Texto">
<select name="promocao" id="promocao" <?=$disb?>>
<?php
$s ="";
$n="";
if($promocao == "N")
$n ="SELECTED";
else $s ="SELECTED";
?>
<option value="S" <?=$s?>>Sim</option>
<option value="N" <?=$n?>>N&atilde;o</option>
</select></td>
</tr>
<tr>
<td valign="top" class="Texto"><div align="right">Pre&ccedil;o :&nbsp;</div></td>
<td valign="top" class="Texto"><input name="preco" type="text" id="preco" value="<?=
$preco ?>" size="10" maxlength="10" <?=$disb?> >
(Utilizar . (ponto) para casas decimais.Ex : 14.15</td>
</tr>
<tr>
<td valign="top" class="Texto"><div align="right"></div></td>
<td valign="top" class="Texto">&nbsp;</td>
</tr>
<tr>
<td colspan="2" valign="top" class="Texto">&nbsp;</td>
</tr>
</table>
</td>
</tr>
<?php
}
else
{
$mostrar = false;
$voltar = 2;
$descricao = $_REQUEST["descricao"];
$detalhe = $_REQUEST["detalhe"];
$aplicacao = $_REQUEST["aplicacao"];
$imagem = $_REQUEST["nomelogo"];
$promocao = $_REQUEST["promocao"];
$preco = $_REQUEST["preco"];
$idgrupo = $_REQUEST["grupo"];
if($op == 'A')
{
if ($descricao <> "")
{
$sql = "Update Produto set descricao_prod = '$descricao', detalhe_prod
='$detalhe', aplicacao_prod ='$aplicacao', imagem_prod ='$imagem', promocao_prod ='$promocao',
preco_prod =$preco, idgrupo_prod =$idgrupo where idproduto_prod = $id";
$rset = mysql_query($sql,$db);
echo " <tr><td><div align='center'>Produto <strong> $descricao </strong>
alterado com sucesso! </div></td> </tr> ";
}

54
}
else if($op == 'I')
{
if ($descricao <> "")
{
$sql = "Select descricao_prod from Produto where descricao_prod ='".
$descricao."'";
$rset = mysql_query($sql,$db);
$total = mysql_num_rows($rset);
if ($total > 0)
{
?>
<tr>
<td><div align="center">Produto <strong> <?= $descricao?
></strong> j&aacute; existe no banco! </div></td>
</tr>
<?php
}
else
{
$sql = "Select MAX(idproduto_prod) as maximo from Produto";
$rset = mysql_query($sql,$db);
$total2 = mysql_result($rset,'0','maximo') + 1;
$sql = "Insert into Produto(idproduto_prod, descricao_prod,
detalhe_prod, aplicacao_prod, imagem_prod, promocao_prod, preco_prod, idgrupo_prod) Values (".
$total2.",'".$descricao."','".$detalhe."','".$aplicacao."','".$imagem."','".$promocao."',".$preco.",".
$idgrupo.")";
$rset = mysql_query($sql,$db);
echo " <tr><td><div align='center'>Produto <strong> $descricao_
</strong> inserido com sucesso! </div></td> </tr> ";
}
}
}
else
{
$sql = "Delete from Produto where idproduto_prod = $id";
$rset = mysql_query($sql,$db);
echo " <tr><td><div align='center'>Produto <strong> $descricao_ </strong> removido
com sucesso! </div></td> </tr> ";
}
}
?>
</table>
<input name="passou" type="hidden" value="true"/>
<input name="opcao" type="hidden" value="<?=$op?>"/>
<input name="id" type="hidden" value="<?=$id?>"/>
<input name="mostrar" type="hidden" value="<?=$mostrar?>"/>
</form>
</td>
</tr>
<tr>
<td height="40" bgcolor="#E6F2FF"><label>
<div align="center">|| <a href="javascript: history.go(-<?=$voltar?>);">VOLTAR</a> ||
<? if ($mostrar == true){ ?>
<a href="javascript:document.form1.submit();">AVANÇAR</a> ||
<? } ?>
</div></label></td>
</tr>
</table>
</body>
</html>
<?

55
}
else
{
header('Location: index.php');
}
?>

upload.php

<html>
<head>
<title>Página PHP</title>
</head>
<body>
<?php
if (isset($_FILES['arquivo']['name']))
{
$uploaddir = 'c:\\phpdev\www\public\php\imagens\\';
$arquivo = $uploaddir. $_FILES['arquivo']['name'];

if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $arquivo))
print "O arquivo foi gravado com sucesso.";
else
print "Erro. O arquivo não foi enviado.";
}
?>
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
Enviar este arquivo: <input name="arquivo" type="file">
<input type="submit" value="Envia Arquivo">
</form>
</body>
</html>

produtos.php

<? require_once("conexao.php"); ?>


<? require_once("cabecalho.php"); ?>
<!-- FIM DO CABEÇALHO E INÍCIO DO CONTEUDO -->
<tr>
<td width="18%" height="100%" valign="top" bgcolor="#E7EAEF">
<!-- inicio do menu esquerdo -->
<? require_once("menu_esq.php"); ?>
<!-- fim do menu esquerdo -->
</td>
<td height="100%" valign="top" bgcolor="#CCD4DF"><table width="100%" height="100%"
border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="20" bgcolor="#E7EAEF"><div align="center" style="color: #000033; font-weight:
bold; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px">Produtos </div></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<?php

56
$sql = "Select * from Produto Order by descricao_prod";
$rset = mysql_query($sql,$db);
$total = mysql_num_rows($rset);
$i = 0;
while ($i < $total)
{
$idproduto = mysql_result($rset,
$i,'idproduto_prod');
$descricao = mysql_result($rset,$i,'descricao_prod');
$det = mysql_result($rset,$i,'detalhe_prod');
$aplic = mysql_result($rset,$i,'aplicacao_prod');
$preco = mysql_result($rset,$i,'preco_prod');
$preco = number_format($preco, 2, '.', '');
$imagem = mysql_result($rset,$i,'imagem_prod');
?>
<tr class="Texto">
<td width="80" rowspan="5"><img src="imagens/<?=$imagem?>" width="80" height="80"
/></td>
<td colspan="2" class="TituloTexto" style="font-size: 12px">&nbsp;
<?= $descricao ?></td>
</tr>
<tr class="Texto">
<td width="91"><span style="font-weight: bold; font-size:
12px">&nbsp;&nbsp;Detalhe:</span> </td>
<td width="331"><span style="font-size: 12px">
<?= $det ?>
</span></td>
</tr>
<tr class="Texto">
<td><span style="font-size: 12px">&nbsp;&nbsp;<span style="font-weight:
bold">Aplica&ccedil;&atilde;o</span>: </span></td>
<td><span style="font-size: 12px">
<?= $aplic ?>
</span></td>
</tr>
<tr class="Texto">
<td><span style="font-weight: bold; font-size:
12px">&nbsp;&nbsp;Pre&ccedil;o</span><span style="font-size: 12px">: </span></td>
<td><span style="font-size: 12px">R$
<?= $preco ?>
</span></td>
</tr>
<tr class="Texto">
<td colspan="3"></td>
</tr>
<tr>
<td colspan="3"><hr /></td>
</tr>
<tr>
<?php
$i++;
}
if ($i == 0)
{
?>
<td colspan="3"><div align="left" class="Texto">
<div align="center">Nenhum produto cadastrado!</div>
</div></td>
</tr>
<?php
}
?>

57
</table></td>
</tr>
</table></td>
</tr>
</table></td>
<td width="18%" height="100%" valign="top" bgcolor="#E7EAEF"><table width="100%"
border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="20" bgcolor="#244D85"><div align="center" class="style21"></div></td>
</tr>

<tr>
<td height="20">&nbsp;</td>
</tr>
<tr>
<td height="20">&nbsp;</td>
</tr>
<tr>
<td height="20">&nbsp;</td>
</tr>
<tr>
<td height="20">&nbsp;</td>
</tr>
<tr>
<td height="20">&nbsp;</td>
</tr>
<tr>
<td height="20" bgcolor="#2C4C85">&nbsp;</td>
</tr>
<tr>
<td align="center">&nbsp;</td>
</tr>
</table></td>
</tr>
<!-- FIM DO CONTEUDO E INICIO DO RODAPE -->
<? require_once("rodape.php"); ?>

faleconosco.php

<? require_once("conexao.php"); ?>


<? require_once("cabecalho.php"); ?>
<!-- FIM DO CABEÇALHO E INÍCIO DO CONTEUDO -->
<tr>
<td width="18%" height="100%" valign="top" bgcolor="#E7EAEF">
<!-- inicio do menu esquerdo -->
<? require_once("menu_esq.php"); ?>
<!-- fim do menu esquerdo -->
</td>
<td height="100%" valign="top" bgcolor="#CCD4DF"><table width="100%" height="100%"
border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="20" bgcolor="#E7EAEF"><div align="center" style="color: #000033; font-weight:
bold; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px">Produtos </div></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">

58
<?php
$sql = "Select * from Produto Order by descricao_prod";
$rset = mysql_query($sql,$db);
$total = mysql_num_rows($rset);
$i = 0;
while ($i < $total)
{
$idproduto = mysql_result($rset,
$i,'idproduto_prod');
$descricao = mysql_result($rset,$i,'descricao_prod');
$det = mysql_result($rset,$i,'detalhe_prod');
$aplic = mysql_result($rset,$i,'aplicacao_prod');
$preco = mysql_result($rset,$i,'preco_prod');
$preco = number_format($preco, 2, '.', '');
$imagem = mysql_result($rset,$i,'imagem_prod');
?>
<tr class="Texto">
<td width="80" rowspan="5"><img src="imagens/<?=$imagem?>" width="80" height="80"
/></td>
<td colspan="2" class="TituloTexto" style="font-size: 12px">&nbsp;
<?= $descricao ?></td>
</tr>
<tr class="Texto">
<td width="91"><span style="font-weight: bold; font-size:
12px">&nbsp;&nbsp;Detalhe:</span> </td>
<td width="331"><span style="font-size: 12px">
<?= $det ?>
</span></td>
</tr>
<tr class="Texto">
<td><span style="font-size: 12px">&nbsp;&nbsp;<span style="font-weight:
bold">Aplica&ccedil;&atilde;o</span>: </span></td>
<td><span style="font-size: 12px">
<?= $aplic ?>
</span></td>
</tr>
<tr class="Texto">
<td><span style="font-weight: bold; font-size:
12px">&nbsp;&nbsp;Pre&ccedil;o</span><span style="font-size: 12px">: </span></td>
<td><span style="font-size: 12px">R$
<?= $preco ?>
</span></td>
</tr>
<tr class="Texto">
<td colspan="3"></td>
</tr>
<tr>
<td colspan="3"><hr /></td>
</tr>
<tr>
<?php
$i++;
}
if ($i == 0)
{
?>
<td colspan="3"><div align="left" class="Texto">
<div align="center">Nenhum produto cadastrado!</div>
</div></td>
</tr>
<?php
}

59
?>
</table></td>
</tr>
</table></td>
</tr>
</table></td>
<td width="18%" height="100%" valign="top" bgcolor="#E7EAEF"><table width="100%"
border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="20" bgcolor="#244D85"><div align="center" class="style21"></div></td>
</tr>
<tr>
<td height="20">&nbsp;</td>
</tr>
<tr>
<td height="20">&nbsp;</td>
</tr>
<tr>
<td height="20">&nbsp;</td>
</tr>
<tr>
<td height="20">&nbsp;</td>
</tr>
<tr>
<td height="20">&nbsp;</td>
</tr>
<tr>
<td height="20" bgcolor="#2C4C85">&nbsp;</td>
</tr>
<tr>
<td align="center">&nbsp;</td>
</tr>
</table></td>
</tr>
<!-- FIM DO CONTEUDO E INICIO DO RODAPE -->
<? require_once("rodape.php"); ?>

Antes de criarmos um formulário para busca de produtos, vamos testar as diferentes


formas de consulta usando LIKE (útil para verificar parte do nome).

Para encontrar nomes come¸cando com ‘b’:


SELECT * FROM pet WHERE name LIKE "b%";

Para encontrar nomes com o final ‘o’:


SELECT * FROM pet WHERE name LIKE "%o";

Para encontrar nomes contendo um ‘w’:


SELECT * FROM pet WHERE name LIKE "%w%";

Para encontrar nomes contendo exatamente cinco caracteres, use o caracter ‘-’:
SELECT * FROM pet WHERE name LIKE "-----";

60
buscaproduto.php

<? require_once("conexao.php"); ?>


<? require_once("cabecalho.php"); ?>
<? $passou = $_REQUEST["passou"]; ?>
<!-- FIM DO CABEÇALHO E INÍCIO DO CONTEUDO -->
<tr>
<td width="18%" height="100%" valign="top" bgcolor="#E7EAEF">
<!-- inicio do menu esquerdo -->
<? require_once("menu_esq.php"); ?>
<!-- fim do menu esquerdo -->
</td>
<td height="100%" valign="top" bgcolor="#CCD4DF"><table width="100%" height="100%"
border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="20" bgcolor="#E7EAEF"><div align="center" style="color: #000033; font-weight:
bold; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px">Busca de Produtos </div></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>
<?
if (!$passou)
{
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<form name="formprocura" method="post" action="<?=
$PHP_SELF ?>">
Produto:<input name="pchave" type="text"
id="pchave" />
<input type="button" name="Button" value="Buscar"
onclick="javascript:window.document.formprocura.submit();"/>
<input name="passou" type="hidden"
value="true"/>
</form>
</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table>
<?
} else {
$pchave = $_REQUEST['pchave'];
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<?php
$sql = "Select * from Produto Where descricao_prod like '%
$pchave%'
Order by descricao_prod";
$rset = mysql_query($sql);
$total = mysql_num_rows($rset);
$i = 0;
while ($i < $total)
{

61
$idproduto = mysql_result($rset,
$i,'idproduto_prod');
$descricao = mysql_result($rset,$i,'descricao_prod');
$det = mysql_result($rset,$i,'detalhe_prod');
$aplic = mysql_result($rset,$i,'aplicacao_prod');
$preco = mysql_result($rset,$i,'preco_prod');
$preco = number_format($preco, 2, '.', '');
$imagem = mysql_result($rset,$i,'imagem_prod');
?>
<tr class="Texto">
<td width="80" rowspan="5"><img src="imagens/<?=$imagem?>" width="80" height="80"
/></td>
<td colspan="2" class="TituloTexto" style="font-size: 12px">&nbsp;
<?= $descricao ?></td>
</tr>
<tr class="Texto">
<td width="91"><span style="font-weight: bold; font-size:
12px">&nbsp;&nbsp;Detalhe:</span> </td>
<td width="331"><span style="font-size: 12px">
<?= $det ?>
</span></td>
</tr>
<tr class="Texto">
<td><span style="font-size: 12px">&nbsp;&nbsp;<span style="font-weight:
bold">Aplica&ccedil;&atilde;o</span>: </span></td>
<td><span style="font-size: 12px">
<?= $aplic ?>
</span></td>
</tr>
<tr class="Texto">
<td><span style="font-weight: bold; font-size:
12px">&nbsp;&nbsp;Pre&ccedil;o</span><span style="font-size: 12px">: </span></td>
<td><span style="font-size: 12px">R$
<?= $preco ?>
</span></td>
</tr>
<tr class="Texto">
<td colspan="3"></td>
</tr>
<tr>
<td colspan="3"><hr /></td>
</tr>
<tr>
<?php
$i++;
}
if ($i == 0)
{
?>
<td colspan="3"><div align="left" class="Texto">
<div align="center">Nenhum produto cadastrado!</div>
</div></td>
</tr>
<?php
}
?>
</table>

<div align="center"><a href="buscaproduto.php" style="font-size: 12px"><br />


| NOVA BUSCA |</a>
<? } ?>
</div></td>

62
</tr>
</table></td>
</tr>
</table></td>
<td width="18%" height="100%" valign="top" bgcolor="#E7EAEF"><table width="100%"
border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="20" bgcolor="#244D85"><div align="center" class="style21"></div></td>
</tr>

<tr>
<td height="20">&nbsp;</td>
</tr>
<tr>
<td height="20">&nbsp;</td>
</tr>
<tr>
<td height="20">&nbsp;</td>
</tr>
<tr>
<td height="20">&nbsp;</td>
</tr>
<tr>
<td height="20">&nbsp;</td>
</tr>
<tr>
<td height="20" bgcolor="#2C4C85">&nbsp;</td>
</tr>
<tr>
<td align="center">&nbsp;</td>
</tr>
</table></td>
</tr>
<!-- FIM DO CONTEUDO E INICIO DO RODAPE -->
<? require_once("rodape.php"); ?>

63

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy