Random que no repita resultados

Iniciado por carlosuc99, 19 Octubre 2012, 19:37 PM

0 Miembros y 1 Visitante están viendo este tema.

carlosuc99

Buenas,

Cómo puedo hacer un random en php que coja 3 resultados aleatorios de una base de datos y que no se repitan entre si¿? La consulta quiero que sea SQL en PHP.

WarGhost

Lo puedes hacer directamente desde el SQL:

SELECT DISTINCT id FROM table ORDER BY RAND() LIMIT 3

Saludos!
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?

carlosuc99

Cita de: WarGhost en 19 Octubre 2012, 20:26 PM
Lo puedes hacer directamente desde el SQL:

SELECT DISTINCT id FROM table ORDER BY RAND() LIMIT 3

Saludos!
Lo probaré!

carlosuc99

Cita de: WarGhost en 19 Octubre 2012, 20:26 PM
Lo puedes hacer directamente desde el SQL:

SELECT DISTINCT id FROM table ORDER BY RAND() LIMIT 3

Saludos!

Y para  hacerlo en tres variables que cada una muestre un resultado?

carlosuc99

Por favor, alguien sabe como poner los resultados cada uno en una variable individual?

WarGhost

¿Cual es la base de datos que utilizas?
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?


WarGhost

#7
Código (php) [Seleccionar]

$db = mysqli($dbHost, $dbUser, $dbPassword, $dbName);

$result = $db->query('SELECT DISTINCT id FROM tabla ORDER BY RAND() LIMIT 3');

if(is_object($result)) {
   $var = $result->fetch_all(MYSQLI_ASSOC);
   $result->free();
}

echo 'Variable 1: ' . $var[0]['id'] . '<br/>'
  . 'Variable 2: ' . $var[1]['id'] . '<br/>'
  . 'Variable 3: ' . $var[2]['id'] . '<br/>';


Si las quieres imprimir a la vez, es mejor que utilices un while.

P.D:Muevo el hilo a el foro: PHP.
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?

carlosuc99

Cita de: WarGhost en 20 Octubre 2012, 17:11 PM
Código (php) [Seleccionar]

$db = mysqli($dbHost, $dbUser, $dbPassword, $dbName);

$result = $db->query('SELECT DISTINCT id FROM tabla ORDER BY RAND() LIMIT 3');

if(is_object($result)) {
   $var = $result->fetch_all(MYSQLI_ASSOC);
   $result->free();
}

echo 'Variable 1: ' . $var[0]['id'] . '<br/>'
  . 'Variable 2: ' . $var[1]['id'] . '<br/>'
  . 'Variable 3: ' . $var[2]['id'] . '<br/>';


Si las quieres imprimir a la vez, es mejor que utilices un while.

P.D:Muevo el hilo a el foro: PHP.

y puedo poner?

variable1 = $var[0]['id'];

WarGhost

Si, pero es hacer dos variables con el mismo contenido.
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?