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

Busca Por Mais De Um Valor


Guest Ricardo Nepomuceno

Pergunta

Guest Ricardo Nepomuceno

Olá Pessoal,

é o seguinte , eu fiz tipo um portal de noticias de esportes e preciso fazer uma busca de um valor do banco que está assim 3,4

Ex:

eu faço a busca atraves do time

então eu tenho

Corinthians noticias_futebol.asp?id_time=1

Santos noticias_futebol.asp?id_time=2

Palmeiras noticias_futebol.asp?id_time=3

São Paulo noticias_futebol.asp?id_time=4

na página noticias_futebol.asp eu pego o resultado da seguinte forma

vvid = request.querystring("id_time")

vid = split(vvid,",")

for x = 0 to UBound(vid)

strsql="select * from noticias_futebol where id_time='"& vid(x) &"' order by id desc"

set rs = conexao.execute(strsql)

<%while not rs.eof%>

<%=rs("data")%><%=rs("titulo")%>

<%

rs.movenext

wend

%>

<%next%>

porém ele não me traz as noticias que tenham 3,4 mas sim somente a que passei nos parametros , sei que estou fazendo algo de errado , mas não consegui encontrar

agradeço desde já pela ajuda

atenciosamente

Ricardo Nepomuceno

Link para o comentário
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

  • 0

O problema é que você quer a notícia "3" e a notícia "4" e não "3,4"!!!!

Deu pra entender a lógica? Esqueçe esse Split aê...

strsql="select * from noticias_futebol where id_time='"& vvid &"' order by id desc"
set rs = conexao.execute(strsql)
Se quiser notícia de mais de 1 ao mesmo tempo:
strsql="select * from noticias_futebol where id_time='"& vvid &"' OR id_time='"& vvid2 &"' order by id desc"
set rs = conexao.execute(strsql)

aí você vai ter que criar a variável vvid2

Tah bom?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Ricardo Nepomuceno

é isso mesmo , fui eu que não consegui me expressar direito .

é o seguinte

como eu poderia fazer o seguinte

quando eu cadastro uma noticia eu tenho os campos id,id_time,conteudo,titulo

o id_time são 1 para corinthians , 2 para o santos , 3 para o palmeiras e 4 para o são paulo .

o que eu não estou conseguindo fazer é exibir uma noticia que foi cadastrada para ser exibidas pelos 2 times

ex: vendas de ingressos para são paulo e palmeiras

eu quero que essa noticia seja visualizada tanto se eu clicar em palmeiras quando se eu cadastrar para são paulo

alguém poderia me passar uma logica legal

abraços

Ricardo

Link para o comentário
Compartilhar em outros sites

  • 0

Neste caso específico, você deveria ter criado uma tablea só para notícias. Cada notícia teria um "ID"

Este "ID" você vincularia para os times que desejasse.

Tipo corínthians tem notícia de "ID" 1

São Paulo tb, aí ficaria mais fácil. Tudo é planejamento antes de fazer.

Ou então poderia criar na notícia o campo "ASSUNTO" e fazer a busca por ela, já que teria o nome de ambos os times.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Daniel Nepomuceno

Cara dá uma olhada nesta query:

sql="delete * from mensagens where codigo in (" & request.form("deletarmsg") & ")"

isto te ajuda? no caso você usaria select, se você colocar sinal de igual ele vai ler 3,4 mas se usar este parametro in o sistema vai ler o 3 e depois o 4 e assim sucessivamente.

espero ter te ajudado

atenciosamente,

Daniel Nepomuceno.

Link para o comentário
Compartilhar em outros sites

  • 0

meu irmão faz isso:

strsql="select * from noticias_futebol where id_time LIKE '"% vvid %"' OR id_time LIKE '"% vvid2 %"' order by id desc"

set rs = conexao.execute(strsql)

o parâmetro LIKE procura no id_time, os campos que contêm a variável passada:

exemplo:

tem uma notícia do clube 1,2

clica na notícia do clube 1

e o LIKE procura no campo id_time os registros que contém no id_time um valor igual a 1; independente de conter 2, 3, 4, etc.

sacou, irmão?

qualquer coisa pode postar ai....

Link para o comentário
Compartilhar em outros sites

  • 0

Tem que fazer como eu disse... Cria o campo "ASSUNTO" que é texto na tabela de notícias e faz a busca utilizando o LIKE pelo no dos times. Aí dá certo:

ID1 = "Flamengo"
ID2 = "São Paulo"

ComandoSQL = "SELECT * FROM NOTICIAS WHERE ASSUNTO LIKE '%" + Replace(ID1, "'", "''") + "%' AND ASSUNTO LIKE '%" + Replace(ID2, "'", "''") + "%'"
Set bd = Conexao.Execute(ComandoSQL)

desta forma só vai buscar as notícias que contém as palavras "Flamengo" e "São Paulo"

Link para o comentário
Compartilhar em outros sites

  • 0

Você já usou LIKE alguma vez? O LIKE neste caso vai buscar por números por coincidência não por exatidão.

Se ele tiver um 11 ou 22 ou qualquer outra combinação, o sistema usando LIKE vai buscar primeiro o 1 ou 2, pois na busca, 11 contém 1, 1 contém 11 sacou?

Então LIKE não serve para este caso. Só com textos como eu sugeri.

É legal você querer ajudar, mas ajuda quando tiver pelo menos alguma certeza né?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Ricardo Nepomuceno

Olá pessoal

estou quase conseguindo veja só

sql="select id_time from noticias_futebol"

set rs = conexao.execute(sql)

while not rs.eof

id_time = trim(rs("id_time"))

rs.movenext

wend

sql1 = "select id,id_time,titulo,data from noticias_futebol where id_time = '"& id &"' or id_time like '%" & id_time & "%' order by id desc"

response.write sql1

set rs1 = conexao.execute(sql1)

o unico problema é que não está sendo feito um loop no primeiro while not rs.eof e também acho que este or na instrução sql não deve estar correto

quem puder ajudar eu agradeço

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Ricardo Nepomuceno

Olá Pessoal,

A principio eu consegui , mas encontrei outro problema

eu fiz assim:

id = request.querystring("id_time")

sql1 = "select id,id_time,titulo,data from noticias_futebol where id_time = '"& id &"' or id_time like '%" & id & "%' order by id desc"

response.write sql1

set rs1 = conexao.execute(sql1)

até ai beleza agora ele pega as noticias do jeito que eu queria , mas ai quando eu cadastrei mais times com o id 11,12,13,14 por exemplo ele pega as noticias de outros times por causa do like

veja

corinthians id_time 1

santos id_time 2

palmeiras id_time 3

são paulo id_time 4

são caetano id_time 11

guarani id_time 12

ponte preta id_time 13

guarulhos id_time 14

ai se eu cadastro uma noticia com id 11 referente ao são caetano , ele acaba aparecendo nas noticias do corinthians

**************************************************************

se eu cadastro uma noticia com id 12 referente ao guarani , ele acaba aparecendo nas noticias do santos e do corinthians

**************************************************************

se eu cadastro uma noticia com id 13 referente ao ponte preta , ele acaba aparecendo nas noticias do palmeiras e do corinthians

****************************************************************

se eu cadastro uma noticia com id 14 referente ao guarulhos , ele acaba aparecendo nas noticias do são paulo e do corinthians

alguém teria alguma outra dica para passar ?

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Eu não falei que isso ia acontecer? Vê lá em cima o que eu escrevi...

Quando você faz uma busca por número não vai usar o LIKE porque vai acontecer exatamente isso. Houve um problema de planejamento no seu projeto. Você vai ter que fazer alguma alteração em suas tabelas conforme eu descrevi lá em cima tb...

Esse problema eu já previa...

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, faz o seguinte:

.Cria um campo CODIGO autoincremental para cada notícia;

.Cria um campo para título;

.Cria um campo para UPLOAD de imagem e grava o nome do arquivo (Caso necessário);

.Cria um campo para a noticia toda;

.Cria um Campo para a pessoa, na qual redigiu a notícia;

Bom, ótimo..

Agora, jogue isso numa página html dentro de um formulário e mande gravar isso no BD.

na página lista.asp, você lista todas suas notícias, cada uma com o link, noticias.asp?codigo=<%=rs("CODIGO")%>

ai na pagina noticias.asp, quando aberta, você faz o seguinte:

codigo = Request.Querystring("codigo")

Sql = "Select * from Noticias Where CODIGO="&codigo&""

Set rs = conn.execute(Sql)

E pronto..

Entendeu +-? É assim que funciona...

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Ricardo Nepomuceno

isso já é feito

o problema é

eu tenho noticias gerais e tenha noticias por clubes (são paulo , palmeiras , corinthians , santos e etc)

quando eu clico no nome do clube tem que abrir as noticias referente aquele clube

se eu cadastro noticias para o são paulo e para o corinthians

deve aparecer nos 2 clubes e não em apenas 1

entendeu ?

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...