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

Split E Array


Tite

Pergunta

Pessoal... primeiramente faz-se necessário saber que EXISTE na tabela (access)

"1ALERTA" e no campo "palavrachave" 2 registros já adicionados assim:

No registro 1-> palavrachave= flamengo, vasco

No registro 2-> palavrachave= vasco

Sendo assim, quero consultar os registros que contenham as palavras (flamengo, palmeiras)

como descriminado na variável "strpalavrachave".

SEGUE O CÓDIGO... SÓ NÃO CONSIGO ENTENDER PORQ DÁ ERRADO.

O RESULTADO É: "Não foi encontrado nenhum alerta para esta PALAVRA-CHAVE"

<%
strpalavrachave = "flamengo, palmeiras"
MyArray = Split(strpalavrachave, ",")
%>
<%
For I = LBound(MyArray) to Ubound(MyArray)

Set palavrachave = Server.CreateObject("ADODB.Recordset")
palavrachave.Open "SELECT * FROM 1ALERTA WHERE LCase(palavrachave) LIKE '%" & LCase(Trim(MyArray (I))) & "%' ", Conexao

Next

If palavrachave.EOF Then
response.write "Não foi encontrado nenhum alerta para esta PALAVRA-CHAVE"

Else

while Not palavrachave.EOF
%>

<%
strNome = palavrachave("nome")
strEmail = palavrachave("email")
        
response.write strEmail &"<br><br><br>"           
%>      

<%
palavrachave.MoveNext
wend 
End If

palavrachave.Close
Set palavrachave = Nothing
%>

PERCEBI QUE A CONSULTA SÓ É FEITA NA PALAVRA "palmeiras" e por isso não acha registro nenhum,

sendo que a consulta teria que ser nas duas palavras... flamengo, palmeiras.

E agora? Alguém sabe uma solução??? Por favorrr!!!!!!

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

<%
strpalavrachave = "flamengo, palmeiras"
MyArray = Split(strpalavrachave, ",")
%>
<%
For I = LBound(MyArray) to Ubound(MyArray)

Set palavrachave = Server.CreateObject("ADODB.Recordset")
palavrachave.Open "SELECT * FROM 1ALERTA WHERE palavrachave LIKE '%" & LCase(Trim(MyArray (I))) & "%' ", Conexao



If palavrachave.EOF Then
response.write "Não foi encontrado nenhum alerta para esta PALAVRA-CHAVE"

Else

while Not palavrachave.EOF
%>

<%
strNome = palavrachave("nome")
strEmail = palavrachave("email")

response.write strEmail &"<br><br><br>"           
%>      

<%
palavrachave.MoveNext
wend 
End If

palavrachave.Close
Set palavrachave = Nothing

Next
%>

da uma testada ai..

Link para o comentário
Compartilhar em outros sites

  • 0
<%
strpalavrachave = "flamengo, palmeiras"
MyArray = Split(strpalavrachave, ",")
%>
<%
For I = LBound(MyArray) to Ubound(MyArray)

Set palavrachave = Server.CreateObject("ADODB.Recordset")
palavrachave.Open "SELECT * FROM 1ALERTA WHERE palavrachave LIKE '%" & LCase(Trim(MyArray (I))) & "%' ", Conexao



If palavrachave.EOF Then
response.write "Não foi encontrado nenhum alerta para esta PALAVRA-CHAVE"

Else

while Not palavrachave.EOF
%>

<%
strNome = palavrachave("nome")
strEmail = palavrachave("email")

response.write strEmail &"<br><br><br>"           
%>      

<%
palavrachave.MoveNext
wend 
End If

palavrachave.Close
Set palavrachave = Nothing

Next
%>

da uma testada ai..

Bareta,

Veja bem.. desta forma funcionou... mas ao mesmo tempo não funcionou.. entendeu?rs

Acontece que ele percorre todos os registros... se achou algum palavra.. ele imprime, se não

achou.. ele imprime também(não foi encontrado...etc), e se um registro tiver as duas palavras.. ele imprime na tela este registro 2 vezes.

E agora????

Para corrigir o problema da repetição dos registros, tentei o distinct mas não deu certo.

E para fazer com que ele não imprima (não foi encontrado..etc) que são os registros que

não tem a palavrachave, eu não dei conta.

Obs.:Preciso dpois disso colocar um CDO para envio d email, para os registros que tenham a palavrachave.

Valeu ai por enquanto!

Editado por Tite
Link para o comentário
Compartilhar em outros sites

  • 0

Para não repetir o registro:

<%
strpalavrachave = "flamengo, palmeiras"
MyArray = Split(strpalavrachave, ",")

palavras = 0
For I = LBound(MyArray) to Ubound(MyArray)
    if palavras = 0 then
        sql = "SELECT * FROM 1ALERTA WHERE palavrachave LIKE '%" & LCase(Trim(MyArray (I))) & "%' "
    else
        sql = sql & " or palavrachave LIKE '%" & LCase(Trim(MyArray (I))) & "%' "
    end if
    palavras = palavras + 1
next

Set palavrachave = Server.CreateObject("ADODB.Recordset")
palavrachave.Open sql, Conexao

If palavrachave.EOF Then
    response.write "Não foi encontrado nenhum alerta para esta PALAVRA-CHAVE"
Else

    while Not palavrachave.EOF
        strNome = palavrachave("nome")
        strEmail = palavrachave("email")
        response.write strEmail &"<br><br><br>"
        palavrachave.MoveNext
    wend
End If

palavrachave.Close
Set palavrachave = Nothing
%>

Link para o comentário
Compartilhar em outros sites

  • 0
Para não repetir o registro:

<%
strpalavrachave = "flamengo, palmeiras"
MyArray = Split(strpalavrachave, ",")

palavras = 0
For I = LBound(MyArray) to Ubound(MyArray)
    if palavras = 0 then
        sql = "SELECT * FROM 1ALERTA WHERE palavrachave LIKE '%" & LCase(Trim(MyArray (I))) & "%' "
    else
        sql = sql & " or palavrachave LIKE '%" & LCase(Trim(MyArray (I))) & "%' "
    end if
    palavras = palavras + 1
next

Set palavrachave = Server.CreateObject("ADODB.Recordset")
palavrachave.Open sql, Conexao

If palavrachave.EOF Then
    response.write "Não foi encontrado nenhum alerta para esta PALAVRA-CHAVE"
Else

    while Not palavrachave.EOF
        strNome = palavrachave("nome")
        strEmail = palavrachave("email")
        response.write strEmail &"<br><br><br>"
        palavrachave.MoveNext
    wend
End If

palavrachave.Close
Set palavrachave = Nothing
%>

Cara não to acreditando, é bom d+ pra ser verdade... até então

FUNCIONOU PERFEITO!!!!!!!!!!!!!!!!!!!!

Só me tira uma dúvida... se eu inserir dentro do WHILE um codigo

CDO para envio d email.. vai dar certo? ele vai enviar um email

para cada registro listado?

Valeu d+ heim...

brigadão

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,1k
    • Posts
      651,9k
×
×
  • Criar Novo...