• 0
Sign in to follow this  
beto_solobó

Chamar dados do banco de dados e modificar depois.

Question

Bom, vou tentar explicar direito aqui o meu problema.

Estou montando um site e fazendo tudo em asp e com bando de dados Access.

Seguinte:

1 - Tenho um tabela chamada "categorias" que nela existem as categorias cadastradas contendo os campo "nome" e codigo".

2 - Existe tb, outra tabela chamada "produtos", com varios campos, e um deles é o codigo da categoria que o produto pertence.

Por fim, quero chamar em uma pagina, a listagem de todos os produtos com as suas respectivas categorias. Só que quando chamo tais informações, a parte que identificaria a categoria é um número.

Pergunta: Como faço pra transformar esses números da tabela "produtos" nos nomes referentes da tabela "categorias"?

Espero que entendam!!!!

Aguardo ajuda!!!

Muito obrigado.

Beto :wacko:

Share this post


Link to post
Share on other sites

21 answers to this question

Recommended Posts

  • 0

Acho que comecei a entender o que preciso direito! :blink:

Acho que preciso dar um "replace" nas informações da minha página.

Tipo: onde tiver o código "2" - escrever "cadeiras". Sendo que o código "2" e o "cadeiras" são informações do banco de dados.

Só que preciso fazer de um jeito que faça isso sozinho pro banco de dados inteiro.

Vamos ver se assim o pessoal entende e me ajuda!!!

valeu.

Beto :wacko:

Edited by beto_solobó

Share this post


Link to post
Share on other sites
  • 0

Oi Andreia...

Só tenho um probleminha... sou meio "novato" em asp.... será que voce poderia me explicar melhor? Ou colocar algum exemplo?

Obrigado!

Share this post


Link to post
Share on other sites
  • 0

Cara se eu entendi bem parece fácil ...

É só você gravar o código da tabela categorias, na tabela produto ...

e monta o seu SELECT do banco com a condição WHERE ...

Share this post


Link to post
Share on other sites
  • 0

Então jow... acho que esse é o problema...

Não quero escolher um item só... porque assim eu colocaria o WHERE.

Eu quero exibir todos os produtos em uma página.

Vamos fazer assim... vou postar o codigo aqui, mas primeiro queria uma ajudinha! hehehe

Sou novo aqui no fórum e não sei postar códigos... (quando colo eles, eles somem...)

Resolvendo isso, coloco meu codigo aqui e vocês dão uma olhada para ver se conseguem me ajudar, ok?!

Agradeço muito a atenção de vocês!

Abraço.

Share this post


Link to post
Share on other sites
  • 0

opá beleza cara, ai é só você clicar em RESPONDER ou em RESP RÁPIDA e abaixo da sua caixa de texto você ir em ADICIONAR RESPONTA, coloque seu código entre as tags

código

para melhor visualização do seu código ...

Essa tag está abaixo da caixa FONTE e do lado direito do balãozinho .. hehehe

posta ai o seu código

Edited by jow

Share this post


Link to post
Share on other sites
  • 0

hehehehe.. valeu jow....

Aí vai. É um include.

<%
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open ConString
%>
<%
set RS_Produtos = Server.CreateObject("ADODB.Recordset")
RS_Produtos.ActiveConnection = ConString
RS_Produtos.Source = "SELECT * FROM produtos ORDER BY codigo_categ DESC"
RS_Produtos.CursorType = 0
RS_Produtos.CursorLocation = 2
RS_Produtos.LockType = 3
RS_Produtos.Open()
RS_Produtos_numRows = 0
%>
<%
Dim Repeat4__numRows
Repeat4__numRows = -1
Dim Repeat4__index
Repeat4__index = 0
RS_Produtos_numRows = RS_Produtos_numRows + Repeat4__numRows
%>

<table width="800" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>Gerenciador de Produtos<br /><br /></td>
  </tr>
  <tr>
    <td><!--#include file="menu.asp" --></td>
  </tr>
</table>
<table width="800" border="0" cellpadding="3" cellspacing="3">
  <tr>
    <td class="textos"><div align="center">Ol&aacute; <% =Session("user") %>. Bem vindo ao sistema de Administra&ccedil;&atilde;o.<br /><br /></div></td>
  </tr>
  <tr>
    <td align="center"><div align="center" class="textos">..:: <a href="submit_all.asp"><b>Adicionar Novo Produto</b></a> ::..</div><br />
    <form name="eventos" method="post" action="apaga_gpro.asp">
<table width="780" border="1" cellpadding="10" cellspacing="0" bordercolor="#0a2549" class="textos">
  <tr align="center">
    <td colspan="5"><div align="center">Lista de Produtos cadastrados no Banco de Dados </div></td>
  </tr>
  <tr>
    <th align="left">Produto</th>
    <th align="left">Categoria</th>
    <th align="left">Fabricante</th>
    <th align="left">Linha</th>
    <th align="center">Apagar</th>
  </tr>
<% While ((Repeat4__numRows <> 0) AND (NOT RS_Produtos.EOF)) %>
  <tr>
    <td align="left" class="textos"><%=(RS_Produtos.Fields.Item("nome_pro").Value)%></a></td>
    <td align="left" class="textos"><%=(RS_Produtos.Fields.Item("nome_categ").Value)%></a></td>
    <td align="left" class="textos"><%=(RS_Produtos.Fields.Item("nome_fab").Value)%></a></td>
    <td align="left" class="textos"><%=(RS_Produtos.Fields.Item("nome_linha").Value)%></a></td>
    <td align="center" class="textos"><input type="checkbox" name="apagar" value="<%=(RS_Produtos.Fields.Item("codigo_pro").Value)%>"></td>
  </tr>
<%
Repeat4__index=Repeat4__index+1
Repeat4__numRows=Repeat4__numRows-1
RS_Produtos.MoveNext()
Wend
%>
  <tr align="right">
    <td colspan="5"><div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
    <input type="submit" name="Submit" value="Apagar selecionados"></font></div></td>
  </tr>
</table>
</form>
</td>
</tr>
</table>

No local onde estou chamando "nome_categ", que esta dando o problema...

Na tabela "produtos" só tenho o código da categoria a qual o produto pertence, e queria colocar aqui o nome!

Ufa! Vamos ver se agora vai!!! hehehehe

Cara... valeu mesmo pela ajuda!

Share this post


Link to post
Share on other sites
  • 0

cara entaum pelo o q eu entendi você deve fazer assim lá no seu formulário HTML você deve usar um campo oculto para você pegar o ID ... entaum esse id q você pegou ele deverá ser salvo na tabela PRODUTOS, você passa o campo como parametro

e executa um SELECT no banco de dados ... assim ficaria o banco de dados PRODUTOS

id_categoria

id_produto

nome_produto

nota: o campo id_categoria deverá ser o mesmo id da tabela CATEGORIA ... e o nome do seu campo oculto deverá ser id_categoria.

você passa esse parametro:

id_categoria = Request.Form("id_categoria")
ai você monta um SELECT assim:
sql="SELECT * FROM produtos WHERE id_produtos = "&id_categoria
set suavariavel = suaconexao.Execute(sql)
e exibe
<%Response.write suavariavel("produto")%>

Vê se isso ai resolve !!!

Share this post


Link to post
Share on other sites
  • 0

Então jow.. isso vai servir quando eu clicar na categoria desejada e pedir pra exibir somente os itens contidos naquela categoria.

Mas e pra exibir a tabela inteira, sem filtro por categoria e além disso exibir o nome da categoria? Lembrando que o nome da categoria não consta na tabela produtos, somente na tabela categorias!

Será que tenho que mexer no meu arquivo .mdb?

Share this post


Link to post
Share on other sites
  • 0

vamos lá cara:

se você usar um

sql="SELECT * FROM categorias "
set suavariavel = suaconexao.Execute(sql)
isso vai mostrar todos os dados da tabela, certo ? Possibilitando você exibir na tela todos os dados dessa tabela Mas se você quer exibir o produto, com o nome da categoria, q eu acho q você quer, né ? então se você usar o q eu disse acima, você consegue exibir o produto de acordo com a categoria ... e ai é só você exibir o nome do produto ... mas você também quer exibir o nome da categoria né, legal kkk então você deve fazer um
sql="SELECT * FROM categorias WHERE id = "'&nome&'" "
set suavariavel = suaconexao.Execute(sql)

<%Response.write suavariavel("categoria")%>

Share this post


Link to post
Share on other sites
  • 0

jow.. deu certo!!!! valeu mesmo cara!

Só que agora deu outro problema...

A tabela na pagina asp esta replicando somente o nome dos produtos, e o outros campos ela só tá lendo as infos do primeiro item...

Vixi.... outra novela... hehehehe

Vou colocar o codigo como ficou... ve se tem alguma ideia, por favor...

<%
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open ConString
%>
<%
set RS_Produtos = Server.CreateObject("ADODB.Recordset")
RS_Produtos.ActiveConnection = ConString
RS_Produtos.Source = "SELECT * FROM produtos ORDER BY codigo_categ DESC"
RS_Produtos.CursorType = 0
RS_Produtos.CursorLocation = 2
RS_Produtos.LockType = 3
RS_Produtos.Open()
RS_Produtos_numRows = 0
%>
<%
    if not RS_Produtos.eof then 
        COD_PRO = RS_Produtos("codigo_pro")
        COD_LIN = RS_Produtos("codigo_linha")
        COD_FAB = RS_Produtos("codigo_fab")
        COD_CAT = RS_Produtos("codigo_categ")
        COD_ADM = RS_Produtos("codigo_adm")
        NOME_PRO = RS_Produtos("nome_pro")
        FOTO1 = RS_Produtos("foto1")
        FOTO2 = RS_Produtos("foto2")
        CHAMADA = RS_Produtos("chamada")
        INFO = RS_Produtos("info")
        EXIB = RS_Produtos("exib")
    end if 
%>
<%
set RS_PCategorias = Server.CreateObject("ADODB.Recordset")
RS_PCategorias.ActiveConnection = ConString
RS_PCategorias.Source = "SELECT * FROM categorias WHERE codigo_categ = " & COD_CAT & ""
RS_PCategorias.CursorType = 0
RS_PCategorias.CursorLocation = 2
RS_PCategorias.LockType = 3
RS_PCategorias.Open()
RS_PCategorias_numRows = 0
%>
<%
set RS_PFabricantes = Server.CreateObject("ADODB.Recordset")
RS_PFabricantes.ActiveConnection = ConString
RS_PFabricantes.Source = "SELECT * FROM fabricantes WHERE codigo_fab = " & COD_FAB & ""
RS_PFabricantes.CursorType = 0
RS_PFabricantes.CursorLocation = 2
RS_PFabricantes.LockType = 3
RS_PFabricantes.Open()
RS_PFabricantes_numRows = 0
%>
<%
set RS_PLinhas = Server.CreateObject("ADODB.Recordset")
RS_PLinhas.ActiveConnection = ConString
RS_PLinhas.Source = "SELECT * FROM linhas WHERE codigo_linha = " & COD_LIN & ""
RS_PLinhas.CursorType = 0
RS_PLinhas.CursorLocation = 2
RS_PLinhas.LockType = 3
RS_PLinhas.Open()
RS_PLinhas_numRows = 0
%>
<%
Dim Repeat4__numRows
Repeat4__numRows = -1
Dim Repeat4__index
Repeat4__index = 0
RS_Produtos_numRows = RS_Produtos_numRows + Repeat4__numRows
%>

<table width="800" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>Gerenciador de Produtos<br /><br /></td>
  </tr>
  <tr>
    <td><!--#include file="menu.asp" --></td>
  </tr>
</table>
<table width="800" border="0" cellpadding="3" cellspacing="3">
  <tr>
    <td class="textos"><div align="center">Ol&aacute; <% =Session("user") %>. Bem vindo ao sistema de Administra&ccedil;&atilde;o.<br /><br /></div></td>
  </tr>
  <tr>
    <td align="center"><div align="center" class="textos">..:: <a href="submit_all.asp"><b>Adicionar Novo Produto</b></a> ::..</div><br />
    <form name="eventos" method="post" action="altera_gpro.asp">
<table width="780" border="1" cellpadding="10" cellspacing="0" bordercolor="#0a2549" class="textos">
  <tr align="center">
    <td colspan="5"><div align="center">Lista de Produtos cadastrados no Banco de Dados </div></td>
  </tr>
  <tr>
    <th align="left">Produto</th>
    <th align="left">Categoria</th>
    <th align="left">Fabricante</th>
    <th align="left">Linha</th>
    <th align="center">Exibir?</th>
  </tr>
<% While ((Repeat4__numRows <> 0) AND (NOT RS_Produtos.EOF)) %>
  <tr>
    <td align="left" class="textos"><%=(RS_Produtos.Fields.Item("nome_pro").Value)%></td>
    <td align="left" class="textos"><%Response.write RS_PCategorias("nome_categ")%></td>
    <td align="left" class="textos"><%Response.write RS_PFabricantes("nome_fab")%></td>
    <td align="left" class="textos"><%Response.write RS_PLinhas("nome_linha")%></td>
    <td align="center" class="textos">
<select name="EXIB">
<option value="False" <% if EXIB = false then %>  selected  <% end if %>>Inativo</option>
<option value="True" <% if EXIB = true then %>  selected  <% end if %>>Ativo</option>
</select>
    </td>
  </tr>
<%
Repeat4__index=Repeat4__index+1
Repeat4__numRows=Repeat4__numRows-1
RS_Produtos.MoveNext()
Wend
%>
  <tr align="right">
    <td colspan="5"><div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
    <input type="submit" name="Submit" value="Alterar status"></font></div></td>
  </tr>
</table>
</form>
</td>
</tr>
</table>

Share this post


Link to post
Share on other sites
  • 0

só tá exibindo o primeiro item é isso ???

se for é só você usar um while !!!

faz assim

<% while not suavariavel.EOF %>
    <td><left><b><%=tab("campo1")%></td>
    <tr>
    <td><br><letf><%=tab("campo2")%></td></tr>
    <tr> 
    <td><br><letf><b><i><%=tab("campo3")%></td></tr><% tab.movenext 
    wend %>

nota: ignora os camos HTML hehehehe

Edited by jow

Share this post


Link to post
Share on other sites
  • 0

já estou usando um WHILE... olha aí no código...

O problema é que no que estou usando, bem como no que você informou, só posso (ou não) declarar uma variável... e acho que é por isso...

Tipo, ele só dá um WHILE pra veriavel que comanda a tabela de produtos...

Acho que é por isso...

Mas então, se for isso mesmo, como declaro esse WHILE pra um monte de variáveis?

Share this post


Link to post
Share on other sites
  • 0

ixi brother não entendi muito bem esse seu erro não ... você está dizendo q está exibindo apenas o primeiro registro é isso ??

Sinceramente não entendi o q você quer me dizer ... como ele exibe na tela ???

Posta q eu te respondo q agora estou indo nessa kkkkkkkkkkk ... Abraçãoooo e bom final de semana

Share this post


Link to post
Share on other sites
  • 0

Vixi!!!! Praia???? hehehehehe

Mas beleza... só pra acresentar, vou tentar explicar melhor o meu erro...

Tenho uma tabela (TABLE) onde estão sendo exibidos Os campos Nome | Categoria | Fabricante | Linha ...

Cada um desses campos acima estão sendo chamados de uma tabela (do banco de dados) diferente e de uma variável RS_XXXX diferente.

O Problema:

Só o primeira célula (TD) com o campo "Nome" está obedecendo o WHILE, colocando em cada linha uma informação diferente.

As outras células (TD) estão repetindo as informações do primeiro registro do banco de dados, fazendo com que todas as linhas repitam as linhas de cima, exceto a célula que contem o campo "Nome", conforme dito na linha acima.

Já postei o código aqui, está num post aí pra cima. Pode dar uma verificada.

Ah... se alguém mais tiver alguma LUZ, sintam-se a vontade.... hehehehehehe

Gente, brigadão pela ajuda até agora!

Abraço e bom final de semana a todos.

Share this post


Link to post
Share on other sites
  • 0

Bom dia, ixi então me esplica o que essa linha quer dizer:

<td align="left" class="textos"><%=(RS_Produtos.Fields.Item("nome_pro").Value)%></td>
Tenta exibir todas as váriaveis iguais, igual tá as outras ..
<td align="left" class="textos"><%Response.write RS_PCategorias("nome_categ")%></td>
    <td align="left" class="textos"><%Response.write RS_PFabricantes("nome_fab")%></td>
    <td align="left" class="textos"><%Response.write RS_PLinhas("nome_linha")%></td>

Share this post


Link to post
Share on other sites
  • 0

jow... desse nosso jeito que estamos tentando acho que não vai dar não...

Deu certo fazer a exibição com o "response.write", porem ele não obedece aos comandos de "movenext" para todas as variáveis.

Dei uma pesquisada e resolvi fazer o q a andreia já tinha recomendado aqui... INNER JOIN...

Só que aí começou a dar outro pau aqui!!!!

Agora dá um erro assim: "Microsoft JET Database Engine (0x80040E14) Erro de sintaxe na operação JOIN."

To quebrando a cabeça aqui, e se você souber como ajudar, tamo aí!!!

Abraços...

Share this post


Link to post
Share on other sites
  • 0

ixi véio tipo da uma procurada como usar INNER JOIN, isso eu nem manjo hehe

Share this post


Link to post
Share on other sites
  • 0

Aí "webdeveloper"... valeu pela atenção, mas já resolvi...

Tive que usar o INNER JOIN com uma palavrinha junto que tava me deixando louco: LEFT

hehehehe

Mas já resolvi!

Valeu!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this