Foros del Web » Programando para Internet » PHP »

Seleccionar al azar un valor dentro un resultado multiple

Estas en el tema de Seleccionar al azar un valor dentro un resultado multiple en el foro de PHP en Foros del Web. Que tal, les quería pedir ayuda si alguien sabe como puedo hacer para elegir un resultado al azar entre los datos que me devuelve la ...
  #1 (permalink)  
Antiguo 13/01/2010, 15:11
 
Fecha de Ingreso: octubre-2006
Mensajes: 5
Antigüedad: 18 años, 1 mes
Puntos: 0
Seleccionar al azar un valor dentro un resultado multiple

Que tal, les quería pedir ayuda si alguien sabe como puedo hacer para elegir un resultado al azar entre los datos que me devuelve la DB

Yo tengo una consulta del tipo

select p.* from productos p where CHECK2 = 1

Esto me devuelve con mysql_fetch_array y un while cerca de 10 resultados distintos.

Yo quisiera seleccionar al azar solo uno de esos resultados.
Como puedo hacerlo?

muchas gracias!
  #2 (permalink)  
Antiguo 13/01/2010, 15:15
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 17 años, 2 meses
Puntos: 20
Respuesta: Seleccionar al azar un valor dentro un resultado multiple

Investiga en php: array_rand.

PD. El tema no tiene que ver con PHP orientado a objetos.
__________________
I see dead pixels
  #3 (permalink)  
Antiguo 13/01/2010, 15:15
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: Seleccionar al azar un valor dentro un resultado multiple

Rand - Manual de PHP
  #4 (permalink)  
Antiguo 13/01/2010, 15:29
Avatar de maturano  
Fecha de Ingreso: enero-2010
Ubicación: /home/
Mensajes: 537
Antigüedad: 14 años, 10 meses
Puntos: 36
Respuesta: Seleccionar al azar un valor dentro un resultado multiple

Cita:
Iniciado por kalisonico Ver Mensaje
Esto me devuelve con mysql_fetch_array y un while cerca de 10 resultados distintos.

Yo quisiera seleccionar al azar solo uno de esos resultados.
¿Y vas a utilizar los otros 9?. Si solo utilizarás uno, posiblemente desde la base de datos podrás hacer el RAND() y traer solo un valor.

Sería algo como:
Código SQL:
Ver original
  1. SELECT campo FROM tabla WHERE campo=valor ORDER BY RAND() LIMIT 1;

Sin haberlo probado.
  #5 (permalink)  
Antiguo 13/01/2010, 15:39
 
Fecha de Ingreso: octubre-2006
Mensajes: 5
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Seleccionar al azar un valor dentro un resultado multiple

Muchas gracias por responder.

Lo que necesito es saber como hacer para elegir al azar solo 1 de entre todos esos resultados que me devuelve el query.
Es decir, quisiera hacer un random para que seleccione solo uno de ellos.
Tengo que armar un array dinamico, un count entre ellos, y luego el random extre 1 y el count?
  #6 (permalink)  
Antiguo 13/01/2010, 15:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Tema movido desde PHP orientado a objetos a PHP
  #7 (permalink)  
Antiguo 13/01/2010, 15:41
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 17 años, 2 meses
Puntos: 20
Respuesta: Seleccionar al azar un valor dentro un resultado multiple

Cita:
Iniciado por SergeMedina Ver Mensaje
Investiga en php: array_rand.

PD. El tema no tiene que ver con PHP orientado a objetos.
array_rand O puedes utilizar la opción que te dieron anteriormente mediante SQL.
__________________
I see dead pixels
  #8 (permalink)  
Antiguo 13/01/2010, 15:44
 
Fecha de Ingreso: octubre-2006
Mensajes: 5
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Seleccionar al azar un valor dentro un resultado multiple

Cita:
Iniciado por maturano Ver Mensaje
¿Y vas a utilizar los otros 9?. Si solo utilizarás uno, posiblemente desde la base de datos podrás hacer el RAND() y traer solo un valor.

Sería algo como:
Código SQL:
Ver original
  1. SELECT campo FROM tabla WHERE campo=valor ORDER BY RAND() LIMIT 1;

Sin haberlo probado.
Gracias por responder !
funcionó, finalmente era más facil de lo que pensaba, ya que no es necesario usar el resto de los datos.

Etiquetas: seleccionar, resultados
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 12:08.