• Nenhum resultado encontrado

O layout da página poderá ser da seguinte forma:

N/A
N/A
Protected

Academic year: 2021

Share "O layout da página poderá ser da seguinte forma: "

Copied!
15
0
0

Texto

(1)

TRABALHANDO COM PUBLICAÇÕES NA EXIBIÇÃO DE LIVROS

O diferencial dos livros é a exibição dos mesmos. Você fará uma página para exibir todos os livros, que deverá lista-los juntamente com sua foto e as seguintes informações: titulo, autor, editora e seu preço.

O layout da página poderá ser da seguinte forma:

Dominando o JBuilder X

Autor: Edna Gonçalves Editora: Ciência Moderna

Valor: R$ 76,00

CorelDraw X3

Autor: Zig Ziglar Editora: Campus

Valor: R$ 170,00

(2)

Observe que a informações que são mostradas de cada livro não estão na tabela de Livros, como indicada abaixo:

Veja que os nomes da Autor, Editora e Preço não estão presentes na tabela

Livro, logo, como poderá ser feito para que se exiba da forma como está

indicado acima?

(3)

Verifique que há uma tabela estratégica Publicação a qual possui todos os relacionamentos entre os dados de uma publicação e as demais tabelas que possuem essas informações:

A tabela possui as chaves para Autor (autor_id), Editora (editora_id) e já consta o preço da

publicação. Além delas consta a chave de Livro (isbn). Ou seja, é através dela que faremos todo o

controle de publicações para serem exibidas e compradas, e não nas tabelas adjacentes, como

Livro ou qualquer outra publicação futura (como Jornal, Artigo, Revista, etc)

(4)

A primeira etapa a ser feita, antes de irmos para a exibição, é controlar a tabela de Publicação em caso de ter usado a tabela de Livros para seu CRUD, da seguinte forma:

1. Se cadastrou um livro novo (com o novo isbn), faça a inclusão do mesmo na tabela de publicação. Veja que tem que colocar as chaves do Autor desse livro e sua editora;

2. Se excluir um livro, exclua-o da tabela de Publicação (pelo seu isbn);

3. Se atualizou o valor do livro, precisa atualizar na tabela de

Publicação.

(5)

EXIBIR PUBLICAÇÕES

Precisamos criar uma classe modelo que descreva um objeto para Publicação. É comum criarmos a classe com os atributos, de acordo com os dados da tabela de banco de dados. Logo, deveríamos criar um objeto contendo publicação_id, isbn, autor_id e assim por diante.

Porém, não iremos criar dessa forma, pois precisamos da publicação já

com os dados que não tem na tabela e precisamos mostra-los, que é o

nome da editora e do autor, titulo do livro e etc. Portanto, iremos criar

o objeto preparado com essas informações:

(6)

Para complementar a classe, crie os métodos get/set.

(7)

Classe DAO para Publicação

Essa classe será importantíssima e terá todos os métodos para se capturar as informações nas tabelas via chaves estrangeira presentes na tabela Publicação.

Por exemplo: se desejo pegar o nome da editora pelo id da mesma, farei o seguinte método:

E assim faça para os demais (titulo do livro, nome do autor)

(8)

Quando buscarmos todas as Publicações para serem exibidas na página, faremos

analogamente como foi feito com Autores, ou seja, criaremos um vetor dinâmico

cheio de objetos Publicação e enviaremos para a sessão, que será recuperado

pela página de exibição. Para isso, implementaremos o método getPublicacoes

no DAO que fará essa montagem do vetor:

(9)

Repare que nesse método criamos um objeto Publicação da classe modelo que criamos. Ao setarmos as informações atributo-a-atributo, veja que pegamos o id da informação que foi consultada na tabela de Publicação e passamos ao método que retorna a sua descrição.

Exemplo, no caso de Editora, para conseguirmos o seu nome, passamos o editora_id (que veio da consulta da tabela de Publicação) para o método getEditora(), que faz a consulta por esse id na tabela Editora e retorna o seu nome. É este nome que é passado ao objeto Publicação.

Em todos os atributos, o objeto Publicação estará completo para ser colocado no vetor e ser exibido na página!

Atribuindo ao objeto

Método que retorna o nome da editora a partir do id

Pega o id da editora da tabela Publicação

(10)

Para capturar uma Publicação específica, o processo é o mesmo e

iremos colocar mais esse método no DAO.

(11)

No controlador de Publicação

Crie um controlador específico para a Publicação (siga a ideia do

controlador de Autores, na passagem da opção). Vamos colocar a opção =

2 para exibir as publicações.

(12)

Página exibirPublicacoes.php

Para exibir as Publicações, habilite a sessão e capture a lista deixada pelo controlador. Depois, iremos varrer a lista (o vetor) para pegar cada Publicação que será exibida.

DETALHE: cada livro será exibido por uma tabela, ou seja, teremos várias tabelas, uma para livro diferente (o que é diferente do que foi feito para Autores).

Layout desejado

Tabela para colocar cada Publicação

rowspan

(13)

Para que seja construída uma tabela para cada Publicação, esta deverá estar toda dentro do FOR de percurso da lista de publicações. Logo:

Captura da imagem via

ISBN do Livro

(14)

CÓDIGO COMPLETO

<?php

require_once('classes/modeloLivraria.inc');

?>

<HTML>

<HEAD>

<TITLE>Publicações</TITLE>

</HEAD>

<BODY>

<center>

<h1>Publicações cadastrados</h1>

<p>

<div align="right">

<a href="controlers/controlerCarrinho.php?opcao=3">

<img src="../imagens/meu-carrinho.png" border="0">

</a>

</div>

<?php

session_start();

$publicacoes = $_SESSION['publicacoes'];

foreach($publicacoes as $pub) {

?>

<table border="0" width="50%" cellspacing="5">

<tr>

<td rowspan="5" align="center">

<img src="../imagens/book_<?php echo $pub->getIsbn(); ?>.jpg" width="200"

height="200" border="0"></td>

</tr>

<tr align="left">

<td><b><font face="Verdana" size="3">

<?php echo $pub->getTitulo(); ?></font></b></td>

</tr>

(15)

<tr>

<td><font face="Verdana" size="3">

<?php echo $pub->getAutor(); ?></font></td>

</tr>

<tr>

<td><font face="Verdana" size="2">

<?php echo $pub->getEditora(); ?></font></td>

</tr>

<tr>

<td><b><font face="Verdana" size="5" color="red">

R$ <?php echo $pub->getPreco(); ?></font></b></td>

<td>

<?php echo "<a href='../controlers/controlerCarrinho.php?opcao=1&id=".$pub-

>getId()."'>

<img src='../imagens/botao_comprar2.png' border='0'></a>" ?></td>

</tr>

</table>

<p>

<hr width="50%">

<p>

<?php } ?>

</center>

</BODY>

</HTML>

Referências

Documentos relacionados

A partir do que é singular da fé cristã, todos busquem o diálogo – caminho que do que é singular da fé cristã, todos busquem o diálogo – caminho que leva a um mundo

Box-plot dos valores de nitrogênio orgânico, íon amônio, nitrito e nitrato obtidos para os pontos P1(cinquenta metros a montante do ponto de descarga), P2 (descarga do

Quando buscarmos todas as Publicações para serem exibidas na página, faremos analogamente como foi feito com Autores, ou seja, criaremos um vetor dinâmico

Informe o título que deverá aparecer no menu e marque qual o item de menu será o item superior ao menu da galeria. ● Opções de publicação: ​se marcar a opção

Caso não haja licitante que ofereça lanço igual ou superior à avaliação, o bem será arrematado por quem oferecer quantia não inferior a 60% (sessenta por cento) dessa avaliação

Após a realização de todas as atividades teóricas e práticas de campo, pode-se concluir que não há grande erosão do conhecimento popular e tradicional de plantas medicinais, que

Por outro lado, mesmo que existam tantas espécies coralíferas nas águas escuras e frias como nas águas quentes, apenas seis espécies profundas são capazes de construir recifes..

Outras obras em exposição foram adquiridas pelo Museu de Arte da Pampulha, através da Lei Municipal de Incentivo à Cultura, com patro- cínio do Hospital Mater Dei e da Lider