Ir para conteúdo

POWERED BY:

Arquivado

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

mkboy

Incluir produto... o que fazer....?

Recommended Posts

Estou fazendo um catalogo dinâmico, e preciso de algumas dicas.

 

Essa é a home do catalogo: http://www.pescaki.com.br/kreative/

 

Esta é a área de admin: http://www.pescaki.com.br/kreative/painel.asp

 

 

Exemplo:

 

Eu quero criar uma categoria nova no site, por exemplo INFORMATICA:

- Clico em categorias, e em inserir categoria.

 

Essa informação eu salvei no banco que tem a tabela "categoria" que tem dois campos: "id" e "categoria"

 

Quando eu faço o insert eu adiciono um id autonumeração e a palavra que digitei no campo.

 

Essa categoria eu listo no menu do site assim: <a href="produtos.asp?id=<%=RS("ID")%>"><%=rs("categoria")%></a>

 

Agora a dúvida.

 

Eu quero inserir um produto na categoria criada.

O que faço? Crio outra tabela para cadastrar esse produto?

 

E como farei para saber que o produto cadastrado na outra tabela é de determinada categoria?

 

Qual a estrutura da tabela para esse item?

 

 

(ACESS)

 

 

Meu banco:

 

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, se eu entendi direito, basta que na sua tabela produto conste um campo IDCATEGORIA, numérico (além dos campos referentes ao produto, é claro) .Ao fazer a inclusão do produto, você insere o ID da categoria selecionada.Qualquer dúvida, estou à disposição.Um abraço, Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria viável você criar uma nova tabela que teria todos os produtos. Por um motivo.A visualização, atualização, deletação e inserção de novas categorias seria bem mais fácil.Eu aconselho criar uma nova tabela. Agora em ecônomia de tabelas, caso seu banco de dados fique um pouco pesado, não seria legal ficar colocando várias tabelas.Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o produto tiver apenas uma categoria crie uma tabela PRODUTOS, mas se os produtos tiverem mais de uma categoria (relacionamento muitos pra muitos), aí a melhor maneira é: além de cria a tabela produto cria outra tabela index com os campos IDCategoria e IDPrduto, ou seja, ela servirá de referência entre os produtos e as categorias.

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, e se eu criar outra tabela, como faço para ligar o ID da tabela produtos com o ID da tabela categorias para listar o mesmo nas respectivas páginas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja um exemplo:

 

TABELA PRODUTO

IDProduto

Nome

.

.

.

IDCategoria

 

TABELA CATEGORIA

IDCategoria

Nome

.

.

.

 

Perceba que na tabela PRODUTO você tem um campo chamado IDCategoria, que nada mais é do que o IDCategoria da tabela categoria. Desta forma você montou seu relacionamento.

 

Um abraço,

Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, e se eu criar outra tabela, como faço para ligar o ID da tabela produtos com o ID da tabela categorias para listar o mesmo nas respectivas páginas?

Simples: :) TabelaCategoria:IdCategoriaNomeCategoriaTabelaProdutoIdProdutoNomeProdutoTabelaIndexIdCategoriaIdProduto ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não esquecendo também de fazer o relacionamento no banco de dados, e propagar Atualização e Exclusão de registros.Pelo que entendi, no seu caso só é necessario criar uma nova tabela PRODUTOS, que terá os campos ID_Produto, ID_Categoria, Nome_Produto.Como você tem uma "lista de categorias" (sua tabela de categorias), é só você fazer uma referencia na tabela de produtos pelo ID da categoria. O resto é código. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tinha feiro o banco e um form para cadastrar produtos.

Consegui cadastrar os produtos legal, agora vou seguir as dicas acima e vou reestruturar o banco....

 

veja como estava até o momento

 

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, quase isso, mas no campo COD_CAT da tabela de produtos, em vez de coloca o nome do produto, coloca o ID dele. É mais aconselhavel... ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz isso:

 

 

    <select size="1" name="combo_cat" class="form">

      <option>Selecione a Categoria</option>

      <%sql = "select categoria from categoria"

        set rs = conexao.execute(sql)

        rs.MoveFirst

        do while not rs.eof

      %>

      <option value="<%=rs("id")%>"><%=rs("categoria")%></option>

      <%

rs.movenext

loop

      %>

      </select>

DEU ESSE ERRO

 

Tipo de erro:

ADODB.Recordset (0x800A0CC1)

Item cannot be found in the collection corresponding to the requested name or ordinal.

/brindes/i_produtos.asp, line 63

:unsure:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim acho que funciona...

 

<select size="1" name="combo_cat" class="form">      <option>Selecione a Categoria</option>      <%sql = "select * from categoria"        set rs = conexao.execute(sql)        rs.MoveFirst        do while not rs.eof      %>      <option value="<%=rs("id")%>"><%=rs("categoria")%></option>      <%rs.movenextloop      %>      </select>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que aconteceu, é que no seu SELECT você selecionou somente o campo CATEGORIA, mas quis mostrar também o campo ID.O Select do WLJ Ta certinho, arruma ai! ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Arrumei o select, obrigado!

 

:rolleyes:

 

hehe, enrroladão de tudo.

 

Seguinte, o banco está assim: (Eu fiz a inclusão dos itens por formulário)

 

Imagem Postada

 

Agora no menu de meu site, eu tenho os links, que são responses da tabela categoria.

 

O link eu fiz isso:

<a href="produtos.asp?id=<%=RS("ID")%>"><%=rs("categoria")%></a>

E na página produtos.asp estou a fazer isso:

 

<%

url_conexao = Server.MapPath("geral.mdb")

set conexao = Server.CreateObject("ADODB.Connection")

conexao.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&url_conexao

 

sql = "select categoria from categoria WHERE id=" & request.QueryString("id")

set rs = conexao.execute(sql)

%>

 

 

<%

do while not rs.eof

%>

 

 

<%=rs("categoria")%><br>

 

 

<%

rs.movenext

loop

%>

Ou seja, estou apenas imprimindo a categoria na tela.

 

Gostaria de saber neste caso, como fazer para imprimir os dados que estão na tabela produtos?

 

Acho que vcs ja falaram, mas verdade, não entendi!

 

O que devo fazer?

 

Vejam o como está até o momento: http://www.pescaki.com.br/kreative/index.asp

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá mkboy!

 

Tente o seguinte:

 

1° Relação de Tabelas

TABELA CATEGORIACampos:ID = AutoNumericoNome = TextTABELA PRODUTOSCampos:ID = AutoNumericoNome = TextID_Categoria = NumericoComo código acima, você já tem no BD, os campos necessários para a associação![B]2° Inclusão de Produtos e Categorias[/B]INCLUSÃO DE PRODUTOS:<%nome = Request.Form("nome")categoria = Request.Form("categoria")sql = "Insert into produtos (nome, categoria) values ('"&nome&"', '"&categoria&"')"%>
Com isso, supondo que em CATEGORIA, você tenha a ID da categoria, você fará uma espécie de "link" que vai dizer: "este produto pertence à categoria tal"

 

3° Seleção de Produtos de acordo com a categoria

sql = "Select * from produtos where id_categoria='"&categoria&"'"

 

Na verdade, você está quase no caminho...

acontece que você tem que ter uma ID da categoria, para usar como referencia do produto.

 

Por exemplo:

 

PRODUTO A pertence à categoria 1

PRODUTO B pertence à categoria 1

PRODUTO C pertence à categoria 4

 

Então, no campo "id_categoria" do PRODUTO A e PRODUTO B, terá o número da categoria a qual eles pertencem, que no caso é 1. E no PRODUTO C, terá o número 4 em "id_categoria"

 

Assim, quando você quiser buscar algo no BD, de acordo com a categoria, basta você fazer um select do tipo "Select * from tabela where categoria=categoria", ou seja, você buscará apenas aqueles produtos, que terão a categoria que você selecionou...

 

No exemplo, buscando os produtos da categoria 1, você encontraria o PRODUTO A e PRODUTO B.

 

Bom... tentei explicar de forma "detalhada"... espero ter ajudado!

 

[]'s

eLoC

Compartilhar este post


Link para o post
Compartilhar em outros sites

Arrumei o select, obrigado!

 

:rolleyes:

 

hehe, enrroladão de tudo.

 

Seguinte, o banco está assim: (Eu fiz a inclusão dos itens por formulário)

 

Imagem Postada

 

Agora no menu de meu site, eu tenho os links, que são responses da tabela categoria.

 

O link eu fiz isso:

 

<a href="produtos.asp?id=<%=RS("ID")%>"><%=rs("categoria")%></a>

E na página produtos.asp estou a fazer isso:

 

<%

url_conexao = Server.MapPath("geral.mdb")

set conexao = Server.CreateObject("ADODB.Connection")

conexao.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&url_conexao

 

sql = "select categoria from categoria WHERE id=" & request.QueryString("id")

set rs = conexao.execute(sql)

%>

 

 

<%

do while not rs.eof

%>

 

 

<%=rs("categoria")%><br>

 

 

<%

rs.movenext

loop

%>

Ou seja, estou apenas imprimindo a categoria na tela.

 

Gostaria de saber neste caso, como fazer para imprimir os dados que estão na tabela produtos?

 

Acho que vcs ja falaram, mas verdade, não entendi!

 

O que devo fazer?

 

Vejam o como está até o momento: http://www.pescaki.com.br/kreative/index.asp

Nosso amigo eLoC explicou bem... é esse o caminho!

 

Mas pequeno detalhe: um produto terá apenas uma categoria! Se o produto precisar ter mais que uma categoria a estrutura é outra ok?!

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.