Ver Mensaje Individual
  #14 (permalink)  
Antiguo 30/06/2006, 01:59
kaki
 
Fecha de Ingreso: junio-2002
Mensajes: 93
Antigüedad: 22 años, 11 meses
Puntos: 0
Bueno finalmente he decidido agregar un order by multiple a la consulta sql es decir haré un order by campo1 , campo2 , campo3 , campo4 .

Para seleccionar los campo1 ,campo2, campo3 y campo4 creo un array con los nombres de los campos, despues genero los numeros aleatorios y los añado a la consulta.

Así genero registros aleatorios pero con un patrón, con lo que puedo paginarlos sin repetir ninguno pero cada vez que se inicia una busqueda los resultados son distintos.

Bueno pongo el código para que se entienda
Código PHP:
sql "Select * from mitabla order by "
campos = Array ("campo1","campo2","campo3"...........)
manipulado false 'Asi detecto si manipulan la querystring o si biene vacia'
If request.QueryString("criterio") <>"" then
    criterio 
request.QueryString("criterio")
    
indice split(criterio,",")
    for 
i=0 to uBound(indice)
        if (
isNumeric(indice(i)) and (indice(i) > 22 or indice(i)<0)) then
            manipulado 
true
            
exit for
        
end if
        
sql2 sql2 " " campos(indice(i)) & ","
    
next
else
    
manipulado true
end 
if

if 
manipulado then
    randomize
    
for i=0 to 3
        indice 
round(rnd()*22)
        
criterio criterio indice ","
        
sql2 sql2 " " campos(indice) & ","
    
next
    criterio 
MID(criterio,1,LEN(criterio)-1)' quito la ultima coma'
end if

sql2 MID(sql2,1,LEN(sql2)-1'quito la ultima coma'
sql sql sql2 
Bueno pues basicamente es esto cada vez que alguien hace una busqueda tiene resultados distintos pero si se pone a navegar por ellos con los botones de anterior y sigiente no obtendrá resultados repetidos

Bueno ahora lo testearé un poco y listo

Gracias por su colaboración.

Un saludo
Iñaki

Última edición por kaki; 30/06/2006 a las 07:34