Ir para conteúdo

POWERED BY:

Arquivado

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

Dell

sistema de busca em duas tabelas

Recommended Posts

Olhe abaixo o código que estou tentando implantar em uma loja virtual.Preciso procurar na descricao dos produtos pela palavra digitada. Até aqui tudo bem encontra direitinho mas se eu digitar duas palavras o sql ignora e exibe todos os produtos.Deu para entender??? Se eu pesquisar por ex.: dvd será exibido somente produtos cuja descrição se encontre a palavra dvd.Isso o sistema abaixo faz porém se eu pesquisar dvd matrix as palavras serão ignoradas e será listado todos os produtos.Que coisa estranha é essa??????palavra = request("busca")Word = Split(palavra, " ")Set Conn = Server.CreateObject("AdoDb.Connection") Conn.provider="Microsoft.Jet.OLEDB.4.0" Conn.connectionstring=Server.Mappath("banco.mdb") Conn.open Set RS = Server.CreateObject("adodb.recordset")Sql = "SELECT TOP 300 * FROM produtos,descricao where produtos.id=descricao.id and descricao like '%" &palavra& "%'"For i = 1 To UBound(Word)Sql = Sql & " or descricao like '%" & Word(i) & "%' "NextRS.Open SQL,Conn,3

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, sempre tente dar um response.write pra você ver o q você tah fazendoreparatu tah buscando like palavraacho q você deve mudar o finalSql = "SELECT TOP 300 * FROM produtos,descricao where produtos.id=descricao.id and descricao like '%" &Word(1)& "%'"For i = 2 To UBound(Word)Sql = Sql & " or descricao like '%" & Word(i) & "%' "NextRS.Open SQL,Conn,3,3outra coisinha q nao me lembro agora, o vetor começa em 0 ou 1 ???pq si nao, teria q colocar na linha sql Word(0) e no loop começar por i = 1 ou invés de i = 2se nao me engano, o correto eh essa ultima maneira!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, sempre tente dar um response.write pra você ver o q você tah fazendo

repara

tu tah buscando like palavra

 

acho q você deve mudar o final

 

Sql = "SELECT TOP 300 * FROM produtos,descricao where produtos.id=descricao.id and descricao like '%" &Word(1)& "%'"

For i = 2 To UBound(Word)

Sql = Sql & " or descricao like '%" & Word(i) & "%' "

Next

RS.Open SQL,Conn,3,3

 

outra coisinha q nao me lembro agora, o vetor começa em 0 ou 1 ???

pq si nao, teria q colocar na linha sql Word(0) e no loop começar por i = 1 ou invés de i = 2

 

se nao me engano, o correto eh essa ultima maneira!!!

Vetores em ASP começam do 0!

 

 

Dell como o dimarcinho sugeriu sempre que você solicitar ajuda relacionada a expressões sql dê um response.write no conteúdo de sua variavel onde esta o select. Fica mais fácil e rápido ajudá-lo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não foi dessa vez. Não entendo com uma palavra a busca é exata mas com duas lista todos os produtos.Sql = "SELECT TOP 50 * FROM produtos,descricao where produtos.id=descricao.id and descricao like '%" &Word(0)& "%'"For i = 1 To UBound(Word)Sql = Sql & " or descricao like '%" & Word(i) & "%' "NextRS.Open SQL,Conn,3,3Será que a Sql tem de ser montada diferente?? Mas não retorna erro algum?? Eu fiquei confuso, já fiz consultas muita mais complicadas que essa.Estou tentando dessa forma mas se não conseguir terei de fazer dois select um para encontrar a palavra na descrição e outro para ligar o que foi encontrado aos produtos.

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.