Ir para conteúdo

POWERED BY:

Arquivado

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

power-rs

Mostrar produtos de categorias diferente

Recommended Posts

Olá Pessoal! Mais uma vez venho pedir uma ajudinha de alguma boa alma.Seguinte, como faço para mostrar produtos 1 produto de cada categoria aleatóriamente?No BD tenho a tabela produto, dentro da tabela tem codigo, categoria, nome, descrição, foto, preço.Hoje eu consigo listar os produtos mas especificando a categoria tal, mas gostaria de mostrar o´produto 1 da categoria 2, produto 3 da categoria 4 ... mostrando no mínimo uns 8 produtos... como seria a sintese?Espero que possam me ajudar.[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

crie dois alias para a tabela produto (tb1 e tb2) e aplique o aondição where:Select * from produtos tb1, produtos tb2where tb1.categoria = tb2.categoriaSe não errei a sintaxe é assim que funciona. :huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

crie dois alias para a tabela produto (tb1 e tb2) e aplique o aondição where:Select * from produtos tb1, produtos tb2where tb1.categoria = tb2.categoriaSe não errei a sintaxe é assim que funciona. :huh:

Hoje ele está assim:
<%Dim RS_LojaVitrineset rs_LojaVitrine = Server.CreateObject("ADODB.Recordset")RS_LojaVitrine.ActiveConnection = "DSN=---;UID=---;PWD=---"RS_LojaVitrine= "SELECT TOP 2 Codigo, NomProduto, PrecoUnitario, ArquivoFoto  FROM [Produtos] WHERE Categoria = '004'"RS_LojaVitrine.CursorType = 3RS_LojaVitrine.CursorLocation = 3RS_LojaVitrine.LockType = 1RS_LojaVitrine.Open()%>
Onde você diz para eu criar esse Alias?[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depois da clusula from.Exemplo:tbproduto tb1 - onde tb1 é um alias para a tabela produto.tbproduto tb2 - onde tb2 é um alias para a tabela produto também.Assim você cria virtualmente duas tabelas distintas para a mesma tabela e depois aplica o where no campo categoria precedido do alias da tabela.Observe:...where tb1.categoria = tb2.categoria ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depois da clusula from.Exemplo:tbproduto tb1 - onde tb1 é um alias para a tabela produto.tbproduto tb2 - onde tb2 é um alias para a tabela produto também.Assim você cria virtualmente duas tabelas distintas para a mesma tabela e depois aplica o where no campo categoria precedido do alias da tabela.Observe:...where tb1.categoria = tb2.categoria ;)

Fico até sem geito, mas Desculpe minha ignorância, realmente eu entendo a lógica mas não consegui assimilar e aplicá-la.
<%Dim RS_LojaVitrineset rs_LojaVitrine = Server.CreateObject("ADODB.Recordset")RS_LojaVitrine.ActiveConnection = "DSN=---;UID=---;PWD=---"RS_LojaVitrine= "SELECT TOP 2 Codigo, NomProduto, PrecoUnitario, ArquivoFoto  FROM [Produtos]tb1, [produtos]tb2 WHERE tb1.categoria = tb2.categoria"RS_LojaVitrine.CursorType = 3RS_LojaVitrine.CursorLocation = 3RS_LojaVitrine.LockType = 1RS_LojaVitrine.Open()%>
Se puderes epecificar para eu poder assimilar ou dar algum exemplo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experimenta isso...

 

<%

Dim RS_LojaVitrine

 

set rs_LojaVitrine = Server.CreateObject("ADODB.Recordset")

RS_LojaVitrine.ActiveConnection = "DSN=---;UID=---;PWD=---"

RS_LojaVitrine= "SELECT TOP 2 tb1.Codigo, tb1.NomProduto, tb1.PrecoUnitario, tb1.ArquivoFoto FROM Produtos tb1, produtos tb2 WHERE tb1.categoria = tb2.categoria"

RS_LojaVitrine.CursorType = 3

RS_LojaVitrine.CursorLocation = 3

RS_LojaVitrine.LockType = 1

RS_LojaVitrine.Open()

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experimenta isso...

 

<%

Dim RS_LojaVitrine

 

set rs_LojaVitrine = Server.CreateObject("ADODB.Recordset")

RS_LojaVitrine.ActiveConnection = "DSN=---;UID=---;PWD=---"

RS_LojaVitrine= "SELECT TOP 2 tb1.Codigo, tb1.NomProduto, tb1.PrecoUnitario, tb1.ArquivoFoto FROM Produtos tb1, produtos tb2 WHERE tb1.categoria = tb2.categoria"

RS_LojaVitrine.CursorType = 3

RS_LojaVitrine.CursorLocation = 3

RS_LojaVitrine.LockType = 1

RS_LojaVitrine.Open()

%>

beleza amigo, assim como seu exemplo funcionou.... mas ele pegou os 2 produtos da mesma categoria... onde especifico qual a categoria para que ele mostre apenas os 2 Protudos de, digamos categotia 001 e categoria 003?

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lendo um poucp e indo atraz de alguma referência o melhor resultado que consegui foi isso:

set rs_LojaVitrine = Server.CreateObject("ADODB.Recordset")RS_LojaVitrine.ActiveConnection = "DSN=----;UID=----;PWD=----"RS_LojaVitrine.Source = "SELECT * FROM [Produtos] WHERE ([Categoria] LIKE '%004%' OR [Categoria] LIKE '%003%' OR [Categoria] LIKE '%005%' OR [Categoria] LIKE '%006%') ORDER BY PRECOUNITARIO"RS_LojaVitrine.CursorType = 3RS_LojaVitrine.CursorLocation = 3RS_LojaVitrine.LockType = 1RS_LojaVitrine.Open()%>
Mas como meus conhecimentos são um pouco limitados, tenho agora o seguinte problema, precisava mostrar apenas 2 Produtos de cada categoria. como o Select Top "Num" não funcionaria neste caso, existiria alguma outra forma de string ou comando para que eu possa listar apenas os 2 produtos das categorias que especifiquei?

Se alguém souber como e puder me dar uma ajudazinha agradeceria muito.

Obrigado até agora ao mibnetweb pela sua ajuda que é e está sendo de grande avalia.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se funciona, mas tenta isso

 

"SELECT * FROM [Produtos] WHERE ([Categoria] LIKE '%004%' OR [Categoria] LIKE '%003%' OR [Categoria] LIKE '%005%' OR [Categoria] LIKE '%006%') GROUP BY categoria LIMIT 2 ORDER BY PRECOUNITARIO"

Testa isso e fala se deu certo... hehe agora até eu quero saber o que ki eu inventei... haha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se funciona, mas tenta isso

"SELECT * FROM [Produtos] WHERE ([Categoria] LIKE '%004%' OR [Categoria] LIKE '%003%' OR [Categoria] LIKE '%005%' OR [Categoria] LIKE '%006%') GROUP BY categoria LIMIT 2 ORDER BY PRECOUNITARIO"
Testa isso e fala se deu certo... hehe agora até eu quero saber o que ki eu inventei... haha
Valeu a Tentativa! Mas não funciona não... deve ser algo mais complexo..Mas valeu a intenção[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom pessoal, por enquanto consegui fazer desta maneira... com um único inconveniente de que tive que alterar meu DB colocando mais um campo que é Mostrar (Objeto Sim/Não). Agora eu só escolho aqueles que eu quero que apareçam idempendentes da categoria. o Chato eh ter que fazer uma vitrine para cada categoria que no meu caso aqui são como departamentos.

Espero que isso possa ajudar alguém no futuro.

E se alguém souber de como fazer uma página só fazendo essa consulta e mostrando Apenas os destaques dos respetivos "departamentos" ficarei muito grato.

 

PS: Quem quiser da uma olhadinha no código Clique aqui

<%Dim RS_LojaVitrineset rs_LojaVitrine = Server.CreateObject("ADODB.Recordset")RS_LojaVitrine.ActiveConnection = "DSN=---;UID=---;PWD=---"RS_LojaVitrine.Source = "SELECT TOP 15 Codigo, NomProduto, PrecoUnitario, ArquivoFoto FROM [Produtos] WHERE ([Mostrar] LIKE '%SIM%') ORDER BY PRECOUNITARIO"RS_LojaVitrine.CursorType = 3RS_LojaVitrine.CursorLocation = 3RS_LojaVitrine.LockType = 1RS_LojaVitrine.Open()%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.