Ir para conteúdo

POWERED BY:

Arquivado

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

lezão

Tabelas + tabelas

Recommended Posts

Ola boa tarde...

Tenho 10 tabelas no meu bd, e gostaria de exibir em uma pagina 04 produtos de cada tabela com RND tem como fazer isso ..... :unsure:

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que é RND ? Randomize ?

 

Bom seja la o que for. é possivel sim. é como digo na programação 99% das coisas são possiveis.

 

Vamos la que banco de dados esta usando ?

 

bom você basicamente vai precisar de um select com os comandos Top, union all, e NewID() --> Newid() se for SQL Server.

 

exemplo:

SELECT TOP 4 * FROM TABELA_1
UNION ALL
SELECT TOP 4 * FROM TABELA_2
UNION ALL
SELECT TOP 4 * FROM TABELA_3
UNION ALL
SELECT TOP 4 * FROM TABELA_4
UNION ALL
SELECT TOP 4 * FROM TABELA_5
UNION ALL
SELECT TOP 4 * FROM TABELA_6
UNION ALL
SELECT TOP 4 * FROM TABELA_7
UNION ALL
SELECT TOP 4 * FROM TABELA_8
UNION ALL
SELECT TOP 4 * FROM TABELA_9
UNION ALL
SELECT TOP 4 * FROM TABELA_10
ORDER BY NEWID()

 

no caso, acho só que o order tambem vai em todos os selects.

 

abraços

 

 

PS: Olha o que eu acabei de achar.

 

http://imasters.com.br/faq/15

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, entendi.

 

Tem sim, como se fosse uma loja virtual. certo?

 

mas acontece que você vai precisar selecionar cada tabela, onde fica um pouco pesado, se você tivesse tabelas com chaves para Fabricante>Marca>Produto, ai você teria uma tabela só onde poderia fazer o randomize.

 

Segue código.

 

A = 1
	B = 4
Do until Cint(A) >= (B + 1)
	set conexao = con.Execute("SELECT * FROM (sua tabela) order by rand() ")
	If Not(conexao.EOF) then
' aqui você pode colocar o que quiser, como exemplo usei respose.write.
		response.write conexao("campo desejado")
		A = A + 1
	End If
Loop

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola filipescoob fiz do jeito q você disse coloquei assim

 

sql = "SELECT TOP 4 * FROM automoveis UNION ALL SELECT TOP 4 * FROM fiat UNION ALL SELECT TOP 4 * FROM volks UNION ALL SELECT TOP 4 * FROM ford UNION ALL SELECT TOP 4 * FROM chevro UNION ALL ORDER BY NEWID()"

e deu este erro..........

Microsoft JET Database Engine error '80040e14' 

Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'. 

/princ.asp, line 89

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola ted K gostaria q numa pagina, exibisse dois produtos de cada tabela, mas sempre atualizando qnd um usuario acessa-se....

Compartilhar este post


Link para o post
Compartilhar em outros sites

nome de coluna Invalida 'sua_coluna'. A coluna a qual você se refere na Base de Dados não foi encontrada. Verifique a ortografia.

 

ja tentou

 

sql="select TOP 4 from tabela order by RND(INT(NOW*id)-NOW*id)"

Compartilhar este post


Link para o post
Compartilhar em outros sites

randomiza registros no access

Compartilhar este post


Link para o post
Compartilhar em outros sites

kara no access não vai funcionar o new ID. Mas se for deste jeito fica assim

 

sql = "SELECT TOP 4 * FROM automoveis "
sql = sql &" UNION ALL "
sql = sql &" SELECT TOP 4 * FROM fiat "
sql = sql &" UNION ALL "
sql = sql &" SELECT TOP 4 * FROM volks "
sql = sql &" UNION ALL "
sql = sql &" SELECT TOP 4 * FROM ford "
sql = sql &" UNION ALL "
sql = sql &" SELECT TOP 4 * FROM chevro "
sql = sql &" ORDER BY RND(INT(NOW*id)-NOW*id)"

 

a unica coisa que não entendi é? Você tem uma tabela de automoveis e uma tabela para cada montadora ? Se não for assim for uma tabela de automoveis e marca/montadora for um campo é assim como abaixo, você da um select na mesma tabela mas só traz registros diferentes dela mesma.

 

sql = "SELECT TOP 4 * FROM automoveis "
sql = sql &" where marca = 'fiat' "
sql = sql &" UNION ALL "
sql = sql &" SELECT TOP 4 * FROM automoveis "
sql = sql &" where marca = 'volks' "
sql = sql &" UNION ALL "
sql = sql &" SELECT TOP 4 * FROM automoveis "
sql = sql &" where marca = 'ford' "
sql = sql &" UNION ALL "
sql = sql &" SELECT TOP 4 * FROM automoveis "
sql = sql &" where marca = 'chevro' "
sql = sql &" ORDER BY RND(INT(NOW*id)-NOW*id)"

Veja qual o select que se adapta a sua solução. A unica coisa que não sei é se precisa colocar o order by em todos os selects ou apenas no ultimo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

no acess nao tem newid mesmo

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.