Ir ao conteúdo
  • Cadastre-se

PHP Formulando a lógica do sistema


Posts recomendados

Fala galera, 

Eu estou desenvolvendo um site para uma fotógrafa e na área do portfólio eu quero fazer um seguinte sistema:

 

1) Paginação, a cada 5 álbuns eu gostaria que criasse uma página, por exemplo: 8 álbuns, então teria 5 na primeira página e 3 na segunda.

2) E também se a pessoa clicar na foto principal do álbum, ela verá todas as fotos do ensaio em outra página.

 

Eu consegui fazer a parte front-end, mas agora não consigo pensar em alguma forma de fazer isso dinâmico, porque como to fazendo um painel de controle, eu penso que a lógica seria mais ou menos assim:

- Criar um banco de dados para a foto principal, que é um link para o álbum todo.

- No painel administrativo, criar um sistema de adicionar a foto principal e o nome do álbum.

- Na parte front-end, puxar as fotos principais (que são links para o álbum inteiro) do banco de dados e fazer a paginificação: a cada 5 fotos, criar outra página.

- Depois criar outro banco de dados para o álbum completo de cada foto principal.

- No painel administrativo, criar um sistema pra adicionar todo o álbum em cada link da foto principal. // Por exemplo Cada foto dessa que coloquei em baixo, irá redirecionar para o álbum inteiro, então: www.sitefotografa.com.br/ana-e-julio (álbum inteiro)

- Na parte front-end, puxar no link de cada foto principal, "www.sitefotografa.com.br/ana-e-julio" todas as fotos (álbum inteiro).

 

Essa é a parte front-end, uma página one-page, sendo que cada foto dessa é um link para o álbum principal, como citei acima um exemplo ao clicar em uma foto: "www.sitefotografa.com.br/ana-e-julio"

portfolio.thumb.JPG.eb5a745450c5917b60aab0e03a5d063a.JPG

 

Vocês teriam alguma ideia de como fazer isso? Ou se minha lógica ta errada...

Link para o comentário
Compartilhar em outros sites

Você precisa ter duas tabelas para as fotos (terá que ter uma de usuários se tiver sistema de login).

 

 

CREATE TABLE album (
	id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
  	thumbnail  VARCHAR(255) NOT NULL, //Salva o caminho do arquivo thumbnail
  	name VARCHAR(100) NOT NULL, //Nome do album (opcional)
  	url VARCHAR(255) //Campo opcional, utilizado para criar uma URL amigável
);

CREATE TABLE photo (
	id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
  	album_id INT UNSIGNED NOT NULL,
  	photo VARCHAR(255) NOT NULL, //Caminho da foto
  	FOREIGN (album_id) REFERENCES album(id)
);

Você não salva os arquivos no banco, você faz o upload dele via php e salva o caminho do arquivo.

 

Na sua tela de albuns você teria uma variável chamada $albuns, daí você faria:

foreach ($albuns as $album)
<div class="albun">
	<img src="<?= $album['thumbnail'] ?>">
	<span class="album-name"><?= $album['name'] ?></span>
	<a href="<?= $album['url'] ?>">Veja o album!</a>
</div>
endforeach

Daí na tela de ver as fotos você faria uma coisa parecida com essa, só que com uma variável de photos

 

 

//Paginação

Essa parte é mais complicada.. Você teria que passar um parâmetro GET e ter definido no seu projeto quantos itens por página você quer.

 

Por exemplo, você passa um parâmetro GET na UL chamado page.

//Verifica se o parâmetro page foi passado na URL, se sim, ele coloca o valor na variavel $page, se não, $page = 0
isset($_GET['page']) ? $page = $_GET['page'] : $page = 0;

Tem um comando SQL que você pula alguns registros e depois pega os N próximos registros.

//someLimit é a quantidade de itens que ele vai pular, someOffset é a quantidade de itens que ele vai puxar do banco
SELECT * FROM tabela LIMIT {someLimit} OFFSET {someOffset}
//Ou seja, se você ta na página 2 e você tem 10 itens por página, você deve pular os 10 primeiros e pegar do 11 ao 20
SELECT * FROM tabela LIMIT 10 OFFSET 10

Para isso que serve a variável $page.

 

Qualquer dúvida tamo ai....

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!