Ver Mensaje Individual
  #5 (permalink)  
Antiguo 14/12/2016, 09:40
german_1441
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 5 meses
Puntos: 20
Respuesta: Problema al obtener registros de mi BD

Hola, gracias por responder.

Lo que pasa es que quería ver a donde se cortaba el script, y me di cuenta que es cuando trata de optener los registros:

$movimientos = $sql->fetchAll(PDO::FETCH_ASSOC);

Hasta ese punto llega; ya estuve investigando y configurando el php.ini así como el my.ini , y no he obtenido resultados.

Sí, ya intente paginar, mediante LIMIT, obteniendo de 500 en 500 registros, PERO se corta casi de inmediato.

Esta es mi "paginador" y mi consulta:

Código PHP:
Ver original
  1. //Defino el # de registros a paginar
  2. $registros = 500;
  3.  
  4. //Obtengo el total de registros
  5. $total = $obj->getTotalMov();
  6.  
  7. //Calculo el # de ciclos, para saber cuantas veces lo voy a recorrer
  8. $numCiclos = floor($total/$registros);
  9.  
  10. //Ciclo "extra", lo obtengo mediante la función módulo
  11. $cicloext = $total%$registros;
  12.  
  13. //Si hay un residuo del total%registros, agrego un ciclo extra
  14. $numCiclos = ($cicloext>0) ? $numCiclos+=1 : $numCiclos;
  15.  
  16. //'Seteo' el # de registros (500)
  17. $obj->set_cuantos($registros);
  18.    
  19. //array auxiliar   
  20. $principal = array();
  21.  
  22. //empiezo el recorrido
  23.     for($i=0;$i<$numCiclos;$i++){
  24.                //seteo el limit para realizar la consulta
  25.         $limit = ($i==0) ? ($registros * $i) : (($registros*$i)+1);
  26.         $obj->set_limite($limit);      
  27.                $movs = $obj->getMov();
  28.         array_push($principal, $movs);
  29.        }
  30. echo count($principal);
  31.  
  32.  
  33. Mi consulta (en su respectiva clase):
  34. $query = "SELECT * FROM movimientos LIMIT $this->limite, $this->cuantos";
  35. $sql = $this->conex->prepare($query);
  36. $sql->execute();
  37. $result = $sql->fetchAll(PDO::FETCH_ASSOC);


Pero el script se queda en blanco, y de nuevo, si sólo recorro el ciclo una sóla vez, es decir, que me obtenga los primeros 500 registros solamente, lo hace perfecto.

Otra cosa que noté, esque en mi mismo phpmyadmin, al hacer un SELECT * FROM movimientos LIMIT 0,500 , se tarda más del tiempo que arroja al mostrar el resultado, se tarda aprox unos 10 seg, y en el resultado me aparece:
Mostrando filas 0 - 499 (total de 500, La consulta tardó 0.0632 seg)

Esto es normal?
Supongo que por ahí va también el asunto.

La estructura de mi tabla considero es sencilla, un id (primary key, autoincrement) y aprox 15 columnas.

Espero me puedan orientar, saludos y gracias de antemano.

Última edición por german_1441; 14/12/2016 a las 09:48