Foros del Web » Programando para Internet » PHP » CodeIgniter »

obtener registros aleatorios - CodeIgniter

Estas en el tema de obtener registros aleatorios - CodeIgniter en el foro de CodeIgniter en Foros del Web. Hola amigos, Tal como lo indica el post, estoy tratando de leer 3 registros de una tabla de forma aleatorio mediante CodeIgniter. La idea es: ...
  #1 (permalink)  
Antiguo 04/10/2012, 16:33
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 3
obtener registros aleatorios - CodeIgniter

Hola amigos,

Tal como lo indica el post, estoy tratando de leer 3 registros de una tabla de forma aleatorio mediante CodeIgniter.

La idea es:

Asumiendo que tengo Registro 1, Registro 2 y Registro 3

La primera petición que se haga desde la vista me devuelva uno de los 3 registros (que puede ser Registro 1, Registro 2 o Registro 3) de forma aleatoria, la segunda petición que se haga me devuelva otro registro también de forma aleatoria y así con la tercera petición que se me devuelva el último registro de forma aleatoria.

Con PHP puro lo había hecho antes, era un proceso largo para el servidor debido a que obtenía todos los registros en un arreglo, los desordenaba con un random y luego volvía a consultar solamente el primer registro que había en la primera posición de forma aleatoria, me funcionaba pero era un proceso largo y aunque lo puedo volver hacer de la misma forma, en esta ocasión quiero saber si lo puedo hacer mediante CodeIgniter que facilite un poco las cosas.

Desde ya muchas gracias por sus respuestas
  #2 (permalink)  
Antiguo 05/10/2012, 00:23
Avatar de antonrodin  
Fecha de Ingreso: noviembre-2007
Ubicación: Madrid
Mensajes: 153
Antigüedad: 16 años, 5 meses
Puntos: 38
Respuesta: obtener registros aleatorios - CodeIgniter

Cita:
Iniciado por nh2006 Ver Mensaje
Hola amigos,

Tal como lo indica el post, estoy tratando de leer 3 registros de una tabla de forma aleatorio mediante CodeIgniter.

La idea es:

Asumiendo que tengo Registro 1, Registro 2 y Registro 3

La primera petición que se haga desde la vista me devuelva uno de los 3 registros (que puede ser Registro 1, Registro 2 o Registro 3) de forma aleatoria, la segunda petición que se haga me devuelva otro registro también de forma aleatoria y así con la tercera petición que se me devuelva el último registro de forma aleatoria.

Con PHP puro lo había hecho antes, era un proceso largo para el servidor debido a que obtenía todos los registros en un arreglo, los desordenaba con un random y luego volvía a consultar solamente el primer registro que había en la primera posición de forma aleatoria, me funcionaba pero era un proceso largo y aunque lo puedo volver hacer de la misma forma, en esta ocasión quiero saber si lo puedo hacer mediante CodeIgniter que facilite un poco las cosas.

Desde ya muchas gracias por sus respuestas
Código PHP:
$query $this->db->get("table");
$stdObject array_rand($query->result(), 1); 
No se si esta bien escrito, echa un ojo a esto: http://www.php.net/manual/es/function.array-rand.php

Lo mismo te vale... creo que $query->result() te saca un array de StdObjects si no me equivoco.

Hay mogollon de funciones de array... para todos los gustos
__________________
Mi blog personal... o algo asi: http://www.azrodin.com, experimentando con un concurso seo.
  #3 (permalink)  
Antiguo 05/10/2012, 12:02
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: obtener registros aleatorios - CodeIgniter

Hola antonrodin

Muchas gracias por responder, tu solución me servirá en otra parte de mi proyecto en el cual tendré que descargar los archivos de mi DB a un arreglo para luego desordenarlo y que quede en forma aleatoria.

Mientras, también me ha servido esta otra solución que encontré por ahí:

Código PHP:
Ver original
  1. function get_random_page()
  2. {
  3.     $this->db->order_by('id', 'RANDOM');
  4.     $this->db->limit(1);
  5.     $query = $this->db->get('pages');
  6.     return $query->result_array();
  7.  
  8. }

El enlace está acá: http://stackoverflow.com/questions/1...th-codeigniter

Saludos

Etiquetas: php, registros, aleatoria
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 01:11.