Foros del Web » Programando para Internet » PHP »

Obtener 6 filas aleatorias de una tabla

Estas en el tema de Obtener 6 filas aleatorias de una tabla en el foro de PHP en Foros del Web. Hola amigos de la lista Tengo una tabla en la bd que contiene el id que es autonumerico (pero no es consecutivo pues se hacen ...
  #1 (permalink)  
Antiguo 16/02/2005, 14:59
 
Fecha de Ingreso: octubre-2004
Mensajes: 73
Antigüedad: 19 años, 6 meses
Puntos: 1
Obtener 6 filas aleatorias de una tabla

Hola amigos de la lista

Tengo una tabla en la bd que contiene el id que es autonumerico (pero no es consecutivo pues se hacen eliminaciones e insercciones en la tabla contantemente) quisiera hacer una consulta para obtener siempre 6 filas aleatorias de esa tabla.

Como lo hago, si me pusieran los codigos que ya hayan probado lo entenderia mejor mil gracias.

Saludos, Pavel
  #2 (permalink)  
Antiguo 16/02/2005, 15:56
 
Fecha de Ingreso: diciembre-2001
Ubicación: Morelia, México.
Mensajes: 312
Antigüedad: 22 años, 4 meses
Puntos: 0
No lo he probado, pero quizás esto resulte:

$sql = "select * from tabla"; // Seleccionamos todo
$resultado = mysql_query ($sql) or die("No se pudo realizar la consulta");
$registros = mysql_num_rows($resultado); //Total de Registros

for ($i=1; $i<7); $i++) {
$aleatorio = rand(1,$registros); //Valor aleatorio de 1 a Total de Registros.
mysql_data_seek($resultado,$aleatorio); //Nos vamos a la fila aleatoria.
$rs = mysql_fetch_array($resultado);
echo $rs[tucampo o datos];
}

Probalo y lo depurás, en teoría lo veo funcional
  #3 (permalink)  
Antiguo 16/02/2005, 16:12
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Solo con SQL:

SELECT * FROM tabla ORDER BY RAND() LIMIT 6

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 06:17.