Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ronaldo Bueno

Pegar valor checkbox e fazer um select

Recommended Posts

Pessoal, novamente eu aqui rsrssr é que ultimamente estão aparecendo coisas que nunca fiz.

 

é assim:

 

Tenho um form com check que vem do banco ex:

 

é uma fonte de notícias, então tem um botão filtro, quando clica aparece todos os canais de noticia, mas esses canais vem do banco, conforme quantidade cadastrada.

 

Ai preciso pegar esses valores e fazer um select somente das noticias cujo os canais foram selecionados.

 

para pegar os canais estou fazendo assim:

<%
resgatacheck = request("canal")
'somente para teste de mostrar o que estava pegando
response.Write "Canal puro: " & resgatacheck & "."

ArrP=split( resgatacheck , "," )

for i = 0 to UBound(ArrP)
        'e aqui testo se ele separou as palavras
	response.Write "canal é: " & ArrP(i) & "<br />"
next
%>

mas não estou conseguindo fazer o select

SQLmostraFiltro = "SELECT TOP 10 * FROM [grava_dados] where canal IN ('" & resgatacheck & "') order by vdata DESC,vhora DESC"

Alguém tem alguma idéia ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim

 

SQLmostraFiltro = "SELECT TOP 10 * FROM [grava_dados] where canal IN ('" & resgatacheck & "') order by vdata, vhora DESC"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua dúvida é em como proceder dentro do FOR, para criar a SQL, é isso ??

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

exatamente aqui o erro.

SELECT TOP 10 * FROM grava_dados where canal IN ('Carros, Ciência, Cinema') order by vdata DESC,vhora DESC

isso porque marquei os tres checks

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora me tira uma dúvida: como está a estrutura do BD que você utilizou ? Esses campos sao do tipo Yes/No ? Texto ? Numerico ?

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, esse campo canal é onde tem os canais das noticias cadastradas ex:

 

Fonte UOL

Canal: Carros

Noticia: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Data: 00/00/0000

 

e essa consulta seria para mostrar somente as noticias do canal marcado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao você precisa montar a sua query assim;

 

SELECT TOP 10 * FROM grava_dados where canal = 'Carros' OR canal = 'Ciência' OR canal =  'Cinema' order by vdata DESC,vhora DESC 

Agora é só você criar a rotina dentro do for para deixar a sua query assim...

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

velho na instrução order by você esta utilizando 2 DESC

 

order by vdata DESC,vhora DESC

 

uma dica

 

utilize da seguinte maneira

 

order by vdata, vhora DESC

Compartilhar este post


Link para o post
Compartilhar em outros sites

SQL = "SELECT TOP 10 * FROM grava_dados WHERE 1=1 "
for i = 0 to UBound(ArrP)
SQL = SQL & " OR canal = " & Arrp(i)
next

SQL = SQL & " order by vdata DESC,vhora DESC " 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

porfavor poste , sua string SQL para avaliarmos , como ela esta...

Compartilhar este post


Link para o post
Compartilhar em outros sites

codigo completo:

<%
resgatacheck = request("canal")

response.Write "Canal puro: " & resgatacheck & "."

ArrP=split( resgatacheck , "," )

for i = 0 to UBound(ArrP)
	response.Write "canal é: " & ArrP(i) & "<br />"
next
%>
<%
	set RSmostraFiltro = server.createobject("adodb.recordset")
	SQLmostraFiltro = "SELECT TOP 10 * FROM grava_dados where canal IN ('" & resgatacheck & "') order by vdata, vhora DESC"
	RSmostraFiltro.open SQLmostraFiltro, conn, 2, 2
	
	response.Write SQLmostraFiltro
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou tentando fazer uma gambiarra rsrsrss

<%
resgatacheck = request("canal")

response.Write "Canal puro: " & resgatacheck & "<br><br><br>"

ArrP = split(resgatacheck,", ")

for i = 0 to UBound(ArrP)


	strCanal = " canal="&ArrP(i)
	

	strAtualizaGeral = strCanal + " or "


	response.Write strAtualizaGeral


next

%>

só que ele esta colocando um or no final, ficando assim:

canal=Carros or canal=Ciência or canal=Cinema or

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara.. eu jah nao te passei o codigo CORRETO no meu ultimo post ????

É só você fazer exatamente como te passei que a sua query funcionará normalmente.....

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

então mas o que voce passou ele coloca o OR no primeiro tb

 

ou seja ele lê e faz a variavel ficar assim: OR canal = Carros OR canal = Ciência OR canal = Cinema

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim... pois JAH EXISTE UMA CLAUSULA WHERE.. com o Where 1=1...

você chegou a testar a query como te passei??

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz exatamente, só mudei as variaveis:

<%
resgatacheck = request("canal")

response.Write "Canal puro: " & resgatacheck & "<br><br><br>"

ArrP = split(resgatacheck,", ")

SQLmostraFiltro = "SELECT TOP 10 * FROM grava_dados WHERE 1=1 "

for i = 0 to UBound(ArrP)
	SQLmostraFiltro = SQLmostraFiltro & " OR canal = " & Arrp(i)
next

	response.Write SQLmostraFiltro
%>
<%
	set RSmostraFiltro = server.createobject("adodb.recordset")
	SQLmostraFiltro = SQLmostraFiltro & " order by vdata DESC,vhora DESC "
	RSmostraFiltro.open SQLmostraFiltro, conn, 2, 2
	
	response.Write SQLmostraFiltro
%>

ai da esse erro:

 

SELECT TOP 10 * FROM grava_dados WHERE 1=1 OR canal = Carros OR canal = Ciência OR canal = Cinema

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

 

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 3.

 

/rss/default-filtro.asp, line 70

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.