Foros del Web » Programando para Internet » PHP »

Problemas con paginador de OKRAM

Estas en el tema de Problemas con paginador de OKRAM en el foro de PHP en Foros del Web. Hola: Necesito una solución urgente para poder propagar un array en una sesión con el paginador de OKRAM. El problema que tengo es que los ...
  #1 (permalink)  
Antiguo 25/02/2009, 04:12
 
Fecha de Ingreso: febrero-2009
Mensajes: 2
Antigüedad: 15 años, 2 meses
Puntos: 0
Problemas con paginador de OKRAM

Hola:

Necesito una solución urgente para poder propagar un array en una sesión con el paginador de OKRAM. El problema que tengo es que los datos de la consulta se me repiten de una página a otra y no sé porqué. Me estoy volviendo loco...... Alguien me puede echar una mano por favor? ¿Cómo se propagan los arrays en una sesión? ¿Cómo paso el resultado de la query a un array? Creo que ahí es donde tengo el problema
  #2 (permalink)  
Antiguo 25/02/2009, 05:01
Avatar de bLEx  
Fecha de Ingreso: mayo-2008
Ubicación: Villa Alemana, Chile
Mensajes: 181
Antigüedad: 16 años
Puntos: 5
Respuesta: Problemas con paginador de OKRAM

Mmmm una idea para pasar los datos de una consulta a un array puede ser asi:

Código PHP:

$sql 
"select campo1,campo2,campo3 from tabla where 1";
$res mysql_query($sql) or die(mysql_error());

for(
$i=0;$i<mysql_num_rows($res);$i++){

  
$resultado[$i][0] = mysql_result($res,$i,"campo1");
  
$resultado[$i][1] = mysql_result($res,$i,"campo2");
  
$resultado[$i][2] = mysql_result($res,$i,"campo3");


Finalmente tendrias una matriz con todos lo resultados obtenidos.
  #3 (permalink)  
Antiguo 25/02/2009, 08:53
 
Fecha de Ingreso: febrero-2009
Mensajes: 2
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problemas con paginador de OKRAM

Gracias por tu ayuda pero cómo lo propago en una misma sesión? El problema que tengo es que el paginador me repite los registros porque la consula acaba en "ORDER BY RAND()"... Supongo que tendré que utilizar la variable $_Session pero me está dando problemas. Además necesito todos los campos de la consulta... Sería "SELECT * from... Order by RAND()"
  #4 (permalink)  
Antiguo 25/02/2009, 08:55
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problemas con paginador de OKRAM

Via los comentarios de la web del paginador ya te expliqué más o menos cómo es que tienes que plantear tu lógica.

El problema aquí, y que no lo ha mencionado, es que intenta ordenar los resultados aleatoriamente, y paginarlos así. Por eso le sugerí extraer aleatoriamente y guardar TODOS los registros en un array, y luego usar ese array para realizar el paginado. Como hablamos de varias páginas, debe tener un medio de propagar este array con lso datos extraidos aleatoriamente, pues de otro modo en cada consulta a la bd se reordenarían los resultados. Por eso es que se repiten sus resultados en varias páginas.

Código PHP:
//Verificamos si existen los datos en la sesión:
// session_start();

if(!isset($_SESSION['datos'])) {
    
// Query normal a la bd

    
$datos = array();

    while(
$d mysql_fetch_assoc($result)) {
        
$datos[] = $d;
    }

    
//....

    
$_SESSION['datos'] = $datos;
} else {
    
$datos $_SESSION['datos'];
}

// Y para el paginador, en vez de agregarConsulta():

$paging->agregarArray($datos); 
Estudia el código, y ve si lo puedesadaptar. Por Nésima vez te repito, consumirás bastantes recursos y tu aplicación podría volverse lenta haciéndolo así, obviamente dependiendo de la cantidad total de registros en tu bd. Sería mejor que establezcas un patrón en base al cuál realizar el ordenamiento y paginado.

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 07:45.