• Nenhum resultado encontrado

PROGRAMAS EM PHP DISCRIMINAM O STATUS DO TÍTULO, SE EMPRESTADO, DISPONÍVEL OU ENCOMENDADO

No documento Coleção Info_Banco de Dados (páginas 101-104)

POR HELIO SILVA

TUTORIAL/FIREBIRD

C O L E Ç Ã O I N F O>105

uantas vezes você em- prestou um livro e se es- queceu para quem? E quantas vezes o amigo que tomou o livro emprestado se lembrou de devolver? Nesses casos em que a memória não passa de uma vaga lembrança, o jeito é montar um banco de dados de sua biblioteca, com direito ao controle dos títulos emprestados. É o que faremos nes- te tutorial. Para acompanhá-lo, vo- cê vai precisar de servidor web com PHP 4.x, banco de dados Firebird 1.5.3 (www.info.abril.com.br/

download/2108.shtml) e o IBEx-

pert (www.info.abril.com.br/down

load/4047.shtml) como ferramen-

ta de administração. Com apenas dois programas em PHP faremos a admi- nistração das informações.

1.

O BANCO

Instalados os programas necessários, abra o IBExpert e acione o menu Da- tabase > Create Database. Crie o ban- co de dados com o nome Biblioteca e clique no botão OK.

Será necessário registrar o banco no IBExpert. Assim, no campo data- base alias, digite o nome Biblioteca e, em seguida, acione no botão Register. (Clique no ícone do lado esquerdo da tela, onde aparece o nome de nosso banco de dados Biblioteca. Com o botão direito do mouse, es- colha a opção Conect to database.

2.

A TABELA

Agora que estamos conectados ao novo banco de dados, va- mos criar a tabela do sistema. Tecle F12 pa-

Q

Biblioteca: crie o

banco de dados com o IBExpert 105_AGENDA_FIREBIRD 26/02/2006 00:42 Page 105

TUTORIAL/FIREBIRD

C O L E Ç Ã O I N F O>107

TUTORIAL/FIREBIRD

106<C O L E Ç Ã O I N F O

ra que se abra uma tela para a cria- ção de consultas SQL. Dentro da te- la de consulta, criaremos o banco de dados com o comando:

CREATE TABLE TB_LIVROS ( CODIGO INTEGER NOT NULL, TITULO VARCHAR(50) NOT NULL, STATUS VARCHAR(20) NOT NULL, ASSOCIADO VARCHAR(40) CHARACTER SET NONE COLLATE NONE);

Logo depois, determinaremos que o código do livro será a chave pri- mária de acesso ao banco com o se- guinte comando:

ALTER TABLE TB_LIVROS ADD CONSTRAINT PK_TB_LIVROS PRIMARY KEY (CODIGO);

3.

O CÓDIGO DOS LIVROS

Agora vamos aproveitar um dos re- cursos do Firebird e transportar pa- ra o banco a responsabilidade de criar sequencialmente o código dos livros na medida em que forem inseridos. Ainda em nossa tela de consulta va- mos inserir o seguinte comando:

CREATE TRIGGER AI_TB_ LIVROS_ CODIGO FOR TB_

LIVROS ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.CODIGO IS NULL) THEN NEW.CODIGO = GEN_ID(TB_ LIVROS_CODIGO_GEN, 1); END

Este gatilho será acionado auto- maticamente a cada inclusão para gerar o código do livro.

4.

SCRIPT EM PHP

Faça o download do arquivo biblio- teca.zip no endereço ftp://ftp.info.

abril.com.br/biblioteca.zip. Des-

compacte-o na pasta onde opera o seu servidor web e terá os arquivos index.php e processa.php.

Nosso primeiro programa, o in- dex.php, lista a quantidade de livros disponíveis e em que status se en- contram (Emprestado, Disponível ou Encomendado). O script faz também uma pesquisa no banco de dados e monta uma lista do tipo combo com todos os livros disponíveis.

Por fim, apresenta uma série de cin- co botões para que você possa esco- lher entre listar os livros disponíveis e seu status, Incluir e Excluir livros. As outras duas opções são de registrar empréstimos e/ou devoluções.

5.

REQUISIÇÕES DO USUÁRIO

Nosso segundo programa, o pro- cessa.php, é que fará o trabalho to- do. Ele é um pouco extenso, mas não é complexo.

Em princípio, o segundo progra- ma se caracteriza por uma árvore de decisão usando if e elseif, sen- do que cada ação solicitada pelo usuário vai determinar um compor- tamento diferente.

A primeira providência do pro- grama para atender qualquer que seja a necessidade do usuário é abrir uma conexão com o banco de dados. Em seguida, ele registra qual a operação o usuário solicitou, e, por conta disso, determina se ele terá que ser executado mais uma vez ou se deve retornar ao in- dex.php. O programa toma essa de- cisão ao definir qual ação deve ser acionada pelo formulário, se exe- cuta o index.php ou ele mesmo (processa.php) com um novo parâ- metro de operação.

A primeira ação do programa é listar. Essa ação

monta uma tabela com todos os livros do banco ordenados pelo título.

Quando acionado pelo botão Incluir do index.php, a ação desse programa é abrir uma tela de for-

mulário para que seja digitado o no- me do novo livro do acervo e mon- tar um combo para que seja defini- do qual o seu status (Disponível, Em- prestado, Encomendado).

Quando o botão “Excluir” é aciona- do é há um livro selecionado no com- bo do index.php, o programa reage excluindo aquele título selecionado. Para a operação de empréstimo, o programa abre um formulário pe- dindo o nome do associado que es- tá emprestando o livro. Na seqüên- cia, faz a atualização das informa- ções trocando o status do livro pa- ra Emprestado e registrando o no- me do associado que retirou o livro. A operação final é a devolução do livro que, quando acionada, al- tera o status do livro para Disponí- vel e elimina o nome do associado. É evidente que outras imple- mentações e validações são ne- cessárias, mas este exemplo já per- mite vislumbrar um pouco da efi- ciência do Firebird usado em com- binação com o PHP.

Gatilho: gerador

automático do código de cada um dos livros

Resultado: controle

dos livros emprestados e dos disponíveis 105_AGENDA_FIREBIRD 26/02/2006 00:42 Page 106

TUTORIAL/FIREBIRD

C O L E Ç Ã O I N F O>107

TUTORIAL/FIREBIRD

106<C O L E Ç Ã O I N F O

ra que se abra uma tela para a cria- ção de consultas SQL. Dentro da te- la de consulta, criaremos o banco de dados com o comando:

CREATE TABLE TB_LIVROS ( CODIGO INTEGER NOT NULL, TITULO VARCHAR(50) NOT NULL, STATUS VARCHAR(20) NOT NULL, ASSOCIADO VARCHAR(40) CHARACTER SET NONE COLLATE NONE);

Logo depois, determinaremos que o código do livro será a chave pri- mária de acesso ao banco com o se- guinte comando:

ALTER TABLE TB_LIVROS ADD CONSTRAINT PK_TB_LIVROS PRIMARY KEY (CODIGO);

3.

O CÓDIGO DOS LIVROS

Agora vamos aproveitar um dos re- cursos do Firebird e transportar pa- ra o banco a responsabilidade de criar sequencialmente o código dos livros na medida em que forem inseridos. Ainda em nossa tela de consulta va- mos inserir o seguinte comando:

CREATE TRIGGER AI_TB_ LIVROS_ CODIGO FOR TB_

LIVROS ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.CODIGO IS NULL) THEN NEW.CODIGO = GEN_ID(TB_ LIVROS_CODIGO_GEN, 1); END

Este gatilho será acionado auto- maticamente a cada inclusão para gerar o código do livro.

4.

SCRIPT EM PHP

Faça o download do arquivo biblio- teca.zip no endereço ftp://ftp.info.

abril.com.br/biblioteca.zip. Des-

compacte-o na pasta onde opera o seu servidor web e terá os arquivos index.php e processa.php.

Nosso primeiro programa, o in- dex.php, lista a quantidade de livros disponíveis e em que status se en- contram (Emprestado, Disponível ou Encomendado). O script faz também uma pesquisa no banco de dados e monta uma lista do tipo combo com todos os livros disponíveis.

Por fim, apresenta uma série de cin- co botões para que você possa esco- lher entre listar os livros disponíveis e seu status, Incluir e Excluir livros. As outras duas opções são de registrar empréstimos e/ou devoluções.

5.

REQUISIÇÕES DO USUÁRIO

Nosso segundo programa, o pro- cessa.php, é que fará o trabalho to- do. Ele é um pouco extenso, mas não é complexo.

Em princípio, o segundo progra- ma se caracteriza por uma árvore de decisão usando if e elseif, sen- do que cada ação solicitada pelo usuário vai determinar um compor- tamento diferente.

A primeira providência do pro- grama para atender qualquer que seja a necessidade do usuário é abrir uma conexão com o banco de dados. Em seguida, ele registra qual a operação o usuário solicitou, e, por conta disso, determina se ele terá que ser executado mais uma vez ou se deve retornar ao in- dex.php. O programa toma essa de- cisão ao definir qual ação deve ser acionada pelo formulário, se exe- cuta o index.php ou ele mesmo (processa.php) com um novo parâ- metro de operação.

A primeira ação do programa é listar. Essa ação

monta uma tabela com todos os livros do banco ordenados pelo título.

Quando acionado pelo botão Incluir do index.php, a ação desse programa é abrir uma tela de for-

mulário para que seja digitado o no- me do novo livro do acervo e mon- tar um combo para que seja defini- do qual o seu status (Disponível, Em- prestado, Encomendado).

Quando o botão “Excluir” é aciona- do é há um livro selecionado no com- bo do index.php, o programa reage excluindo aquele título selecionado. Para a operação de empréstimo, o programa abre um formulário pe- dindo o nome do associado que es- tá emprestando o livro. Na seqüên- cia, faz a atualização das informa- ções trocando o status do livro pa- ra Emprestado e registrando o no- me do associado que retirou o livro. A operação final é a devolução do livro que, quando acionada, al- tera o status do livro para Disponí- vel e elimina o nome do associado. É evidente que outras imple- mentações e validações são ne- cessárias, mas este exemplo já per- mite vislumbrar um pouco da efi- ciência do Firebird usado em com- binação com o PHP.

Gatilho: gerador

automático do código de cada um dos livros

Resultado: controle

dos livros emprestados e dos disponíveis 105_AGENDA_FIREBIRD 26/02/2006 00:42 Page 106

ESPECIALISTAS

No documento Coleção Info_Banco de Dados (páginas 101-104)