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

(Resolvido) Select ASP


Legionáriors

Pergunta

Bom dia pessoal,

Tenho o seguinte código:

<%
Dim lojaDB
set lojaDB = Server.CreateObject("ADODB.Connection")
lojaDB.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\banco\loja.mdb"
lojaDB.open
%>
<center>
<table class=topo border=0 width="720" cellpadding=2 cellspacing=2>

        
    <td valign=middle align=right width="720"><p>
    <form action=listaprod.asp method=query target="principal">
    <font face="verdana" size="2" color="white"><b>
        &nbsp;&nbsp;&nbsp;Buscar&nbsp;&nbsp;<input type=text size=20 name=nome>&nbsp;&nbsp;em&nbsp;&nbsp;<input type=text size=20 name=nome>&nbsp;&nbsp;<input type=button value=Buscar onclick="submit();">
        <input type=hidden name=lista value=busca>
        </form></p>
    </td>
</tr>
</table>

Preciso que este código além de realizar a busca que já faz com perfeição tenha um campo select para que o usuário possa indicar no dropdown a categoria que deseja pesquisar. No banco existe uma tabela com o nome de categorias mas não é a mesma tabela onde estão os cadastrados os produtos. Não consigo nada que funcione para executar este script corretamente, será que algum dos amigos do Fórum pode me ajudar?

Obrigado e abraç oa todos!

Legionario

Editado por Legionáriors
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Não sei se entendi corretamente...

Seria apenas mostrar todas as categorias (que já existem em uma tabela, é claro), mostrar uma caixa de seleção com essas categorias e depois buscar todos os registro onde elas aparecem ??

Se for isso, você pode fazer assim na primeira página:

set rs = lojaDB.Execute("Select id, NomeCategoria from tbListaDeCategorias order by NomeCategoria")
response.write("Escolha a categoria: ")
response.write("<select name='categorias_id'>")'
do while not rs.EOF
response.write("<option value='" & rs("id") & "'>" & rs("NomeCategoria") & "</option>")
rs.MoveNext
loop
response.write("</select>")
E na segunda página você cria mais um filtro para buscar os elementos onde a categoria aparece ! Ficaria assim:
categoria_id = request.form("categorias_id")
ProdutoNome = request.form("nome")
set rs = lojaDB.Execute("Select * from tbProdutos where categoria=" & categoria_id & "and nome='" & ProdutoNome & "'")

Qualquer dúvida posta aí !

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Jonathan,

Não entendi o porque de uma segunda página pois preciso que tudo fique junto em uma só página agrupado como um motor de busca no site.

Fiz desta forma:

<%
Dim lojaDB
set lojaDB = Server.CreateObject("ADODB.Connection")
lojaDB.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\Inetpub\wwwroot\Sites\Projeto Lojas Adri\Novo Layout\banco\loja.mdb"
lojaDB.open

set rs = lojaDB.Execute("Select id, nome from categorias order by nome")
response.write("Escolha a categoria: ")
response.write("<select name='categorias'>")'
do while not rs.EOF
response.write("<option value='" & rs("id") & "'>" & rs("nome") & "</option>")
rs.MoveNext
loop
response.write("</select>")
%>

<center>
<table class=topo border=0 width="720" cellpadding=2 cellspacing=2>

        
    <td valign=middle align=right width="720"><p>
    <form action=listaprod.asp method=query target="principal">
    <font face="verdana" size="2" color="white"><b>
        &nbsp;&nbsp;&nbsp;Buscar&nbsp;&nbsp;<input type=text size=20 name=nome>&nbsp;&nbsp;em&nbsp;&nbsp;<input type=text size=20 name=nome>&nbsp;&nbsp;<input type=button value=Buscar onclick="submit();">
        <input type=hidden name=lista value=busca>
        </form></p>
    </td>
</tr>
</table>

Deu o erro:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

[Microsoft][Driver ODBC para Microsoft Access]Erro geral Não é possível abrir a chave 'Temporary (volatile) Jet DSN for process 0x1cc Thread 0x88c DBC 0x17654bc Jet' do Registro.

/topo.inc, line 5

E não cheguei a usar todo o código que você passou porque o que você se refere a segunda página eu não sei onde colocar...

Obrigado pela ajuda amigo.

Legionario.

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde pessoal,

fiz algumas modificações mas continua dando erro poderiam me ajudar???

<%
Dim lojaDB
set lojaDB = Server.CreateObject("ADODB.Connection")
set rs = server.CreateObject ("adodb.recordset")
lojaDB.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\Inetpub\wwwroot\Sites\Projeto Lojas Adri\Novo Layout\banco\loja.mdb"
'lojaDB.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\Inetpub\wwwroot\Sites\Projeto Lojas Adri\Novo Layout\banco\loja.mdb"
'lojaDB.open
sql="Select id, nome from categorias order by nome"
rs.open sql1,conn,3,3
'response.write("Escolha a categoria: ")
'response.write("<select name='categorias'>")'
'do while not rs.EOF
'response.write("<option value='" & rs("id") & "'>" & rs("nome") & "</option>")
'rs.MoveNext
'loop
'response.write("</select>")
%>

<center>
<table class=topo border=0 width="720" cellpadding=2 cellspacing=2>

        
    <td valign=middle align=right width="720"><p>
    <form action=listaprod.asp method=query target="principal">
    <font face="verdana" size="2" color="white"><b>
        &nbsp;&nbsp;&nbsp;Buscar&nbsp;&nbsp;<input type=text size=20 name=nome>&nbsp;&nbsp;em&nbsp;&nbsp;<input type=text size=20 name=nome> 
        <select name="atendimento" >
        <option value=""> Escolha uma categoria</option>
        <%do while not rs.EOF%>
        <option value=<%= rs("id")%>><%= rs("nome")%> </option>
        <%rs.movenext
        loop%>
        
        </select>
        &nbsp;&nbsp;
        <input type=button value=Buscar onClick="submit();">
        <input type=hidden name=lista value=busca>
      </form></p>
    </td>
</tr>
</table>

Retorna o erro:

Tipo de erro:

Erro de tempo de execução do Microsoft VBScript (0x800A01F4)

Variável não definida: 'rs'

/Projeto Lojas Adri/Novo Layout/topo.inc, line 4

Obrigado desde já!

Legionario.

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia pessoal, consegui adaptar outro código e fiz funcionar o motor de busca mas o que acontece agora com este script que vou postar abaixo é que em alguns produtos que são listados aparece o seguinte erro:

Tipo de erro:
ADODB.Field (0x800A0BCD)
BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.
/Projeto Lojas Adri/Novo Layout/detalheprod.inc, line 57
Lembrando é somente em alguns produtos. Ps. Não consegui fazer aparecer as imagens tbém tentei de tudo e não consegui... O script:
<link rel=stylesheet href=loja.css type=text/css>
<table border=0 width=100% cellspacing="0" cellpadding="10">

<%
Dim lojaDB
set lojaDB = Server.CreateObject("ADODB.Connection")
lojaDB.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\Inetpub\wwwroot\Sites\Projeto Lojas Adri\Novo Layout\banco\loja.mdb"
lojaDB.open
%>

<%
Dim lista_produtos,malha1,temp1,lista_categoria,lista,cat_id
Select Case Request.QueryString("lista")
    Case "busca"
        Select Case Request.QueryString("campo")
            Case "todos" 
                set lista_categoria = lojaDB.Execute("SELECT id FROM categorias WHERE nome LIKE '%" & Request.QueryString("procurar") & "%'")
                If lista_categoria.EOF Then cat_id = "a" Else cat_id = lista_categoria("id") End If
                set lista_produtos = lojaDB.Execute("SELECT * FROM produtos WHERE id LIKE '%" & Request.QueryString("procurar") & "%' OR cat_id LIKE '%" & cat_id & "%' OR cat_id LIKE '%" & Request.QueryString("procurar") & "%' OR nome LIKE '%" & Request.QueryString("procurar") & "%' OR descricaop LIKE '%" & Request.QueryString("procurar") & "%' OR descricaog LIKE '%" & Request.QueryString("procurar") & "%' OR preço LIKE '%" & Request.QueryString("procurar") & "%' OR imagem LIKE '%" & Request.QueryString("procurar") & "%' OR disp LIKE '%" & Request.QueryString("procurar") & "%'")
            Case "cat_id" 
                set lista_categoria = lojaDB.Execute("SELECT id FROM categorias WHERE nome LIKE '%" & Request.QueryString("procurar") & "%'")
                If lista_categoria.EOF Then cat_id = "a" End If
                set lista_produtos = lojaDB.Execute("SELECT * FROM produtos WHERE cat_id LIKE '%" & cat_id & "%'")
            Case Else
                set lista_produtos = lojaDB.Execute("SELECT * FROM produtos WHERE " & Request.QueryString("campo") & " LIKE '%" & Request.QueryString("procurar") & "%'")
        End Select
        If lista_produtos.EOF Then
            %>
            <tr width=100%><td width=100%><h5>Nenhum resultado para esta pesquisa!</h5></td></tr>
            <%
            lista = "não"
        End If
    Case "order"
        set lista_produtos = lojaDB.Execute("SELECT * FROM produtos ORDER BY "& Request.QueryString("orderby") & " " & Request.QueryString("ord"))
        If lista_produtos.EOF Then
            %>
            <tr width=100%><td width=100%><h5>Nenhum resultado para esta pesquisa!</h5></td></tr>
            <%
            lista = "não"
        End If
    Case Else
    lista = "não"
End Select
If Not (lista = "não") Then
    %>
    <table border=0 width="100%" cellspacing="20" cellpadding="10">
    <% 
    malha1 = "sim"
    temp1 = 0 
    While not lista_produtos.EOF 
    set lista_categoria = lojaDB.Execute("SELECT nome FROM categorias WHERE id=" & lista_produtos("cat_id"))
    %>
        <tr width=100% class=<%=malha1%>><td align=center><a href="detalheprod.asp?prod_id=<%=lista_produtos("id")%>">
        <img src=./images/<%=imagem%> width="130" border=0 alt="Clique no produto para ver sua descrição"></a></td>
        <td><%
            If lista_categoria.EOF Then
                %>
                <font color=red><b>Sem Categoria</b></font>
                <% 
                Else
            End If
            %>
        <b>Departamento: <%=lista_categoria("nome")%><br><br><b><%=lista_produtos("nome")%><br><font color=red><b> por apenas R$ <%=formatnumber(lista_produtos ("preço"),2)%></td>
        
    <%  
    temp1 = temp1 + 1
        lista_produtos.MoveNext
    If malha1 = "sim" Then malha1 = "não" Else malha1 = "sim" End If
    Wend
    %>
    </table>
    <tr width=100%><td><font size=1 face=verdana color=white>aaaa<font size=2 face=verdana color=black><b>Total&nbsp;de&nbsp;produtos&nbsp;nesta&nbsp;pesquisa: <%=temp1%></td></tr>
    <%
End If
%>
</font>
</table>

Obrigado a quem poder ajudar, abraço.

Legionario.

Editado por Legionáriors
Link para o comentário
Compartilhar em outros sites

  • 0

Rafael em que parte devo aplicar o if rs.eof...???

Valeu a ajuda.

Jonathan ocorreu o seguinte erro:

Tipo de erro:

Erro de compilação do Microsoft VBScript (0x800A0400)

Instrução esperada

/Projeto Lojas Adri/Novo Layout/resultado.asp, line 69

Wend

Valeu tbém.

Abraço.

Link para o comentário
Compartilhar em outros sites

  • 0

Olhe isso;

<img src=./images/<%=imagem%> width="130" border=0 alt="Clique no produto para ver sua descrição"></a></td>
Tente assim:
<img src=../images/<%=imagem%> width="130" border=0 alt="Clique no produto para ver sua descrição"></a></td>

Se não conseguir resolver pode ser que o link esteja errado mesmo !

Nesse caso olhe o código-fonte do site escreva no navegador a url pra ver se consegue acessar !

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde,

O link está correto pois quando clico na imagem abre a descrição do produto o que não aparece á a imagem mesmo e já tentei diversas formas inclusive a que você sugeriu será que há alguma outra coisa que eu possa fezer???

Valeu a ajuda....

Legionario.

Link para o comentário
Compartilhar em outros sites

  • 0

Tente verificar os diretórios !

Se você estiver em localhost/pasta1/subpasta1 e colocar a imagem como "../imagem/arquivo.js" o endereço será "localhost/pasta1/imagem.jpg"

Veja se na hora de testar você colocou mesmo o endereço correto !

Obs.:

Se for possível, peço a você que poste o código da página em funcionamento ! (se não conseguir não tem problema...)

Link para o comentário
Compartilhar em outros sites

  • 0

Segue:

<td align="center"><center><a href="detalhe_produto_capa.asp?id=<%=rs("id")%>" target="principal"><%=imagem%><img src='images/<%response.write rs ("imagem")%>' height="110" border="0"/></a></tr>

Mas pode ser que algum outro parâmetro esteja diferente nos códigos.

Valeu!

Legionario.

Link para o comentário
Compartilhar em outros sites

  • 0

Agora você já postou um código diferente (antes você estava usando ../ para indicar outro diretório)

Se o diretório estiver no nível acima tente fazer como antes

<img src='../images/<%=imagem%>' width="130" border=0 alt="Clique no produto para ver sua descrição"></a></td>

Tente também adcionar aspas na imagem (talvez seja isso, porque se houver um espaço no nome da imagem o navegador interpreta que aquilo já é outro atributo)

Tente aí e posta aqui o resultado !

Obs.:

Quando falei "exemplo em funcionamento" estava me referindo a página hospedada em um servidor hehe !

Link para o comentário
Compartilhar em outros sites

  • 0

Acho que já sei o que é !

Olhe isso:

<img src='../images/<%=imagem%>' width="130" border=0 alt="Clique no produto para ver sua descrição"></a></td>
A variável "imagem" nem mesmo existe O correto seria:
<img src='../images/<%=rs("imagem")%>' width="130" border=0 alt="Clique no produto para ver sua descrição"></a></td>

Verifique também os diretórios !

Se não funcionar tente postar um "mapa" de seu site

Exemplo:

  • Images
    • Imagem 1.jpg
    • Imagem 2.jpg
    • Imagem 3.jpg
  • Arquivos
    • Pagina.asp

É claro que seria um mapa só com os arquivos e pastas referentes a essa página !

Link para o comentário
Compartilhar em outros sites

  • 0

Esse "rs" era o seu recordset !

Agora que fui ver ele tá com outro nome !

Tente assim:

<img src='../images/<%=lista_produtos("imagem")%>' width="130" border=0 alt="Clique no produto para ver sua descrição"></a></td>

Se não conseguir verifique os diretórios (tente também sem o "../")

Se ainda assim não funcionar tente postar aqui o mapa do site !

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
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...