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

Chamar dados do banco de dados e modificar depois.


beto_solobó

Pergunta

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:

Link para o comentário
Compartilhar em outros sites

21 respostass a esta questão

Posts Recomendados

  • 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:

Editado por beto_solobó
Link para o comentário
Compartilhar em outros 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.

Link para o comentário
Compartilhar em outros 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

Editado por jow
Link para o comentário
Compartilhar em outros 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!

Link para o comentário
Compartilhar em outros 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 !!!

Link para o comentário
Compartilhar em outros 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?

Link para o comentário
Compartilhar em outros 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")%>

Link para o comentário
Compartilhar em outros 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>

Link para o comentário
Compartilhar em outros 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

Editado por jow
Link para o comentário
Compartilhar em outros 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?

Link para o comentário
Compartilhar em outros 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

Link para o comentário
Compartilhar em outros 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.

Link para o comentário
Compartilhar em outros 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>

Link para o comentário
Compartilhar em outros 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...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...