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

Essa É Cabeluda!


Guest - Espártaco -

Pergunta

Guest - Espártaco -

Tenho uma pergunta bastante complicada

Fiz um catálogo eletrônico para as lojas da minha cidade com a seguinte característica:

O banco de dados possui 4 tabelas, com os nomes "departamentos", "lojas", "produtos" e "notas".

Na tabela DEPARTAMENTOS, tenho os campos "id" e "nome"

Na tabela LOJAS, tenho os campos os campos "id", "nome", "endereco", "departamento", "cliques" e "votos"

Na tabela PRODUTOS, tenho os campos "id", "preço", "imagem", "qtde" e "id_loja"

Na tabela NOTAS, tenho os campos "id" e "loja_id".

Pois bem o usuário escolhe um departamento e vai para a página lojas.asp?dep="o id do departamento"

Na página que exibe as lojas, clica para ver os produtos dessa loja e vai para a página produtos.asp?loja="o id da loja"

Primeira pergunta?

Como faço para insserir uma subfolha de dados na tabela DEPARTAMENTOS, ou seja, a tabela LOJAS, mas sem o campo "id_dep"???

pergunto a mesma coisa para a tabela LOJAS, pois quero pôr uma subfolha de dados que é a tabela PRODUTOS, mas sem o campo "id_loja"

O problema é que quando cadastro um produto para uma determinada loja, mesmo que o campo "id_loja" da tabela PRODUTOS seja igual ao campo "loj_id", os produtos que cadastrei são exibidos em todas as lojas

Exemplo: Se tenho a loja de informática e a de lingerir, e cadastro um computador na primeira e uma calcinha na segunda, ambas as lojas exibem os dois produtos.

Essa é bem complicada, espero que os programadores que virem essa questão, saibam me responder. Parece ser bem simples, mas estou com dificuldades por ser auto-didata e não saber o caminho das pedras.

Se algém não entendeu a pergunta, entre em contato pelo e-mail espartaco_vettorazzi@yahoo.com.br

Obrigado a todos.

Espártaco Vettorazzi

Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0
Guest - Espártaco -

Sim, eu quero relacionar o Departamento da tabela lojas com o ID da tabela Departamentos, e tb relacionar o loja da tabela produtos com o ID da tabela Lojas

Hehe, meio complicado de se entender...

Link para o comentário
Compartilhar em outros sites

  • 0
Sim, eu quero relacionar o Departamento da tabela lojas com o ID da tabela Departamentos, e tb relacionar o loja da tabela produtos com o ID da tabela Lojas

Hehe, meio complicado de se entender...

Sim, já que é isto, procure algo sobre INNER JOIN, no forum de ASP ou SQL para você aprendere a relacionar sua tabelas.

[]s

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Espartaco -

Desculpe a insistência...mas ainda tenho dúvidas

Como expliquei, ao cadastrar um produto na tabela PRODUTOS, o campo "loja"';e preenchido com o ID da loja, no entanto, o produto está sendo exibido em todas as lojas, mesmo que o ID se refira àpenas a uma

Exemplo

A loja id=144 é a Virtual Informática

A loja id=147 é a Virtual Automóveis

Se eu cadastro um Carro na loja virtual automóveis, ele aparece tanto na V. Automóveis quanto na V. Informática e em todas as outras, assim como qualquer produto que cadastro

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

E ae, bao?!

Pelo q eu entendi, o problema estah então na hora q faz a pesquisa no banco. Tente usar o seguinte codigo:

SELECT * FROM tabela_produtos WHERE id_loja="id_da_loja"

o resultado voce joga pra loja respectiva ao seu id

Creio q seja isso.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - eSPÁRTACO -

vÊ SE ISSO AJUDA

sad.gif

O nome do Banco de dados é db.mdb

As tabelas são: Departamentos, Lojas, Produtos e Notas

Dados das Tabelas

TABELA DEPARTAMENTOS

|ID | NOME |

TABELA LOJAS

|ID |NOME |ENDERECO |DEPARTAMENTO |CLIQUES |VOTOS

TABELA PRODUTOS

|ID |preço |IMAGEM |QTDE |ID_LOJA

TABELA NOTAS

|ID |LOJA_ID|

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - eSPÁRTACO -

e ESSE É O CÓDIGO NA PÁGINA ASP QUE RECEBE A VISITA VINDO DA LOJA.ASP?ID=111

<% AbreConexao

loja = request.querystring("loja")

regs = 20

pag = request.querystring("pagina")

If pag = "" Then

pag = 1

End If

Set rs = Createobject("ADODB.recordset")

set Rs.ActiveConnection = Conexao

rs.cursortype = 3

rs.pagesize = regs

Sql = "SELECT * FROM produtos,Lojas WHERE id = "& loja &" ORDER BY nome_prod"

rs.Open SQL

if rs.EOF then%>

<% else%>...........

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta o seguinte:

<%

Dim Conn

Set Conn = Server.CreateObject("ADODB.Connection")

Conn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("db.mdb")

SQL = "Select * FROM tabela_produtos WHERE id_loja='id_loja'"

set RS = Conn.execute(SQL)

%>

Esse codigo faz coneccao com o banco de dados e faz a pesquisa de todos os produtos que tenha o mesmo id_loja. Depois é so jogar o resultado na tela:

<%do while not rs.eof%>

            <tr>

              <%

  Dim n

  n = 0

  do while n < colNum and NOT rs.eof

  %>

<table width="200" border="0" cellspacing="0" cellpadding="0">

    <tr>

      <td width="67">Produto:</td>

      <td width="133"><%=RS("imagem")%></td>

    </tr>

    <tr>

      <td>preço:</td>

      <td><%=RS("preço")%></td>

    </tr>

    <tr>

      <td>Qtde:</td>

      <td><%=RS("qtde")%></td>

    </tr>

</table>

              <%RS.Movenext

  n = n + 1

  loop

  %>

            </tr>

            <%loop%>

Acho q funcionaria assim... Tenta ai qualquer coisa nois tenta outro jeito!

Link para o comentário
Compartilhar em outros sites

  • 0

Vou tentar essas dicas que me passaram, se não der certo amanhã volto inquietar vocês.

Obrigado pela disposição em ajudar e parabéns ao site pela grande e bem organizada estrutura....

Espártaco

Link para o comentário
Compartilhar em outros sites

  • 0

Não fumbecou....acho que o problema é a incompatilidade entre o ASP e EU...não nscemos um para o outro sad.gif

Alguns nomes de tabelas e campos são só para ilustrar, o meu tem muito mais campos nas tabelas, mas as mais importantes eu coloquei aki

Tabelas do BD

DEPARTAMENTOS (nessa tabela vão os departamentos, como farmácias, confecções, mercados...)

LOJAS (nessa tabela vão as lojas dentro de cada departamento)

PRODUTOS (nessa tabela vão os produtos dentro de cada loja)

NOTAS (nessa tabela vai as notas que o visitantes dão para a loja)

Seguem abaixo os campos das respectivas tabelas

Tabela DEPARTAMENTOS

| ID | NOMEID |

Tabela LOJAS

ID | NOME | ENDERECO | DEPARTAMENTO | DESCRICAO | CLIQUES | MEDIA | ADICIONADO |

Tabela PRODUTOS

| ID_PROD | NOME_PROD | IMAGEM_PROD | PRECO_PROD | ID_LOJA |

Tabela NOTAS

| ID_LOJA | NOTA |

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

A página das categorias já está pronta e cada link aponta para exibir_lojas.asp?cat=171 (no exmplo a categoria 171 é moda intima)

A página exibir_lojas.asp tem o código abaixo... (eu exclui o que não interessa)

<% AbreConexao

cat = request.querystring("cat")

If cat = "" Then

%>

<%Sql = "SELECT * FROM categorias ORDER BY nome asc"

Set rs = Conexao.Execute(Sql)

If rs.EOF Then %>

<font color="#FFFFFF" size="2">Nenhum departamento encontrado!</font>

<% Else

While not rs.EOF %>

<font size="2"><a href="exibir_lojas.asp?cat=<%=rs("id")%>"><%=rs("nome")%></a><BR>

<% rs.MoveNext

Wend

rs.close

End If

Set rs = nothing %>

<% else

regs = 15

pag = request.querystring("pagina")

If pag = "" Then

pag = 1

End If %>

<% Set rs = Createobject("ADODB.recordset")

set Rs.ActiveConnection = Conexao

rs.cursortype = 3

rs.pagesize = regs

Sql = "SELECT * FROM lojas WHERE departamento = "& cat &" ORDER BY nome"

rs.Open SQL

if rs.EOF then

prod = ("pagina_prod")%>

<% else

rs.Absolutepage = pag

contador = 0

Do While Not rs.EOF AND contador < rs.Pagesize

contador = contador +1 %>

Nome: <%=rs("nome")%>

Endereço: <%=rs("endereco")%>

Descrição: <%=rs("descricao")%>

Cliques: <%=rs("cliques")%>

Média: <%=rs("media")%>

Adicionado em: <%=rs("adicionado")%>

<a href="redir.asp?id=<%=rs("id")%>">Ver ofertas desta loja</a>

<% rs.MoveNext

Loop %>

<br><font size="2" face="Verdana">Página(s):

<% For i = 1 To rs.PageCount

If i = cint(pag) Then

Response.Write i

Else

cat=request.querystring("cat")

Response.Write "<a href='" & request.servervariables("script_name") & "?cat="&cat&"&pagina=" & i & "'>" & i & "</a> "

End If

Next

rs.close

FechaConexao

Set rs = nothing

end if

end if%>

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

AO CLICAR NO LINK "VER OFERTAS DESTA LOJA, VAI PARA A REDIR.ASP QUE COMPUTA O CLIQUE E REDIRECIONA PARA A LOJA EM QUESTÃO.

ESSE É O CÓDIGO DA REDIR.ASP

<% AbreConexao

id = request.querystring("id")

Sql1 = "SELECT * FROM LOJAS WHERE id =" & id & ""

Set rs = Server.CreateObject("ADODB.Recordset")

rs.Open SQL1, ConStr, 3, 3

cliquesa = rs("cliques")

cliquesb = "1"

x = cliquesa + cliquesb

Sql = "UPDATE LOJAS SET cliques = '" & x & "' WHERE id = " & id & " "

Conexao.Execute(Sql) %>

<meta http-equiv="refresh" content="0; URL=PRODUTOS.asp?loja=<%=rs("id")%>">

<% rs.close

FechaConexao

Set rs = nothing %>

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

NA PÁGINA PRODUTOS.ASP É QUE ESTÁ OCORRENDO O PROBLEMA.

QUANDO ADICIONO UM PRODUTO NA TABELA PRODUTOS, ELE É MOSTRADO EM TODAS AS LOJAS E NÃO SÓ NAQUELE QUE EU QUERIA QUE APARECESSE

POR EXEMPLO, SE COLOCO UM CARRO NA LOJA "VIRTUAL AUTOMÓVEIS"E UMA CALCINHA NA LOJA "VIRTUAL LINGERIE", OS DOIS PRODUTOS SÃO EXIBIDAS NAS DUAS LOJAS

SEGUE O CÓDIGO NA PÁGINA PRODUTOS.ASP....(ROMOVI O QUE NÃO É NECESSÁRIO PARA VC)

<% AbreConexao

loja = request.querystring("loja")

regs = 20

pag = request.querystring("pagina")

If pag = "" Then

pag = 1

End If

Set rs = Createobject("ADODB.recordset")

set Rs.ActiveConnection = Conexao

rs.cursortype = 3

rs.pagesize = regs

Sql = "SELECT * FROM PRODUTOS WHERE id = "& loja &" ORDER BY nome ASC"

rs.Open SQL

if rs.EOF then%>

<% else%>

.........

<%rs.Absolutepage = pag

contador = 0

Do While Not rs.EOF AND contador < rs.Pagesize

contador = contador +1 %>

PRODUTO: <%=rs("NOME_PROD")%>

IMAGEM: <%=rs("IMAGEM_PROD")%>

preço: <%=rs("PRECO_PROD")%>

<% rs.MoveNext

Loop %>

<font size="2" face="Verdana">Página(s):

<% For i = 1 To rs.PageCount

If i = cint(pag) Then

Response.Write i

Else

loja=request.querystring("loja")

Response.Write "<a href='" & request.servervariables("script_name") & "?loja="&loja&"&pagina=" & i & "'>" & i & "</a> "

End If

Next

rs.close

FechaConexao

Set rs = nothing

end if%>

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, eu tambem estou iniciando no ASP, mas pelo q eu percebi na pagina PRODUTOS.ASP é a pesquisa SQL q não tah filtrando os dados corretamente! O seu codigo esta assim:

Sql = "SELECT * FROM PRODUTOS WHERE id = "& loja &" ORDER BY nome ASC"

rs.Open SQL

Tenta isso:

SQL = "Select * FROM produtos WHERE ID=" &loja& "ORDER BY nome ASC"
[COLOR=red]set RS = CONEXAO.execute(SQL)[/COLOR]

Eu tenho um esquema parecido com o seu e tah funcionando dessa forma! Tenta ai!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...