Jump to content


Photo

2 Tabelas


  • Faça o login para participar
7 replies to this topic

#1 D-Style

D-Style

    12 Horas

  • Usuários
  • 133 posts
  • Sexo:Não informado

Posted 07/07/2004, 11:40

Olá!

Estou mais uma vez precisando da ajuda de vcs... Tipo, eu fiz um sisteminha de notícias, que é dividido por assuntos. O banco de dados tem 2 tabelas:

assuntos: assunto_id / assunto
textos: id / assuntoid / titulo / data / materia / autor / fonte / imagem

Só que quando vai exibir todas as notícias, ele não está exibindo os nomes dos assuntos respectivos à noticia.

Está exibindo assim:
Cotidiano - titulo 1
Cotidiano - titulo 2
Cotidiano - titulo 3
...

Era pra exibir assim:
Cotidiano - titulo 1
Esportes - titulo 2
Politica - titulo 3

Os links estão todos corretos, inclusive no assunto, que tem um link pra filtrar apenas as noticias referentes ao mesmo...

O código está assim:
<%
dim dataregistro
dsn = "Driver={Microsoft Access Driver (*.mdb)};DBQ= " & Server.MapPath("textos.mdb")
sql1 = "SELECT * FROM textos order by data desc, assuntoid, id"
sql2 = "SELECT * FROM assuntos,textos where assuntos.assunto_id = textos.assuntoid"
set conexao = createobject("adodb.connection")
conexao.open dsn
set rs1 = conexao.execute(sql1)
set rs2 = conexao.execute(sql2)
do while not rs1.eof

	data = rs1("data")
	assuntoid = rs2("assunto_id")
	assuntoid = rs1("assuntoid")
	id = rs1("ID")
	titulo = rs1("titulo")
	link = ""& titulo &"</a>"
	assunto = rs2("assunto")
	link2 = "["& assuntoid &"]</a>"
    
if dataregistro <> data then
dataregistro = data
response.write "<table width='100%' border='0' cellpadding='0' cellspacing='0'><tr><td height='20' background='../imagens/fundotopicos.gif' align='center'><b><font class='festa'>" & rs1("data") & "</font></b></td></tr></table>"
response.write "<table width='100%' border='0' cellpadding='0' cellspacing='5'><tr><td height='20' align='left'><a class='festa' href='index.asp?acao=filtrar&assuntoid=" & assuntoid & "' target='_parent'>[" & rs2("assunto") & "]</a> <a class='linker' href='ver.asp?id=" & id & "'>&nbsp;" & rs1("titulo") & "</a></td></tr></table>"
else
response.write "<table width='100%' border='0' cellpadding='0' cellspacing='5'><tr><td height='20' align='left'><a class='festa' href='index.asp?acao=filtrar&assuntoid=" & assuntoid & "' target='_parent'>[" & rs2("assunto") & "]</a> <a class='linker' href='ver.asp?id=" & id & "'>&nbsp;" & rs1("titulo") & "</a></td></tr></table>"
end if
rs1.movenext

loop
%>
O que eu devo fazer?

Abraços!

#2 Info_Tec

Info_Tec

    Servo do DEUS VIVO!

  • Usuários
  • 398 posts
  • Sexo:Não informado
  • Localidade:Entre a cadeira e o teclado
  • Interesses:Jesus, minha esposa e filha.<br>ASP, Lógica de programação, Projeto de Estradas, $$$ que tô precisando!

Posted 07/07/2004, 12:26

Olha como vc usou a SQL unindo as tabelas não entendi o porque de ter 2 RecordSets. 1 Para escrever o Assunto (que pode ser requisitado direto do outro RS) e o outro para o Texto?
A cada minuto está mais perto.
Aceite JESUS como seu único e suficiente salvador!
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
Fórum HOSANAS, venha conversar e se engrandecer com a palavra de DEUS.
Host: ASPECTO, Hospedagem ASP com qualidade e bom preço.

#3 D-Style

D-Style

    12 Horas

  • Usuários
  • 133 posts
  • Sexo:Não informado

Posted 14/07/2004, 11:24

Na verdade, eu tentei fazer sem unir as duas tabelas, mas também não deu em nada... Eu pensei que unindo e colocando 2 recordsets iria forçar a selecionar as notícias respectivas ao assunto, só que ele acaba misturando tudo...

Alguém pode ajudar?

#4 Info_Tec

Info_Tec

    Servo do DEUS VIVO!

  • Usuários
  • 398 posts
  • Sexo:Não informado
  • Localidade:Entre a cadeira e o teclado
  • Interesses:Jesus, minha esposa e filha.<br>ASP, Lógica de programação, Projeto de Estradas, $$$ que tô precisando!

Posted 14/07/2004, 13:09

Poste o código de seu ultimo teste, e o erro que dá.
A cada minuto está mais perto.
Aceite JESUS como seu único e suficiente salvador!
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
Fórum HOSANAS, venha conversar e se engrandecer com a palavra de DEUS.
Host: ASPECTO, Hospedagem ASP com qualidade e bom preço.

#5 D-Style

D-Style

    12 Horas

  • Usuários
  • 133 posts
  • Sexo:Não informado

Posted 14/07/2004, 18:36

O código atual está assim:
<%
dim dataregistro
dsn = "Driver={Microsoft Access Driver (*.mdb)};DBQ= " & Server.MapPath("textos.mdb")
sql1 = "SELECT * FROM textos order by data desc, assuntoid, id"
sql2 = "SELECT * FROM assuntos,textos where assuntos.assunto_id = textos.assuntoid"
set conexao = createobject("adodb.connection")
conexao.open dsn
set rs1 = conexao.execute(sql1)
set rs2 = conexao.execute(sql2)
do while not rs1.eof

data = rs1("data")
assuntoid = rs2("assunto_id")
assuntoid = rs1("assuntoid")
id = rs1("ID")
titulo = rs1("titulo")
link = ""& titulo &"</a>"
assunto = rs2("assunto")
link2 = "["& assuntoid &"]</a>"
   
if dataregistro <> data then
dataregistro = data
response.write "<table width='100%' border='0' cellpadding='0' cellspacing='0'><tr><td height='20' background='../imagens/fundotopicos.gif' align='center'><b><font class='festa'>" & rs1("data") & "</font></b></td></tr></table>"
response.write "<table width='100%' border='0' cellpadding='0' cellspacing='5'><tr><td height='20' align='left'><a class='festa' href='index.asp?acao=filtrar&assuntoid=" & assuntoid & "' target='_parent'>[" & rs2("assunto") & "]</a> <a class='linker' href='ver.asp?id=" & id & "'>&nbsp;" & rs1("titulo") & "</a></td></tr></table>"
else
response.write "<table width='100%' border='0' cellpadding='0' cellspacing='5'><tr><td height='20' align='left'><a class='festa' href='index.asp?acao=filtrar&assuntoid=" & assuntoid & "' target='_parent'>[" & rs2("assunto") & "]</a> <a class='linker' href='ver.asp?id=" & id & "'>&nbsp;" & rs1("titulo") & "</a></td></tr></table>"
end if
rs1.movenext

loop
%>
Na verdade não dá erro... Ele apenas não associa o assunto à notícia... Vou explicar como está as tabelas...

tabela assuntos:
- assunto_id
- assunto_nome

tabela textos:
- id
- autor
- email
- assuntoid
- titulo
- fonte
- data
- materia
- foto

Era pra sair assim, por exemplo:

esportes - corinthians vence mais uma
esportes - brasil joga pra cumprir tabela
política - lula compra mais um avião
festas - asa de águia confirma volta às micaretas
festas - rock in rio lisboa foi um sucesso, afirma promoter

Dessa forma, seria o correto, pois a notícia está associada ao seu respectivo assunto... Mas está aparecendo assim:

esportes - corinthians vence mais uma
esportes - brasil joga pra cumprir tabela
esportes - lula compra mais um avião
esportes - asa de águia confirma volta às micaretas
esportes - rock in rio lisboa foi um sucesso, afirma promoter

Ou seja. além de não fazer a associação correta de assuntos, ele está puxando apenas o primeiro assunto da tabela e jogando em todas as notícias...

Deu pra entender? Acho q agora ficou mais fácil... Qualquer coisa, eu tento explicar melhor...

Abraços!

#6 Info_Tec

Info_Tec

    Servo do DEUS VIVO!

  • Usuários
  • 398 posts
  • Sexo:Não informado
  • Localidade:Entre a cadeira e o teclado
  • Interesses:Jesus, minha esposa e filha.<br>ASP, Lógica de programação, Projeto de Estradas, $$$ que tô precisando!

Posted 14/07/2004, 19:14

Olha fiz umas pequenas alterações aqui
<%

dim dataregistro

dsn = "Driver={Microsoft Access Driver (*.mdb)};DBQ= " & Server.MapPath("textos.mdb")

set conexao = createobject("adodb.connection")

conexao.open dsn



sql = "SELECT Assuntos.*, Textos.* FROM assuntos,textos where assuntos.assunto_id = textos.assuntoid order by Textos.data desc, Textos.assuntoid;"

set rs = conexao.execute(sql)



do while not rs.eof



	data = rs("data")

'	assuntoid = rs2("assunto_id")

	assuntoid = rs("assuntoid")

	id = rs("ID")

	titulo = rs("titulo")

'	link = ""& titulo &"</a>"

	assunto = rs2("assunto")

'	link2 = "["& assuntoid &"]</a>"

   

	if dataregistro <> data then

  dataregistro = data

  response.write "<table width='100%' border='0' cellpadding='0' cellspacing='0'><tr><td height='20' background='../imagens/fundotopicos.gif' align='center'><b><font class='festa'>"& data &"</font></b></td></tr></table>"

  response.write "<table width='100%' border='0' cellpadding='0' cellspacing='5'><tr><td height='20' align='left'><a class='festa' href='index.asp?acao=filtrar&assuntoid="& assuntoid &"' target='_parent'>["& Assunto &"]</a> <a class='linker' href='ver.asp?id="& id &"'>&nbsp;"& titulo &"</a></td></tr></table>"

	else

  response.write "<table width='100%' border='0' cellpadding='0' cellspacing='5'><tr><td height='20' align='left'><a class='festa' href='index.asp?acao=filtrar&assuntoid="& assuntoid &"' target='_parent'>["& Assunto &"]</a> <a class='linker' href='ver.asp?id="& id &"'>&nbsp;"& titulo &"</a></td></tr></table>"

	end if

	rs.movenext

loop

%>
Testa e retorne informando, OK?
A cada minuto está mais perto.
Aceite JESUS como seu único e suficiente salvador!
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
Fórum HOSANAS, venha conversar e se engrandecer com a palavra de DEUS.
Host: ASPECTO, Hospedagem ASP com qualidade e bom preço.

#7 D-Style

D-Style

    12 Horas

  • Usuários
  • 133 posts
  • Sexo:Não informado

Posted 14/07/2004, 21:07

Caro, testei suas alterações no código, mas deu erro:

Tipo de erro:
Erro de tempo de execução do Microsoft VBScript (0x800A000D)
Tipos incompatíveis: 'rs2'
/noticias/index2.asp, line 49

A linha 49 é a seguinte:

assunto = rs2("assunto")


E agora?

Abraços!

#8 D-Style

D-Style

    12 Horas

  • Usuários
  • 133 posts
  • Sexo:Não informado

Posted 14/07/2004, 21:13

Caro, testei suas alterações no código, mas deu erro:

Tipo de erro:
Erro de tempo de execução do Microsoft VBScript (0x800A000D)
Tipos incompatíveis: 'rs2'
/noticias/index2.asp, line 49

A linha 49 é a seguinte:

assunto = rs2("assunto")


E agora?

Abraços!

Ae Info_Tec,

Vc só tinha esquecido de alterar essa linha para RS, no lugar de RS2, como estava antes... Eu fiz isso e agora funcionou!

MUITO OBRIGADO PELA FORÇA!!!

Abraços!




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq