Olá pessoal, agradeço a todos que contribuíram com sugestões de temas para nossa coluna. E quanto a você, que ainda não enviou sua sugestão, fico no aguardo. Combinado?
Versão do Dreamweaver utilizada: CS3
Hoje veremos como criar um Recordset com vários filtros, e você vai perceber como é simples. Primeiramente, faça o download da instrução SQL que irá criar a tabela que utilizaremos como exemplo neste artigo.
Em seguida, crie uma nova página PHP e inicie a criação de um Recordset através de algum dos seguintes caminhos para esta opção:
Opção Recordset da aba Data na Insert Bar. Tal opção é a sétima da esquerda para a direita. (Versão CS3 do Dreamweaver). Observe:
Opção Recordset na aba Data da Insert Bar
No painel Application, utilize a opção Recordset (Query) ou Recordset nas abas Bindings e Server Behaviors, respectivamente. Veja:
Opção Recordset (Query) na aba Bindings do painel Application
Opção Recordset na aba Server Behaviors do painel Application
Uma vez acessado a opção, teremos o painel Recordset, onde é possível criar um conjunto de registros de uma determinada tabela e filtrar os dados desse conjunto como desejado. Ou seja, através dos filtros iremos refinar os registros.
O painel Recordset tem duas versões: Simple e Advanced. Com a primeira – que é a padrão – é possível definir apenas um filtro. Com a segunda, podemos definir quantos filtros forem necessários. Esses filtros na realidade, são cláusulas do tipo WHERE adicionadas à instrução SQL referente ao Recordset.
A tabela rs_com_varios_filtros , que utilizaremos como exemplo neste artigo, foi criada com alguns campos que nos possibilitasse criar vários filtros para um determinado Recordset. Sendo assim, neste exemplo, usaremos os seguintes campos: intNotHome, intNotRegister, strNotSection. O primeiro indica se uma notícia deverá ser exibida na página principal; o segundo informa se a notícia deverá ser lida por um usuário registrado; e a terceira define a seção em que a notícia aparecerá.
Com essas informações, podemos iniciar a criação do Recordset. Você pode iniciar através do modo Simple do painel, e assim que faremos. Observe um exemplo:
Exemplo de criação de um simples Recordset
A imagem acima ilustra o processo de criação de um Recordset simples. Para isso, é necessário informar os seguintes dados ao painel Recordset:
- Name: nome desejado para o Recordset;
- Connection: nome da conexão ao banco de dados;
- Table: nome da tabela que contém os dados desejado, neste caso: rs_com_varios_filtros;
- Columns: All para selecionar todos os campos da tabela;
Em Filter, escopo deste tutorial, definimos o filtro desejado. Vamos compreendê-lo:
Informamos que o filtro será com base no campo intNotHome – que define se a notícia será exibida na página principal – em seguida, dizemos que esse campo deverá ser igual ( = ) ao valor informado (Entered Value). Feito isso, informamos o valor 1 (um). Neste caso, quando esse campo tiver o valor 1 (um), indica que a notícia pode ser exibida na página inicial, caso contrário, ou seja, se tiver o valor 0 (zero), a notícia não deverá aparecer na página inicial.
Neste momento, você pode clicar no botão Test – que está localizado abaixo do botão Cancel do painel Recordset – e verá dois registros da tabela, uma vez que somente eles possuem o valor 1 (um) definido no campo intNotHome.
Vamos definir outros filtros. Para isso, alterne para o modo Advanced do painel. Como nosso objetivo é definir mais filtros para o Recordset, e tais filtros são feitos com base em determinado campo. Precisamos informar qual será o campo. Isso é feito através do Database items – onde é listado todas as tabelas referente a conexão com o banco de dados selecionada, e claro, todos campos das tabelas. Observe um exemplo:
Selecionando um campo da tabela através da opção Database items.
Uma vez selecionado o campo desejado, no exemplo acima o campo intNotRegister, clique no botão WHERE – que se localizada ao lado direito do painel Database items. Desta forma, um novo filtro será criado à instrução SQL; bastando informar o valor que esse filtro (ou campo) deverá conter. Observe:
Novo filtro adicionado à instrução SQL
Veja que informamos o valor 1 (um) para o filtro que criamos. O que significa dizer que a notícia deverá ser lida por usuários registrados, somente. Atente-se que o filtro é semelhante ao que criamos anteriormente, a diferença foi a forma como o criamos. Ainda há uma outra forma, que é utilizar o campo SQL e digitar manualmente à instrução desejada. Se você domina SQL, essa última opção é mais prática e rápida.
Se você voltar a clicar no botão Test, verá que agora há apenas um registro. Uma vez que somente uma notícia tem o valor 1 (um) para o campo intNotHome e intNotRegister.
Veja um exemplo de uma instrução SQL com três filtros aplicados:
Exemplo de instrução SQL com três filtros aplicados
Você pode ter observado que os dois últimos campos foram definidos de forma diferente ao primeiro. Isto é, o primeiro não informa o nome da tabela junto ao nome do campo como os demais. Observe a diferença:
Primeiro filtro: intNotHome = 1
Segundo filtro: rs_com_varios_filtros.intNotRegister = 1
Ou seja, o segundo (e terceiro) utilizaram o seguinte padrão: nomeDaTabela.nomeDoCampo. Isso deve ser utilizado quando se trabalha com várias tabelas em um mesmo Recordset (conjunto de registros), evitando que haja conflito entre os campos. Como nosso exemplo trabalha com apenas uma tabela, o primeiro filtro também está correto.
Importante observar que o painel Recordset apenas utiliza o padrão nomeDaTabela.nomeDoCampo quando utilizado em seu modo Advanced.
Agora, que você aprendeu a criar vários filtros para seu Recordset, divirta-se e crie quantos forem necessários para alcançar o objetivo desejado.
Um abraço a todos e até o próximo.








