Ir para conteúdo
Fórum Script Brasil
  • 0

Duas condições para pesquisa


Guest --Edu --

Pergunta

Olá,

Estou com um duvida em relação a montagem de busca para um sisteminha que estou montando para abertura de chamados.

Bom, a busca está funcionando, mas gostaria de criar mais uma condição para busca no meu BD, onde agora só consigo digitar uma palavra, e ele procura nas tabelas especificadas.

O que eu quero é buscar duas ou mais palavras no mesmo campo de busca.

Exemplo:

Com o codigo relacionado abaixo, se digitar o nome Eduardo, ele busca só os registros com o nome de Eduardo, nas tabelas especificadas. Meu desejo é jogar o nome Eduardo e mais o Status Aberto para ampliar o critério de consulta, e isso no codigo abaixo não dá.

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="../conexao/cadastro.asp" -->
<%
response.buffer = "true"
'Declara variaveis
MM_editAction = CStr(Request("URL"))
If (Request.QueryString <> "") Then
  MM_editAction = MM_editAction & "?" & Request.QueryString
End If

' boolean to abort record edit
MM_abortEdit = false

' Executa string 
MM_editQuery = ""
%>
<%
set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_chamados_STRING
Recordset1.Source = "SELECT * FROM chamados"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 3
Recordset1.Open()
Recordset1_numRows = 0
%>

<%
response.buffer = "true"


'Abre a conexão com o banco de dados
    Set Conexao = Server.CreateObject("ADODB.Connection")
dbPath = "DBQ=" & Server.Mappath("../dados/dados.mdb")
Conexao.Open "DRIVER={Microsoft Access Driver (*.mdb)};" & dbPath

    Set Recordset1 = Server.CreateObject("ADODB.RecordSet")
    Recordset1.Open "SELECT * FROM chamados WHERE nome LIKE '%"& request.form("dado") &"%' OR atendente LIKE'%"& request.form("dado") &"%' OR login LIKE'%"& request.form("dado") &"%' OR evento LIKE'%"& request.form("dado") &"%' OR cod LIKE'%"& request.form("dado") &"%'" , Conexao, 1, 3
%>
<%

Dim Repeat1__numRows
Repeat1__numRows = -1
Dim Repeat1__index
Repeat1__index = 0
Recordset1_numRows = Recordset1_numRows + Repeat1__numRows

'Senão encontrar nenhum registro '

    if Recordset1.eof then
        response.write "<p> <p><center><font class=conteudo>Nenhum cadastro encontrado<br> com estas características.</font></center>"


        
    else
        %>

Será que é possível???

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Não entendi muito bem...

O que você está querendo é tipo digitar bol e ele apresentar os resultados, bol, bola, bolão, bolada, bolo cheia... é isso?

e você quer que essa mesma consulta seja feita em vários campos da mesma tabela? ou em várias tabelas do mesmo bd?

explica um pouquinho melhor que eu tento te ajudar...

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0
Não entendi muito bem...

O que você está querendo é tipo digitar bol e ele apresentar os resultados, bol, bola, bolão, bolada, bolo cheia... é isso?

e você quer que essa mesma consulta seja feita em vários campos da mesma tabela? ou em várias tabelas do mesmo bd?

explica um pouquinho melhor que eu tento te ajudar...

[]'s Rafael Spilki

Oi Rafa meu salvador hehehe

Bom, é seguinte, no form onde digito a palavra para ser encontrada, ele só busca a palavra toda, no caso se eu digitar Eduardo, ele busca ns tabelas que eu espefiquei para busca.

O que eu quero é buscar duas palavras, como exemplo: Eduardo e Fechados (buscar o atendente e o evento do chamado) num unico campo do form.

Tá confuso né? rs

valeu

Link para o comentário
Compartilhar em outros sites

  • 0

Tenho este exemplo que pode dar uma luz:

CREATE TABLE #TAB ( TEXTO VARCHAR(4000))
INSERT INTO #TAB  ( TEXTO ) VALUES ('PETROBRAS')
INSERT INTO #TAB  ( TEXTO ) VALUES ('VALE')
INSERT INTO #TAB  ( TEXTO ) VALUES ('VILA')
INSERT INTO #TAB  ( TEXTO ) VALUES ('PARAOPEBA')
INSERT INTO #TAB  ( TEXTO ) VALUES ('PRETOLEO')

CREATE  TABLE #RES ( TEXTO_RESUTADO VARCHAR(4000))

DECLARE @TEXTO_PROCURADO VARCHAR(400), 
        @FORMA VARCHAR(30), 
        @COMANDO VARCHAR(4000),
  @DELIMITADOR VARCHAR(2)   

--DEFINE QUE VAI SER O DELIMITADOR
SET @DELIMITADOR = ',' 

--DEFINE PARAMETRO DE ENTRADA
SET @TEXTO_PROCURADO = 'PETR,VALE'

IF LEN(@TEXTO_PROCURADO) > 0 SET @TEXTO_PROCURADO = @TEXTO_PROCURADO + @DELIMITADOR  

--INICIA LOOP PARA EXTRAIR TEXTO PARA EFETUAR A ATUALZIAÇÃO
WHILE LEN(RTRIM(LTRIM(@TEXTO_PROCURADO))) > 0
BEGIN
    SET @COMANDO = 'INSERT INTO #RES (TEXTO_RESUTADO) SELECT TEXTO FROM #TAB WHERE TEXTO LIKE '
    SET @FORMA = RTRIM(LTRIM(SUBSTRING(@TEXTO_PROCURADO, 1, CHARINDEX(@DELIMITADOR, @TEXTO_PROCURADO) - 1)))
    SET @COMANDO = @COMANDO +  '''' + '%' + @FORMA  + '%'+ ''''

    EXEC (@COMANDO)
    PRINT (@COMANDO)

 SELECT @TEXTO_PROCURADO = 
 SUBSTRING(@TEXTO_PROCURADO , CHARINDEX(@DELIMITADOR, @TEXTO_PROCURADO ) + 1, LEN(@TEXTO_PROCURADO ))

END

SELECT * FROM #RES

DROP TABLE #TAB

você passa uma string delimitada e o script desmenbra a string e monta um sql para pesquisar.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...