Foros del Web » Programando para Internet » PHP »

Mostrar resultados a medida que se ejecuta consulta a BD

Estas en el tema de Mostrar resultados a medida que se ejecuta consulta a BD en el foro de PHP en Foros del Web. Hola!! me gustaria saber si existe alguna forma d q se vaya mostrando los resultados de una consulta a medida que se ejecuta, es decir, ...
  #1 (permalink)  
Antiguo 19/09/2007, 10:18
 
Fecha de Ingreso: junio-2006
Mensajes: 330
Antigüedad: 13 años, 5 meses
Puntos: 4
Mostrar resultados a medida que se ejecuta consulta a BD

Hola!! me gustaria saber si existe alguna forma d q se vaya mostrando los resultados de una consulta a medida que se ejecuta, es decir, sabemos que al ejecutar una consulta, se mostraran los resultados en pantalla una vez finalizada la misma, y me gustaria q a medida que va ejecutandose la consulta los resultados se me vayan mostrando en pantalla, asi no tener que esperar a que termine de ejecutar todo el proceso, ya que la cantidad de datos es mucha, y no quiero paginarlo, quiero que se muestre todo de una vez...

Gracias!!!
  #2 (permalink)  
Antiguo 24/09/2007, 13:55
 
Fecha de Ingreso: junio-2006
Mensajes: 330
Antigüedad: 13 años, 5 meses
Puntos: 4
Re: Mostrar resultados a medida que se ejecuta consulta a BD

Ninguna idea????
  #3 (permalink)  
Antiguo 04/10/2007, 12:48
 
Fecha de Ingreso: junio-2006
Mensajes: 330
Antigüedad: 13 años, 5 meses
Puntos: 4
Re: Mostrar resultados a medida que se ejecuta consulta a BD

alguna sugerencia????
  #4 (permalink)  
Antiguo 04/10/2007, 14:42
Avatar de Drakull  
Fecha de Ingreso: julio-2007
Ubicación: En Cuba
Mensajes: 25
Antigüedad: 12 años, 5 meses
Puntos: 0
Re: Mostrar resultados a medida que se ejecuta consulta a BD

hola nena si quieres que tu página cargue rápido tiene que ser pequeña es decir que no contenga muchas imágenes etc,eso depende completamente de la cantidad de información que tengas dentro de esa página.

Por supuesto que una web grande necesita de más tiempo para mostrarse eso es normal ya te digo mientras más pequeña sea mucho más rápido correra.

Espero que esta explicación te sirva .Suerte
  #5 (permalink)  
Antiguo 05/10/2007, 03:08
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 14 años, 3 meses
Puntos: 2
Re: Mostrar resultados a medida que se ejecuta consulta a BD

El tema de ir enviando salida al navegador a medida que esta se genera es algo complicado. La cuestión es que en el envio de estas salidas intervienen los servidores y navegadores, y cada uno hace cosas diferentes con ella. Como puedes ver en http://ar2.php.net/flush y también en los comentarios de esa misma documentación, existen varias "soluciones" al problema... algunas les funcionan a algunos mientras que esas mismas soluciones no les funcionan a otros tantos.
Lo que yo he utilizado en cierta ocasión y hasta ahora no me ha dado problemas es algo como lo siguiente:

Código PHP:
<?php
ob_start
();

for(
$i=0$i<=4$i++)
{
    echo 
$i.'<br>';
    
enviarSalida();
    
sleep(1);
}

function 
enviarSalida()
{
    if(
ob_get_length()<=8192) echo str_pad(''8192-ob_get_length());
    
ob_flush();
}
?>
El problema es que para que la salida sea realmente mostrada en el momento requerido si lo que hay que mostrar tiene una longitud menor a 8192 caracteres se utiliza un relleno para llegar a esta cantidad, aunque este relleno no se muestre en lo que ve el "usuario final". Lo ideal sería entonces que llames a enviarSalida() cada 4 o 5 registros para no tener que enviar tanto relleno innecesario.

Como te digo, hay varios factores que intervienen en el proceso y cada uno de ellos se comporta de manera distinta; esta es la forma que encontré yo que funciona en Win/Linux y en Opera/Firefox/IE. Puedes ver más en el link que te pasé más arriba.

Saludos.
__________________
R4DS en español | R4DS en inglés

Última edición por zaqpz; 05/10/2007 a las 03:13
  #6 (permalink)  
Antiguo 08/10/2007, 16:02
 
Fecha de Ingreso: junio-2006
Mensajes: 330
Antigüedad: 13 años, 5 meses
Puntos: 4
Re: Mostrar resultados a medida que se ejecuta consulta a BD

Gracias a ambos por responder... pero.. zaqpz esa sugerencia que me colocas como deberia colocarla, es decir, coloco mi consulta, por ejemplo:

Código PHP:
$str "SELECT c.id, c.titulo, c.fecha, c.fuente, f.id, f.nombre  FROM contadores, fuentes f WHERE c.fecha = '".$fecha."' AND c.fuente = f.id ORDER BY c.titulo";

$result mysql_query($str$link);

if (
mysql_num_rows($result))
   {
          while (
$row mysql_fetch_array($result))
    {
                        echo 
$row["id"];
                        echo 
$row["nombre"];
                        echo 
$row["fuente"];
                                 .
                                 .
                                 .
                              
etc...
                }

   } 
Donde ubico esa función que me dists, en q parte???

Disculpa si molesto mucho...


Gracias
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 15:07.