dell Postado Fevereiro 25, 2008 Denunciar Share Postado Fevereiro 25, 2008 Eu fiz um sistema onde é exibido a categoria e a quantidade encontrada em cada uma.O problema é que hora funciona e hora não. Dependendo da posição das palavras ele soma as categorias de forma errada.Ex: Casa Azul - lista imoveis (1) > Realmente só há um produto que corresponde com a buscaEx: Azul Casa - lista imoveis (30) > 30 é o total de produtos, deveria listar 1 como acimadependendo da posição das palavras ele retorna o total de produtos cadastrados no banco e não o total de produtos na categoria.Eu fiz um sistema pra exemplificar e vou colocar parte do código mais importante:SaryWord = Split(busca, " ")Sql = "SELECT * FROM produtos where titulo LIKE '%" & SaryWord(0) & "%'"For intSQLLoopCounter = 1 To UBound(SaryWord)Sql = Sql & " OR titulo LIKE '%" & SaryWord(intSQLLoopCounter) & "%' "NextSql = Sql & " Order by nivel asc "RS.Open SQL,Conn,3intTotalRecordsFound = CInt(rs.RecordCount)for i = 1 to intTotalRecordsFoundif rs.eof then exit formeuarray = meuarray&rs("categoria")&","vezes = vezes+1rs.movenextnextsarySearchWord = Split(meuarray, ",")For i = 1 To UBound(SaryWord)Sqy = Sqy & " OR titulo LIKE '%" & SaryWord(i) & "%' "NextFor LoopCount = 0 to vezes-1Set categoria = conn.execute("select * from categorias where id='"&sarysearchword(loopcount)&"'")if categoria.eof then exit forif nivel<>"" and categoria("nivel")= nivel then qtd = qtd+categoria("qtd")else Set conta = conn.execute("select count(id) As total from produtos where nivel="&categoria("nivel")&" and titulo like '%"&SaryWord(0)&"%' "&sqy&"") qtd = conta("total") response.write "<b>categoria</b> "&categoria("categ")&"<b> quantidade </b>"&qtd&"<br>"end ifnivel = categoria("nivel")categoria.MoveNextNextJá fiz a busca com até 4 palavras vai normal, mas se eu for mudando a posição uma hora ele vai somar as categorias tudo errado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Fevereiro 26, 2008 Denunciar Share Postado Fevereiro 26, 2008 acho q você tem q por os LIKEs (os q tão separados por OR) entre parenteses, não?? tipo assim:Set conta = conn.execute("select count(id) As total from produtos where nivel = " & categoria("nivel") & " and (titulo like '%" & SaryWord(0) & "%' " & sqy & ")") Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --dell -- Postado Fevereiro 26, 2008 Denunciar Share Postado Fevereiro 26, 2008 Nossa você foi direto ao ponto. É isso mesmoValeu :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
dell
Eu fiz um sistema onde é exibido a categoria e a quantidade encontrada em cada uma.
O problema é que hora funciona e hora não. Dependendo da posição das palavras ele soma as categorias de forma errada.
Ex: Casa Azul - lista imoveis (1) > Realmente só há um produto que corresponde com a busca
Ex: Azul Casa - lista imoveis (30) > 30 é o total de produtos, deveria listar 1 como acima
dependendo da posição das palavras ele retorna o total de produtos cadastrados no banco e não o total de produtos na categoria.
Eu fiz um sistema pra exemplificar e vou colocar parte do código mais importante:
Já fiz a busca com até 4 palavras vai normal, mas se eu for mudando a posição uma hora ele vai somar as categorias tudo errado.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.