Foros del Web » Programando para Internet » PHP »

nuevamente el RAND()

Estas en el tema de nuevamente el RAND() en el foro de PHP en Foros del Web. nuevamente recurro a ustedes porque el RAND() no me funciona muy bien, resulta que tengo una tabla con encuestados (usuario que votaron), bhay una opcion ...
  #1 (permalink)  
Antiguo 16/02/2004, 11:04
Avatar de giotari
Usuario no validado
 
Fecha de Ingreso: mayo-2003
Ubicación: Chile
Mensajes: 295
Antigüedad: 14 años, 7 meses
Puntos: 0
nuevamente el RAND()

nuevamente recurro a ustedes porque el RAND() no me funciona muy bien, resulta que tengo una tabla con encuestados (usuario que votaron), bhay una opcion que tiene solo 6 votos pero al sortear los ganadores de 20 veces en 19 sorteos se me repite la misma persona, que el la primera que registro su voto. que puede hacer???

este es mi codigo...habra otra forma??

$consulta = "SELECT * FROM encuestados WHERE encuesta = '$id_encuesta' And voto= '";
$consulta.= $respuesta. "' ORDER BY RAND() LIMIT ";
$consulta.= $cantidad;
$ganadores = mysql_query($consulta) or die(mysql_error());
  #2 (permalink)  
Antiguo 17/02/2004, 17:45
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Truco:

SELECT RAND() as uno, RAND as dos, * FORM tabla WHERE condiciones ORDER BY MOD(uno, dos)
__________________
M a l d i t o F r i k i
  #3 (permalink)  
Antiguo 19/02/2004, 08:17
Avatar de giotari
Usuario no validado
 
Fecha de Ingreso: mayo-2003
Ubicación: Chile
Mensajes: 295
Antigüedad: 14 años, 7 meses
Puntos: 0
me puedes explicar el truco...que es uno ...y que es dos... y el limit no lo ocupo...como le digo la cantidad de ganadores...
  #4 (permalink)  
Antiguo 28/02/2004, 07:00
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
El truco es bastante "cutre", lo que hago es seleccionar todos los campos necesarios y, además, dos números aleatorios. El 1 y el 2 hacen referencia a los dos primeros campos del select, en el ejemplo, dos RAND()s.

El truco consiste en operar con varios números aleatorios para que los resultados sean más aleatorios aún. En fin, un descabellado intento de mejorar el RAND()
__________________
M a l d i t o F r i k i
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:20.