Ir para conteúdo

POWERED BY:

Arquivado

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

dcoder

[Resolvido] Random (banner rotativo)

Recommended Posts

Boa noite.

 

Tenho esse código de um banner rotativo:


<%          
Set conexaodb = Server.CreateObject("ADODB.Connection")          
conexaodb.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("banco/dados.mdb") & ";Persist Security Info=False"                                                          
countsql = "select count(*) as cod From cat"                                                          
set rs1 = conexaodb.execute(countsql)                                                                                                   
IF rs1("cod") <> 0 Then                                                                                                                        
SQL = "SELECT * FROM cat"                                                             
set rs3 = conexaodb.execute(SQL)                                                                
Randomize                 
rs3.Move (Int(rs1("cod") * Rnd))          
%>


 

Estou exibindo assm:

 

<a href="visualizar_emp.asp?cod=<%=rs3("cod")%>" class="texto"><img src="<%=rs3("banner1")%>" alt="<%=rs3("nome")%>" width="120" height="60" border="0" /></a> 

 

Ele funciona perfeitamente mostrando os banners aleatoriamente, porém preciso que ele me mostre apenas 12 registros por atualização.

Da maneira que ele está aí, a cada atualização exibe um número de registros, 5, 10, 30, 1 e aasim por diante.

 

Como posso modificar esse código para tal resultado ?

 

 

Desde já um muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloque no sql

SELECT TOP 12 ....

e na ordenação, você coloca:

ORDER BY data DESC

 

Obrigado cara, mais não deu certo, olha como ficou:

 

 


countsql = "select top 12 count (*) as cod from cat order by banner1"	

 	  
		                                                  
set rs1 = conexaodb.execute(countsql)                                                                                                   
IF rs1("cod") <> 0 Then                                                                                                                              SQL = "SELECT * FROM cat"                                                             
set rs3 = conexaodb.execute(SQL)                                                                
Randomize                 
rs3.Move (Int(rs1("cod") * Rnd))          

%>

deu este erro:

 

Tipo de erro:

Microsoft JET Database Engine (0x80040E21)

Você tentou executar uma consulta que não inclui a expressão 'banner1' especificada como parte de uma função agregada.

/minas/includes/ban.asp, line 16

 

na linha 16 tenho:

 

set rs1 = conexaodb.execute(countsql)

 

 

Fiz essa modificação na outra query aí nao apareceu nada. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloque no sql

SELECT TOP 12 ....

e na ordenação, você coloca:

ORDER BY data DESC

 

Consegui agora olha o script:

 


countsql = "select * From cat where cod"   
                                                                    
set rs1 = conexaodb.execute(countsql)                                                                                                   


IF rs1("cod") <> 0 Then                                                                                                                                   
SQL = "SELECT top 12 * FROM cat"                                                             
set rs3 = conexaodb.execute(SQL)                                                                
Randomize                 
rs3.Move (Int(rs1("cod") * Rnd))          

%>

Está exibindo 12 imagens como eu queria porém não está randomizandoos outros registros somente os 12 primeiros.

Tenho cerca de 40 registro no bd o random teria que acontecer dentre todos ....

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pessoal consegui resolver.

Minha query ficou assim:

 

sql="select top 12 * from cat order by RND(INT(NOW*cod)-NOW*cod)" 
set rs3 = conexaodb.execute(SQL)

 

E para exibição assim, com LOOP:

 

<a href="visualizar_emp.asp?cod=<%=rs3("cod")%>" class="texto"><img src="<%=rs3("banner1")%>" alt="<%=rs3("nome")%>"  width="120" height="60" border="0" />

Obrigado... http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito bem...

lembre-se , se você estiver usando uma função aggregate (por exemplo, SUM, COUNT, MAX), então qualquer outra coluna na lista SELECT devem também estar na cláusula GROUP BY. Esta é a base de dados de modo a que sabe como organizar os resultados.

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.