Olá pessoal! Depois de toda euforia carnavalesca, estamos de volta com esta série de artigos. E neste de hoje desenvolveremos a página principal do sistema (index.php), ou seja, a página visível aos visitantes do nosso sistema de publicação de fotos com comentários.
Nesta página os usuários verão a última foto postada, uma relação das postagem anteriores, e os comentários referente à última foto. Devido à quantidade de tarefas a ser realizada, iremos somente configurar os Recordsets que serão utilizados.
Para quem curtiu bastante o carnaval e não acompanhou a série por completo, segue a relação dos artigos referente a ela:
Relação dos artigos desta série:
- Sistema de publicação de fotos com comentários (sugestões)
- Sistema de publicação de fotos com comentários (planejamento)
- Sistema de publicação de fotos com comentários (postar fotos)
- Sistema de publicação de fotos com comentários (alterar dados e foto)
- Sistema de publicação de fotos com comentários (excluir dados e foto)
Para esta página necessitaramos de quatro Recordsets, e eles terão as seguintes funcionalidades:
- Listar a última foto;
- Listar a foto que o usuário escolheu na relação das últimas fotos;
- Relação das últimas fotos;
- Comentários referente a foto em questão (exibição).
No painel Application e na opção: Bindings (Ctrl + F10), temos a opção Recordset (Query), opção essa que nos possibilita a criação dos Recordsets. Veja uma imagem com sua localização:
Agora veja o Recordset que listará a última foto na imagem abaixo:
Explicando:
Name: o nome do nosso recordset (rsUltimaFoto). Dica: utilize o prefixo: rs. Para uma melhor identificação de tudo que se trata do recordset.
Connection: escolha a conexão que criamos (connSisFotos).
Table: tabela (fotos) onde se localiza os dados.
Columns: resgataremos todas as colunas da tabela.
Sort: ordenaremos o campo foto_id de forma Desceding, o que significa dizer, que a foto com o id maior será exibido, ou seja, a última foto postada.
Teremos dois Recordsets com o mesmo nome: rsUltimaFoto, uma para exibir a última foto postada no sistema, isto quando entrarmos na página; outro para exibir a foto que o usuário escolheu na relação das últimas fotos, então, quando isto ocorrer teremos uma variável na URL desta forma: index.php?foto_id=1, com isto, verificamos em nosso código PHP se essa variável (foto_id) exisite, caso sim, trabalharemos com o Recordset que utiliza a opção de filtragem.
Vamos realizar esta operação, passo a passo, primeiro, copie e cole o Recordset para duplicá-lo. Veja:

Agora trabalharemos com a condição if, afim de ocultar um Recordset quando necessário e exibir o outro; filtrar pelo id presente na variável foto_id que será exibida na URL, o Recordset que exibirá a foto requisitada pelo usuário. Observe novamente:

Explicando:
1º - Criamos a condição if e utilizamos a função isset em conjunto. Com isto, trabalharemos com este Recordset somente quando existir a variável foto_id na URL;
2º - Criamos a variável: $fotoRequisitada que receberá o valor presente na variável foto_id;
3º - Filtramos nosso Recordset pelo campo: foto_id, sendo que este precisará ter o valor semelhante ao presente na variável: $fotoRequisitada;
4º - Quando não existir a variável foto_id na URL, será utilizado o segundo Recordset;
5º - Fechamos a } (chave) utilizada pela condição if.
Agora vejamos o Recordset que exibirá a relação das últimas fotos:

Explicando:
Name: o nome do nosso recordset (rsUltimasFoto). Dica: utilize o prefixo: rs. Para uma melhor identificação de tudo que se trata do recordset.
Connection: escolha a conexão que criamos (connSisFotos).
Table: tabela (fotos) onde se localiza os dados.
Columns: resgataremos todas as colunas da tabela.
Sort:. ordenaremos o campo foto_id de forma Desceding, o que significa dizer, que somente as últimas fotos serão exibidas.
Precisaremos realizar algumas modificações nesse Recordset para atingirmos os seguintes objetivos: não exibir a última foto postada na relação, visto que ela já será exibida como a principal; limitar a quantidade de fotos que será exibida na relação. Então, vejamos:

Para atingirmos tais objetivos, utilizamos apenas o LIMIT 1,5, ou seja, pular a primeira foto (1,) e exibir no máximo 5 (1,5).
Criaremos agora o Recordset para exibirmos os comentários referente a foto que estamos exibindo, veja:

Explicando:
Name: o nome do nosso recordset (rsComentarios). Dica: utilize o prefixo: rs. Para uma melhor identificação de tudo que se trata do recordset.
Connection: escolha a conexão que criamos (connSisFotos).
Table: tabela (fotos_comentarios) onde se localiza os comentarios referente as fotos.
Columns: resgataremos todas as colunas da tabela.
Filter: Para termos os comentários específicos da foto em questão, precisamos filtrar nosso Recordset, então, vamos filtrá-lo pela coluna: com_id_foto, pois nela está armazenado a identificação única de cada foto; dizemos que a coluna (com_id_foto) precisa ser igual (=) ao valor presente na variável $fotoRequisitada. O que significa dizer, que os comentários que serão exibidos precisarão ter um valor no campo com_id_foto idêntico ao localizado na variável: $fotoRequisitada.
Bom, você deve estar se perguntado: a variável $fotoRequisitada existe apenas no Recordset que será utilizado quando tivermos a variável foto_id na URL, certo? Sim, perfeita observação. Então, precisamos criar essa mesma variável, para quando o referido Recordset não estiver em uso, termos a variável, afinal o Recordset que exibe os comentários necessita de sua existência. Veja a alteração realizada:

Ufa, quanto Recordset, mas finalizamos a configuração de todos eles. Veja a página index.php até este momento.
Um abraço a todos e até o próximo.












10 Comentários
Qual a sua opinião?