Ir ao conteúdo
  • Cadastre-se

Listagem do BD a partir de um critério!


neldergalvao

Posts recomendados

Amigos, estou com uma dúvida muito grande. Pode ser até simples, mas estou com um bloqueio imenso!

Estava lendo em um de seus artigos, como obter informações de um form. Por exemplo numa busca, o ASP captura os dados de um form para listar os itens sob aquele critério.

No meu caso, a minha dúvida é a seguinte: Quero também listar os resultados sob um critério, mas não de um form, e sim de um link.

Ex.:

<a href="show_result.asp?cod=001"> Televisão </a>

No caso queria listar todas as televisões que tenham o código igual a 1. No meu BD há várias televisões, porém com os códigos diversificados.

Gostaria de saber como fica essa parte na "show_result.asp"?

Agradeço muito por sua ajuda, até mais!!

Abraços!

Nelder Galvão

Link para o comentário
Compartilhar em outros sites

No caso não são televisores, são outros produtos de xerox, máquinas de xerox, impressoras... coloquei televisores pois é um pensamento genérico.

Os campos da tabela Produto são:

cod (auto-numeração)

marca (texto)

nome (texto)

info (texto)

especific (texto)

img (texto)

aplic (texto)

Sei que tenho que usar Request.QueryString na página show_result.asp, porém nesta página não estou conseguindo linkar a informação. Está dando um erro que não consigo resolver.

Há um menu na página default.asp e quando clicado no produto, que está disponibilizado em uma listagem, deve apresentar informações desse produto. Sei que na show_result.asp deve ter uma consulta SQL para pegar os dados de acordo com o que está definido na default.asp.

Vou postar como está na default.asp e como está na show_result.asp e o erro que está dando:

default.asp

<a href="../show_products.asp?cat=um" target="_parent" >Minolta DI 250/350 Copier </a>

show_result.asp

<%

var conn = Server.CreateObject("ADODB.Connection");

var myrecordset = Server.CreateObject("ADODB.RecordSet");

conn.connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/inetpub/wwwroot/manre/database/produtos.mdb";

conn.Open();

codigo = Request.QueryString("cat");

myrecordset.Open("select * from produtos where id LIKE '%" & codigo & "%' ;" ,conn);

while(!myrecordset.EOF)

{

Response.Write("<table border=1>");

Response.Write("<tr>");

Response.Write("<td rowspan=2>");

Response.Write(myrecordset("cod"));

Response.Write("<br>");

Response.Write(myrecordset("img01"));

Response.Write("</td>");

Response.Write("<td>");

Response.Write(myrecordset("nome"));

Response.Write("</td>");

Response.Write("</tr>");

Response.Write("<tr>");

Response.Write("<td>");

Response.Write(myrecordset("info"));

Response.Write("</td>");

Response.Write("</tr>");

Response.Write("</table>");

myrecordset.MoveNext();

}

conn.close();

conn = null;

%>

Erro:

ADODB.Recordset (0x800A0BB9)

Os argumentos são incorretos, estão fora do intervalo aceitável ou estão em conflito.

/manre/show_products.asp, line 61

A linha que está dando o erro é esta:

myrecordset.Open("select * from produtos where id LIKE '%" & codigo & "%' ;" ,conn);

Poxa fico muito grato pela ajuda parceiro...

Abraços!!

Link para o comentário
Compartilhar em outros sites

mas claro que está errado.

nessa linha codigo = Request.QueryString("cat");

codigo esta recebendo o calor de cat? no caso um? manda imprimir pra ver se é isso mesmo.

e nessa linha aqui myrecordset.Open("select * from produtos where id LIKE '%" & codigo & "%' ;" ,conn); não existe id na sua tabela, seria cod, não é?

Link para o comentário
Compartilhar em outros sites

Me desculpe caro, por ter confundido as coisas... Vou tentar ser mais claro.

Na verdade estou trabalhando com texto, já que estava dando um erro de critério... por isso para testar, criei na minha tabela um campo "id" no formato texto. Esse "cat" é a string "um".

Default.asp

<a href="../show_products.asp?cat=um" target="_parent" >Minolta DI 250/350 Copier </a>

O grande problema no meu caso é que na minha consulta SQL não estou conseguindo fazer o WHERE com uma variável.

Se eu fizer assim:

myrecordset.Open("select * from produtos where id = 'um' ;" ,conn); dá certo, já que na minha tabela há um campo chamado "id" que tem o valor "um", assim como "dois", "três" e assim por diante.

Mas realmente eu não queria pôr uma string "um", queria pôr um inteiro, 1.

Então para matar toda a charada basta me dizer como ficaria a consulta SQL... e como ficaria a linha da Request.QueryString, sabendo que estou usando JSCRIPT ...

Eu tenho na minha tabela um campo COD, auto-numeração. Na verdade queria linkar a página default.asp com a show_result.asp com o inteiro, ficando assim:

<a href="../show_products.asp?cat=1" target="_parent" >Minolta DI 250/350 Copier

</a>

Mas como ficaria minha consulta SQL e a linha do Request.QueryString ?

Valeu mesmo irmão!!!

Link para o comentário
Compartilhar em outros sites

Me desculpe caro, por ter confundido as coisas... Vou tentar ser mais claro.

Na verdade estou trabalhando com texto, já que estava dando um erro de critério... por isso para testar, criei na minha tabela um campo "id" no formato texto. Esse "cat" é a string "um".

Default.asp

<a href="../show_products.asp?cat=um" target="_parent" >Minolta DI 250/350 Copier </a>

O grande problema no meu caso é que na minha consulta SQL não estou conseguindo fazer o WHERE com uma variável.

Se eu fizer assim:

myrecordset.Open("select * from produtos where id = 'um' ;" ,conn); dá certo, já que na minha tabela há um campo chamado "id" que tem o valor "um", assim como "dois", "três" e assim por diante.

Mas realmente eu não queria pôr uma string "um", queria pôr um inteiro, 1.

Então para matar toda a charada basta me dizer como ficaria a consulta SQL... e como ficaria a linha da Request.QueryString, sabendo que estou usando JSCRIPT ...

Eu tenho na minha tabela um campo COD, auto-numeração. Na verdade queria linkar a página default.asp com a show_result.asp com o inteiro, ficando assim:

<a href="../show_products.asp?cat=1" target="_parent" >Minolta DI 250/350 Copier

</a>

Mas como ficaria minha consulta SQL e a linha do Request.QueryString ?

Valeu mesmo irmão!!!

Link para o comentário
Compartilhar em outros sites

Acredito que é assim.

codigo = Request.QueryString("cat"); //para pegar o valor que você passou no link

select * from Produto where id = 'codigo' ; //pegando todas as informações a partir da id = 'ao o que você passou'

Poxa amigo to quase desistindo... Tá certo, mas não tá rodando! Quando clico no link, não lista nada do meu BD, mas também não dá erro.

tipo = Request.QueryString("cat");

myrecordset.Open("select cod, img01, nome, info from produtos WHERE id='tipo';" ,conn);

Quando mando imprimir o TIPO, ele imprime a palavra UM.

Está certo, pois coloquei na default.asp o seguinte:

<a href="../show_products.asp?cat=um" target="_parent"

Usei String mas não estou conseguindo. Se ao invés de usar a variável eu colocar o valor direto, como por exemplo myrecordset.Open("select cod, img01, nome, info from produtos WHERE id='um';" ,conn); ele roda, mostrando o produto com ID = UM.

Bom, há um erro relacionado à variável ... Tipo, deve ser algum erro de sintaxe no uso da vartiável no código SQL ... bom, agradeço muito a atenção e grande abraço!!

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...