Foro de elhacker.net

Programación => 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:

Código:
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
Lo puedes hacer directamente desde el SQL:

Código:
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
Lo puedes hacer directamente desde el SQL:

Código:
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
¿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
  1. $db = mysqli($dbHost, $dbUser, $dbPassword, $dbName);
  2.  
  3. $result = $db->query('SELECT DISTINCT id FROM tabla ORDER BY RAND() LIMIT 3');
  4.  
  5. if(is_object($result)) {
  6.    $var = $result->fetch_all(MYSQLI_ASSOC);
  7.    $result->free();
  8. }
  9.  
  10. echo 'Variable 1: ' . $var[0]['id'] . '<br/>'
  11.   . 'Variable 2: ' . $var[1]['id'] . '<br/>'
  12.   . 'Variable 3: ' . $var[2]['id'] . '<br/>';
  13.  

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
Código
  1. $db = mysqli($dbHost, $dbUser, $dbPassword, $dbName);
  2.  
  3. $result = $db->query('SELECT DISTINCT id FROM tabla ORDER BY RAND() LIMIT 3');
  4.  
  5. if(is_object($result)) {
  6.    $var = $result->fetch_all(MYSQLI_ASSOC);
  7.    $result->free();
  8. }
  9.  
  10. echo 'Variable 1: ' . $var[0]['id'] . '<br/>'
  11.   . 'Variable 2: ' . $var[1]['id'] . '<br/>'
  12.   . 'Variable 3: ' . $var[2]['id'] . '<br/>';
  13.  

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?

Código:
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.