Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lezão

Relacionamento de tabelas

Recommended Posts

fiz esse code com base em sua tabela sem o uso do INNER JOIN,

olha.. não é por nada não, mas.. perceba que você está trabalhando com várias tabelas..

tem que usar join, como explicado no post #25..

 

Bom, última tentativa: postei aqui 1 tuto, passo a passo... veja se t ajuda:

http://forum.wmonline.com.br/topic/240317-pesquisa-avancada-em-asp-classico/

 

 

opss.. problema com link; corrigindo:

Pesquisa avançada em ASP clássico

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola XAN, boa noite!

fiz como pede seu post e ainda continua com o mesmo erro

na linha 7

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/public_html/colinaesporte/tabela/teste.asp, line 7

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz uma alteração no Post#40, chegou a testar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste a linha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Set lista1= banco.Execute("Select idClube FROM jogador WHERE idClube=" & lista2("idClube"))

Eu mudei o nome tabela para Clubes e IdTabela para IdClube

 

 

encontrei esse codigo será q serve pra funcionar

<%Call AbreBancoDim VarCategoriaDim VarSubCategoriaDim VarBuscaTextoDim VarActDim VarAct2Dim ProdutosDim CategoriaDim SubCategoriaDim VarPaginaDim TotaldePaginasDim IntI	VarCategoria = Request("Categoria")VarSubCategoria = Request.QueryString("SubCategoria")VarBuscaTexto = Request.Form("BuscaTexto")VarAct2 = Request.QueryString("Act2")Session("Endereco") = Request.ServerVariables("SCRIPT_NAME") &"?"& Request.ServerVariables("QUERY_STRING")VarAct = Request.QueryString("Act")If Request.QueryString("Pagina") = "" Then	VarPagina = 1	Else	VarPagina = Request.QueryString("Pagina")	Select case VarAct		Case "Anterior"			VarPagina = VarPagina - 1		Case "Proxima"			VarPagina = VarPagina + 1	End select	End IfSet Produtos = Server.CreateObject("ADODB.RecordSet")Produtos.CursorLocation = adUseClientProdutos.CursorType = adOpenStaticProdutos.CacheSize = TotalPorPaginaIf VarAct2 = "" and VarCategoria <> "" and VarSubCategoria = "" Then	Set Categoria = Banco.Execute("SELECT * FROM Categorias WHERE Cod LIKE '"& VarCategoria &"'")		Produtos.Open "SELECT * FROM Produtos WHERE CodCategoria LIKE '"&VarCategoria&"' And Estoque > 0 AND Status = On ORDER BY NomeProduto ASC", Banco, , , adCmdText	Elseif VarAct2 = "" and VarSubCategoria <> "" Then		Set Categoria = Banco.Execute("SELECT * FROM Categorias WHERE Cod LIKE '"& VarCategoria &"'")		Set SubCategoria = Banco.Execute("SELECT * FROM SubCategorias WHERE Cod LIKE '"& VarSubCategoria &"'")		Produtos.Open "SELECT * FROM Produtos WHERE CodCategoria LIKE '"& VarCategoria &"' And Estoque > 0 AND CodSubCategoria LIKE '"&VarSubCategoria&"' AND Status = On ORDER BY NomeProduto ASC", Banco, , , adCmdText	Elseif VarAct2 = "Busca" and VarCategoria = "0" and VarBuscaTexto <> "" Then	Produtos.Open "SELECT * FROM Produtos WHERE NomeProduto LIKE '%"& VarBuscaTexto &"%' OR Descricao LIKE '%"& VarBuscaTexto &"%' AND Status = On And Estoque > 0 ORDER BY NomeProduto ASC", Banco, , , adCmdTextElseif VarAct2 = "Busca" and VarBuscaTexto <> "" and VarCategoria <> "0" Then	Set Categoria = Banco.Execute("SELECT * FROM Categorias WHERE Cod LIKE '"& VarCategoria &"'")		Produtos.Open "SELECT * FROM Produtos WHERE CodCategoria LIKE '"& VarCategoria &"' AND Estoque > 0 AND NomeProduto LIKE '%"& VarBuscaTexto &"%' OR Descricao LIKE '"& VarBuscaTexto &"' AND Status = On ORDER BY NomeProduto ASC", Banco, , , adCmdTextElseif VarAct2 = "Busca" and VarBuscaTexto = "" Then	Produtos.Open "SELECT * FROM Produtos WHERE CodCategoria LIKE '"& VarCategoria &"' And Estoque > 0 AND NomeProduto LIKE '%"& VarBuscaTexto &"%' OR Descricao LIKE '"& VarBuscaTexto &"' AND Status = On ORDER BY NomeProduto ASC", Banco, , , adCmdTextElseIf VarAct2 = "" and VarCategoria = "" and VarSubCategoria = "" Then	Produtos.Open "SELECT * FROM Produtos Where Estoque > 0 ORDER BY Cod Desc", Banco, , , adCmdTextEnd If%>

Xan Kd vc pra me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa... e ai....

 

vc rodou o code ?!?!

<%
Call AbreBanco

Dim VarCategoria
Dim VarSubCategoria
Dim VarBuscaTexto
Dim VarAct
Dim VarAct2
Dim Produtos
Dim Categoria
Dim SubCategoria
Dim VarPagina
Dim TotaldePaginas
Dim IntI
	
VarCategoria = Request("Categoria")
VarSubCategoria = Request.QueryString("SubCategoria")
VarBuscaTexto = Request.Form("BuscaTexto")
VarAct2 = Request.QueryString("Act2")
Session("Endereco") = Request.ServerVariables("SCRIPT_NAME") &"?"& Request.ServerVariables("QUERY_STRING")

VarAct = Request.QueryString("Act")

If Request.QueryString("Pagina") = "" Then
	VarPagina = 1
	
Else

	VarPagina = Request.QueryString("Pagina")
	Select case VarAct
		Case "Anterior"
			VarPagina = VarPagina - 1
		Case "Proxima"
			VarPagina = VarPagina + 1
	End select
	
End If

Set Produtos = Server.CreateObject("ADODB.RecordSet")
Produtos.CursorLocation = adUseClient
Produtos.CursorType = adOpenStatic
Produtos.CacheSize = TotalPorPagina

If VarAct2 = "" and VarCategoria <> "" and VarSubCategoria = "" Then

	Set Categoria = Banco.Execute("SELECT * FROM Categorias WHERE Cod LIKE '"& VarCategoria &"'")
	
	Produtos.Open "SELECT * FROM Produtos WHERE CodCategoria LIKE '"&VarCategoria&"' And Estoque > 0 AND Status = On ORDER BY NomeProduto ASC", Banco, , , adCmdText
	
Elseif VarAct2 = "" and VarSubCategoria <> "" Then
	
	Set Categoria = Banco.Execute("SELECT * FROM Categorias WHERE Cod LIKE '"& VarCategoria &"'")
	
	Set SubCategoria = Banco.Execute("SELECT * FROM SubCategorias WHERE Cod LIKE '"& VarSubCategoria &"'")
	
	Produtos.Open "SELECT * FROM Produtos WHERE CodCategoria LIKE '"& VarCategoria &"' And Estoque > 0 AND CodSubCategoria LIKE '"&VarSubCategoria&"' AND Status = On ORDER BY NomeProduto ASC", Banco, , , adCmdText
	
Elseif VarAct2 = "Busca" and VarCategoria = "0" and VarBuscaTexto <> "" Then

	Produtos.Open "SELECT * FROM Produtos WHERE NomeProduto LIKE '%"& VarBuscaTexto &"%' OR Descricao LIKE '%"& VarBuscaTexto &"%' AND Status = On And Estoque > 0 ORDER BY NomeProduto ASC", Banco, , , adCmdText

Elseif VarAct2 = "Busca" and VarBuscaTexto <> "" and VarCategoria <> "0" Then

	Set Categoria = Banco.Execute("SELECT * FROM Categorias WHERE Cod LIKE '"& VarCategoria &"'")
	
	Produtos.Open "SELECT * FROM Produtos WHERE CodCategoria LIKE '"& VarCategoria &"' AND Estoque > 0 AND NomeProduto LIKE '%"& VarBuscaTexto &"%' OR Descricao LIKE '"& VarBuscaTexto &"' AND Status = On ORDER BY NomeProduto ASC", Banco, , , adCmdText

Elseif VarAct2 = "Busca" and VarBuscaTexto = "" Then

	Produtos.Open "SELECT * FROM Produtos WHERE CodCategoria LIKE '"& VarCategoria &"' And Estoque > 0 AND NomeProduto LIKE '%"& VarBuscaTexto &"%' OR Descricao LIKE '"& VarBuscaTexto &"' AND Status = On ORDER BY NomeProduto ASC", Banco, , , adCmdText

ElseIf VarAct2 = "" and VarCategoria = "" and VarSubCategoria = "" Then

	Produtos.Open "SELECT * FROM Produtos Where Estoque > 0 ORDER BY Cod Desc", Banco, , , adCmdText

End If

%>

qual o resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

naun rodou !


veja meu banco como esta

banco.png

 

e qnd eu clico em algum time da pagina tabela

http://www.shopcolina.com.br/public_html/colinaesporte/tabela/tabela.asp

entro em outra pagina (detalhes) e deveria aparecer o time PAZ-A tem dois jogadores murilo e guilherme, e acaba aparecendo todos os jogadores cadastrados

http://www.shopcolina.com.br/public_html/colinaesporte/tabela/novo.asp?Id=2

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste o resulta do response.write de sua concatenação da SQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

naun rodou !

veja meu banco como esta

banco.png

 

e qnd eu clico em algum time da pagina tabela

http://www.shopcolina.com.br/public_html/colinaesporte/tabela/tabela.asp

entro em outra pagina (detalhes) e deveria aparecer o time PAZ-A tem dois jogadores murilo e guilherme, e acaba aparecendo todos os jogadores cadastrados

http://www.shopcolina.com.br/public_html/colinaesporte/tabela/novo.asp?Id=2

Lezao esse relacionamento que a imagem mostra deve ser desfeito e feito com o inner join, acredito que vc nao vai conseguir exibir o relacionamento do access so as tabelas por si só.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o INNER JOIN, imagine duas tabelas categoria e produto, um relacionamento de um-para-muitos, pois uma categoria pode ter varios produtos, você ter um relacionamento, e terá que ter uma chave estrangeira na tabela categoria, tipo id_cat e este campo também na tabela produtos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

no seu caso seria um relacionamento de um-para-um, pois um clube pode ter apenas um jogador e vice-versa, diferente de categoria e produtos (um-para-muitos). Mas faz o INNER JOIN. Olha este exemplo de página de detalhes com Inner Join.


Categoria (Tabela)
id_cat - Numeração Automática
Categoria - Texto


Produto (Tabela)
id_prod - Numeração Automática
id_cat - Número (Campo Relacionado)
Produto - Texto



A página(menu) que envia os dados pra a minha página de detalhes esta assim:

<li><a href="categorias.asp?id_cat=<%=rsBuscaProdutos("id_cat")%>"><%=rsBuscaProdutos("categoria")%></a></li>


A página que recebe os dados esta da seguinte forma:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Dim idcat
Dim id_cat
Dim caminho
Dim conexao
id_cat = request.querystring("id_cat")
caminho = Server.MapPath("mc.mdb")
Set conexao = Server.CreateObject("ADODB.Connection")
conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&caminho&";"
'Selecionamos todos os Produtos da Tabela
Set rsBuscaProdutos = Server.CreateObject("ADODB.Recordset")
strBuscaProdutos = "SELECT * FROM Categoria where id_cat="&id_cat&";"
rsBuscaProdutos.open strBuscaProdutos, conexao, 3, 3
'Definimos o Numero de Paginas com a propriedade "PageSize" do objeto Recordset
rsBuscaProdutos.PageSize = 1
'Criamos as Validações
if rsBuscaProdutos.eof then
Mensagem = "Nenhum Registro Encontrado"
Response.End
else
'Definimos em qual pagina o visitante está
if Request.QueryString("pagina")="" then
intpagina = 1
else
if cint(Request.QueryString("pagina"))<1 then
intpagina = 1
else
if cint(Request.QueryString("pagina"))>rsBuscaProdutos.PageCount then
intpagina = rsBuscaProdutos.PageCount
else
intpagina = Request.QueryString("pagina")
end if
end if
end if
end if
%>
<%
Set rsProdutos = Server.CreateObject("ADODB.Recordset")
strProdutos = "SELECT categoria.categoria, categoria.id_cat, produto.produto, produto.id_prod, produto.valor, produto.foto,produto.descricao, produto.id_cat FROM categoria INNER JOIN produto ON categoria.id_cat = produto.id_cat WHERE produto.id_cat ="&id_cat
rsProdutos.open strProdutos, conexao, 3, 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só pelo o nome ele naun roda, se naun for CATEGORIA E PRODUTO ?

 

Naun pode ser CLUBE E JOGADORES....

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, seria a mesma lógica, apenas altere para seus campos e tabelas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.