BANCO DE DADOS ACCESS

DINEY 09/03/2012 14:55:55
#396816
Boa tarde!

Estou começando a desenvolver um site para loja de roupas e estou com uma dúvida com relação ao Banco de Dados,
Vou usar o Access mesmo, mas na criação das Tabelas é que estou tendo um pouco de dificuldade ex:

A loja vende roupas, e uma Calça do mesmo Modelo tem vários Tamanhos e cada Tamanho tem um preço.

Quando eu der um Loop para preencher os Produtos não pode aparecer todas as Calças e sim apenas um modelo de cada
e ao lado os tamanhos, e ao clicar no tamanho o sistema busca o Produto.

Como seria estas tabelas????

Não sei se fui claro

Claudiney
www.cassystems.com.br
FLIMA 09/03/2012 15:19:48
#396818
Diney, você tem que usar 2 tableas. Uma para os produtos (PRODUCT_ID, PRODUCT_NAME, PRODUCT_SIZE) e outra para o estoque (PRODUCT_ID, PRODUCT_QTY, LOCATION), por exemplo.

[Ô]não pode aparecer todas as Calças e sim apenas um modelo de cada[Ô] >> Então você vai ter que filtrar por PRODUCT_NAME.
Por exemplo: WHERE PRODUCT_NAME = [ô]calça jeans[ô]

[Ô]ao clicar no tamanho o sistema busca o Produto[Ô] >> Clicando no produto você já terá o PRODUCT_ID, aí é só buscar na tabela estoque para saber quantos tem.

Boa sorte e, qualquer problema, poste a dúvida novamente.

Flima.
USUARIO.EXCLUIDOS 09/03/2012 16:30:46
#396825
isso vc poderia , resolver com indice composto . ou mais facil no T-SQL ,
nao recomendaria loop, se vc for fazer usando 1 tabela

vamos dizer que vc tem um Form html , com campos que ira filtrar , e nele vc executa metodo Post .

o arquivo ASP que ira processar poderia fazer essa consulta assim

Citação:

vTipo = request.form([Ô]Tipo[Ô])
vTamanho = request.form([Ô]Tamanho [Ô])
vModelo = request.form([Ô]Modelo[Ô])

sql = [Ô]SELECT * FROM Produtos WHERE Tipo like [ô]%[Ô] & vTipo & [Ô]%[ô] and Tamanho like [ô]%[Ô] & vTamanho & [Ô]%[ô] and Modelo like [ô]%[Ô] & vModelo & [Ô]%[ô] order by Modelo, Tamanho desc[Ô]

Set rs = Server.CreateObject([Ô]ADODB.Recordset[Ô])
rs.Open sql, Conn, 3, 3



na questao do Loop . use ele somente pra fazer a questao de paginacao ... que será o restante do codigo
assim se tiver 30 registros ...... vc pagina ele de 10 em 10 .... fica melhor
DINEY 09/03/2012 17:15:09
#396827
Pessoal, valeu pela dica mas não é só isso acho que não expliquei bem.

A loja vende uniformes escolares, e ao selecionar uma [Ô]Escola[Ô] quero que preencha todos os [Ô]Modelos de uniformes[Ô] que esta escola possui: camiseta, calça, short, blusa, ... com as respectivas [Ô]Fotos[Ô], sem repetir dados pois se eu cadastrar tudo em uma tabela quando preencher virá todas camiseta p,m,g,gg ou seja [Ô]imagens repetidas[Ô] com identificação diferentes.

Pensei em usar duas tabelas, uma [Ô]Modelos[Ô] com os modelos de cada escola: calça, camiseta..., ao clicar na escola preenche a pagina com os modelos, e uma tabela [Ô]Produtos[Ô] com dados do produto como: descrição,valor, tamanho e relacionada a Modelos.


mas ta ruim de fazer isso, ainda mais as 17:00 h kkkkkkkkk...........

Claudiney
www.cassystems.com.br
USUARIO.EXCLUIDOS 09/03/2012 18:21:30
#396831
Claudinei ..... vo tentar novamente .esse código seria a lista de Modelo por Escola
Não da pra entender o que vc nao quer que repita ....
O que vc nao quiser que repita ou escolher 1 campo consultado esse vira com request


Citação:


<!--#include file=[Ô]abreconn.asp[Ô]-->

<html>
<head>
<title>Modelos de uniformes</title>
</head>
<body bgcolor=red leftmargin=[Ô]0[Ô] topmargin=[Ô]0[Ô] marginwidth=[Ô]0[Ô]>
<font face=[Ô]Comic Sans MS[Ô]>

<table width=[Ô]100%[Ô] border=1 border=[Ô]1[Ô] cellpadding=[Ô]0[Ô] cellspacing=[Ô]0[Ô] bordercolor=Black>


<[ô]%
set rsescolas=conexao.execute([Ô]select * from escolas ORDER BY nomeescola[Ô])


while not rsescolas.eof
response.write [Ô]<tr><td align=[ô]center[ô]><font size=+2>[Ô] & rsescolas([Ô]nomeescola[Ô]) & [Ô]</font></td></tr>[Ô]

set rsmodelos=conexao.execute([Ô]select * from modelos where cod_escola = [Ô] & rsescolas([Ô]cod_escola[Ô]))

response.write [Ô]<tr><td><table border=1 width=[ô]100%[ô] bordercolor=Black>[Ô]

response.write [Ô]<tr>[Ô]
response.write [Ô]<td><b>Modelo</b></td>[Ô]
response.write [Ô]<td><b>Peça da Roupa</b></td>[Ô]
response.write [Ô]<td><b>Cor</b></td>[Ô]
response.write [Ô]<td><b>Valor</b></td>[Ô]
response.write [Ô]<td><b>Foto</b></td>[Ô]
response.write [Ô]</tr>[Ô]


while not rsmodelos.eof
response.write [Ô]<tr>[Ô]
response.write [Ô]<td>[Ô] & rsmodelos([Ô]modelo[Ô]) & [Ô]</td>[Ô]
response.write [Ô]<td>[Ô] & rsmodelos([Ô]pecaderoupa[Ô]) & [Ô]</td>[Ô]
response.write [Ô]<td>[Ô] & rsmodelos([Ô]cor[Ô]) & [Ô]</td>[Ô]
response.write [Ô]<td>[Ô] & rsmodelos([Ô]tamanho[Ô]) & [Ô]</td>[Ô]
response.write [Ô]<td>[Ô] & rsmodelos([Ô]valor[Ô]) & [Ô]</td>[Ô]
response.write [Ô]<td>[Ô]

if not isNull(rsmodelos([Ô]foto[Ô])) then
response.write [Ô]<a href=[ô][Ô] & rsmodelos([Ô]foto[Ô]) & [Ô][ô]><img src=[ô][Ô] & rsmodelos([Ô]foto[Ô]) & [Ô][ô] width=50 heigth=50></a>[Ô]
end if

response.write [Ô]</td>[Ô]
response.write [Ô]</tr>[Ô]

rsmodelos.movenext
wend

response.write [Ô]</tr></td></table>[Ô]


rsescolas.movenext
wend
%[ô]>

</table>

</body>
</html>

<!--#include file=[Ô]fechaconn.asp[Ô]-->


DINEY 09/03/2012 19:27:44
#396833
Se eu usar uma tabela só [Ô]Produtos[Ô] nela eu salvo todos os modelos da Escola A,

[Ô]cod:01[Ô], [Ô]camiseta manga curta[Ô], [Ô]tam P[Ô] , [Ô]25,00[Ô] , [Ô]foto x.png[Ô]
[Ô]cod:02[Ô], [Ô]camiseta manga curta[Ô], [Ô]tam M[Ô] , [Ô]26,00[Ô] , [Ô]foto x.png[Ô]
[Ô]cod:03[Ô], [Ô]camiseta manga curta[Ô], [Ô]tam G[Ô] , [Ô]27,00[Ô] , [Ô]foto x.png[Ô]
[Ô]cod:04[Ô], [Ô]camiseta manga curta[Ô], [Ô]tam P[Ô] , [Ô]28,00[Ô] , [Ô] foto x.png[Ô]

Todas são [Ô]camisetas manga curta[Ô] com a mesma [Ô]foto[Ô]

Quando eu clico no link de uma determinada escola [Ô]Escola A[Ô]:

<a href=[Ô]listaprod.asp?lista=categoria&cat_id=<%=recTabela([Ô]id[Ô])%>&cat_nome=<%=recTabela([Ô]nome[Ô])%>&cat_foto=<%=recTabela([Ô]foto[Ô])%>[Ô]>

em listaproduto.asp:

<%
Dim lista,cat_id,cat_nome,nome,lista_produtos,msgnada,cat_foto
lista=Request.querystring([Ô]lista[Ô])
cat_id=Request.querystring([Ô]cat_id[Ô])
cat_nome=Request.querystring([Ô]cat_nome[Ô])
nome=Request.querystring([Ô]nome[Ô])
cat_foto=Request.querystring([Ô]cat_foto[Ô])
%>


<%
Select Case lista
Case [Ô]categoria[Ô]
set lista_produtos = conConecta.Execute([Ô]SELECT * FROM produtos WHERE cat_id=[Ô]& cat_id &[Ô] AND disp=[ô]S[ô] ORDER BY nome[Ô])
msgnada = [Ô]No momento não dispomos de nenhum produto neste departamento.[Ô]
Case [Ô]busca[Ô]
set lista_produtos = conConecta.Execute([Ô]SELECT * FROM produtos WHERE nome LIKE [ô]%[Ô]& nome &[Ô]%[ô] OR descricaop LIKE [ô]%[Ô]& nome &[Ô]%[ô] OR descricaog LIKE [ô]%[Ô]& nome &[Ô]%[ô] OR preco LIKE [ô]%[Ô]& nome &[Ô]%[ô] OR imagem LIKE [ô]%[Ô]& nome &[Ô]%[ô] AND disp=[ô]S[ô] ORDER BY nome[Ô])
msgnada = [Ô]Infelizmente não localizamos nenhum produto com esse nome.[Ô]
Case Else
%>
<script>window.location=[Ô]produtos.asp[Ô]</script>
<%
End Select
If lista_produtos.EOF Then
Response.Write [Ô]<tr><td><h4>[Ô] & msgnada & [Ô]</h4></td></tr>[Ô]
Else
%>

<%
Dim prod_cat_id,prod_id,prod_nome,prod_codigo,prod_imagem,prod_descricaop,prod_descricaog,prod_preco,prod_categoria,malha1

while not lista_produtos.EOF
prod_cat_id = lista_produtos([Ô]cat_id[Ô])
prod_id = lista_produtos([Ô]id[Ô])
prod_nome = lista_produtos([Ô]nome[Ô])
prod_codigo = lista_produtos([Ô]codigo[Ô])
prod_descricaop = lista_produtos([Ô]descricaop[Ô])
prod_descricaog = lista_produtos([Ô]descricaog[Ô])
prod_preco = lista_produtos([Ô]preco[Ô])
prod_imagem = lista_produtos([Ô]imagem[Ô])
prod_categoria = lista_produtos([Ô]categoria[Ô])
%>


<table width=[Ô]819[Ô] border=[Ô]0[Ô] cellspacing=[Ô]0[Ô] cellpadding=[Ô]0[Ô]>
<tr>
<td>Código:</td>
<td width=[Ô]256[Ô]><font color=[Ô]#333333[Ô]><b><%=prod_codigo%></b></td>
</tr>
<tr>

<td>Produto:</td>
<td width=[Ô]256[Ô]><%=prod_nome%></td>
</tr>
<tr>
<td>Comp.:</td>
<td width=[Ô]256[Ô]><%=prod_descricaop%></td>
</tr>
<tr>
<td>Tam.:</td>
<td width=[Ô]256[Ô]><%=prod_descricaog%></td>
</tr>
<tr>
<td>Preço:</td>
<td width=[Ô]256[Ô]><font color=[Ô]red[Ô]><b><%=FormatCurrency(prod_preco)%></b></td>
</tr>
<tr>
<td>Categoria:</td>
<td width=[Ô]256[Ô]><font color=[Ô]#333333[Ô]><b><%=prod_categoria%></b></td>
</tr>
</table>
<table width=[Ô]820[Ô] border=[Ô]0[Ô] cellspacing=[Ô]0[Ô] cellpadding=[Ô]0[Ô] >
<tr>
<td height=[Ô]8[Ô]></td>
</tr>
</table>
<table width=[Ô]820[Ô] border=[Ô]0[Ô] cellspacing=[Ô]0[Ô] cellpadding=[Ô]0[Ô] background=[Ô]imagens/pontinho02.gif[Ô]>
<tr>
<td height=[Ô]8[Ô]></td>
</tr>
</table>
<table width=[Ô]820[Ô] border=[Ô]0[Ô] cellspacing=[Ô]0[Ô] cellpadding=[Ô]0[Ô] >
<tr>
<td height=[Ô]8[Ô]></td>
</tr>
</table>
<%
lista_produtos.movenext
wend
%>
<%
End If
lista_produtos.Close
set lista_produtos = Nothing
%>
</td>
</tr>
</table>


isso esta funcionando mas como eu disse eu estou salvando em uma tabela [Ô]produto[Ô] todos os dados, mas abre todos os produtos da escola, ou seja:

[Ô]cod:01[Ô], [Ô]camiseta manga curta[Ô], [Ô]tam P[Ô] , [Ô]25,00[Ô] , [Ô]foto x.png[Ô]
[Ô]cod:02[Ô], [Ô]camiseta manga curta[Ô], [Ô]tam M[Ô] , [Ô]26,00[Ô] , [Ô]foto x.png[Ô]
[Ô]cod:03[Ô], [Ô]camiseta manga curta[Ô], [Ô]tam G[Ô] , [Ô]27,00[Ô] , [Ô]foto x.png[Ô]
[Ô]cod:04[Ô], [Ô]camiseta manga curta[Ô], [Ô]tam P[Ô] , [Ô]28,00[Ô] , [Ô] foto x.png[Ô]

sendo que eu preciso que saia apenas o:

[Ô]cod:01[Ô], [Ô]camiseta manga curta[Ô], [Ô]tam P[Ô] , [Ô]25,00[Ô] , [Ô]foto x.png[Ô]

e com as opções de o cliente escolher o tamanho, consequentemente se ele optar pelo tamanho [Ô]G[Ô] o produto seria outro e o valor seria outro
é possivel fazer isso em uma Tabele apenas.

Claudiney
www.cassystems.com.br
TECLA 09/03/2012 23:07:13
#396844
Resposta escolhida
Creio que alocando os dados em uma única tabela, você terá um problema de inconsistência devido a redundância dos dados.
Uma sugestão simples, seria você fazer uma normalização dos dados, de forma que se evite a repetição no cadastro de produtos.
Dá uma olhada no exemplo e veja se te ajuda.
USUARIO.EXCLUIDOS 10/03/2012 14:19:42
#396859
Claudinei , estou anexando um exemplo pra modificarmos e entermos o que voce vc realmente quer
Esta meio dificil de entender .....

altere esse comecei pra que podemos entendermos melhor sua duvida
depois voce sob novamente , o arquivo ja com seu sua adaptacao
dizendo o que pretende emcima das alterações que vc fizer , e o que nao deu certo .
DINEY 11/03/2012 13:41:43
#396895
Tecla,

é isso mesmo. Quando for jogar no carrinho de compras na verdade usarei o código [Ô]Tamanho_ID[Ô] pois sera o meu produto, e o Produto_ID será apenas os modelos.
Valeu a todos pela ajuda, obrigado!

Claudiney
www.cassystems.com.br
Tópico encerrado , respostas não são mais permitidas