Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: carlosuc99 en 19 Octubre 2012, 19:37 PM

Título: Random que no repita resultados
Publicado por: carlosuc99 en 19 Octubre 2012, 19:37 PM
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.
Título: Re: Random que no repita resultados
Publicado por: 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!
Título: Re: Random que no repita resultados
Publicado por: carlosuc99 en 19 Octubre 2012, 20:31 PM
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é!
Título: Re: Random que no repita resultados
Publicado por: carlosuc99 en 19 Octubre 2012, 20:51 PM
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?
Título: Re: Random que no repita resultados
Publicado por: carlosuc99 en 20 Octubre 2012, 13:17 PM
Por favor, alguien sabe como poner los resultados cada uno en una variable individual?
Título: Re: Random que no repita resultados
Publicado por: WarGhost en 20 Octubre 2012, 14:52 PM
¿Cual es la base de datos que utilizas?
Título: Re: Random que no repita resultados
Publicado por: carlosuc99 en 20 Octubre 2012, 15:59 PM
Cita de: WarGhost en 20 Octubre 2012, 14:52 PM
¿Cual es la base de datos que utilizas?
MySQL
Título: Re: Random que no repita resultados
Publicado por: 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.
Título: Re: Random que no repita resultados
Publicado por: carlosuc99 en 20 Octubre 2012, 17:31 PM
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'];
Título: Re: Random que no repita resultados
Publicado por: WarGhost en 20 Octubre 2012, 17:42 PM
Si, pero es hacer dos variables con el mismo contenido.