Mostrar muchos registros con php

De golpe puedan ayudarme con esta pregunta...
Tengo este pequeño programa:
<?php
require_once ('conexión.php');
$sql = mysql_query("select idtercero, pnombre, papellido where idtercero=100001") or die (mysql_error());
$i=1;
while($data = mysql_fetch_object($sql))
{
echo $i. ' '. $data->idtercero . ' ' . $data->pnombre . ' ' . $data->papellido . '<br>';
$i++;
}
mysql_free_result($sql); // libera los registros de la tabla
?>
Básicamente es la consulta e impresión de datos. El tema es que la tabla
Tiene 1.496.300 registros y esta consulta arroja 196.000 registros.
Quise mostrarla por pantalla, tal como lo puedes observar el código, pero sucede que:
1. Realiza la consulta... Ok.. 2... Segundos...
2. Inicia la impresión... Ok...
3. Pero.. Sólo imprime 112.000 registros, en otros intentos sólo imprimió hasta el 92.000 ( la $i me sirve para tener ese datos de hasta cuanto imprimió)... Cada intento me da un número diferente...
Dudas:
1. Por qué, ¿Si ya no estoy conectado a la base de datos no imprime todos los registros?
2. Realizo las pruebas en mi portatil Dell – Core I7, 8 Gb Ram ... Así es de que máquina no es...
3. ¿Limitación del php?
4. ¿Limitación del ciclo?
5. Intenté con mysql_fetch_array... Resultados iguales...
Puedes darme alguna idea de que puede ser y cómo imprimir esa cantidad de registros..

1 respuesta

Respuesta
1

Parece un problema de tiempo de ejecución, toma un reloj y controla los segundos que permanece el script funcionando, serán unos 15 seg. Si lo estas haciendo en local, con tu servidor apache y todo lo demás (db, php), debes modificar un valor en el fichero php.ini

Si lo tienes en un server igual, el problema es que no todos los proveedores permiten modificar ese fichero.

Aquí explican todas las opciones para modificar el tiempo máximo de ejecución:

http://www.darian-brown.com/override-the-default-php-execution-timeout-limit/#div_php_ini

Puedes intentarlo también en tu programa:

<a>http://php.net/manual/es/function.set-time-limit.php</a>

Lo ideal sería añadir por ejemplo cada 10.000 registros 4 seg más de ejecución, así no te quedarás corto, y tampoco pondrás un tiempo excesivo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas