Foros del Web » Programando para Internet » PHP »

Hacer pausa cada 200 registro de la db?

Estas en el tema de Hacer pausa cada 200 registro de la db? en el foro de PHP en Foros del Web. Como puedo hacer un sleep(3) cada 200 registro dentro de un bucle? gracias. salu2 zsamer....
  #1 (permalink)  
Antiguo 19/04/2006, 17:47
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 14 años
Puntos: 8
Hacer pausa cada 200 registro de la db?

Como puedo hacer un sleep(3) cada 200 registro dentro de un bucle?

gracias.


salu2


zsamer.
  #2 (permalink)  
Antiguo 19/04/2006, 19:32
Avatar de vevni  
Fecha de Ingreso: julio-2005
Ubicación: cancun mexico
Mensajes: 598
Antigüedad: 12 años, 4 meses
Puntos: 3
pues generas un contador, de tu consulta general... y cada que pasa, por el while para mostrar los campos o k se yop.... pos incrementras el contador
y despues pones un if diciendo, el contador ==200, okei haces un sleep, reseteas el valor del contador a 0, y vuelves a empezar.!
__________________
Código PHP:
echo"hola mundo ver 1221332143.02";
echo
"cuantos usuarios habran impreso hola mundo en el mundo.!???"
  #3 (permalink)  
Antiguo 20/04/2006, 03:18
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 13 años
Puntos: 1
Tu consulta me suena como que te interesa mostrar los resultados, que pause tres segundos y que nuevamente continúe iterando.

Si lo que te interesa es ir desplegando la información y que se pause 3 segundos cada 200 registros, creo que necesitarás de las funciones:

ob_flush();flush(); así como están, juntas, al momento que quieras desplegar los datos.

Me imagino que eso quieres porque eso de que se pause 3 segundos lo veo muy extraño, pues no vas a ver ninguna salida. Sólo harías que se tardara más.

Saludos.
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #4 (permalink)  
Antiguo 20/04/2006, 09:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ojo que ese "sleep()" de 3 segundos X ese n° de iteracciones del bucle (200?) .. dará como resultado un tiempo de ejecución del script de N segundos. PHP impone limitaciones para la ejecución de un script. Debes tener presente que por defecto son como "30 segundos" máximo y puedes ajustarlo en tiempo de ejecución con la función: set_time_limit()

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 20/04/2006, 10:15
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 14 años
Puntos: 8
Cita:
Iniciado por uamistad
Tu consulta me suena como que te interesa mostrar los resultados, que pause tres segundos y que nuevamente continúe iterando.

Si lo que te interesa es ir desplegando la información y que se pause 3 segundos cada 200 registros, creo que necesitarás de las funciones:

ob_flush();flush(); así como están, juntas, al momento que quieras desplegar los datos.

Me imagino que eso quieres porque eso de que se pause 3 segundos lo veo muy extraño, pues no vas a ver ninguna salida. Sólo harías que se tardara más.

Saludos.
no es para mostrarlo, es para envío de newsletter (mails a los usuarios registrados)

Cita:
Iniciado por Cluster
Ojo que ese "sleep()" de 3 segundos X ese n° de iteracciones del bucle (200?) .. dará como resultado un tiempo de ejecución del script de N segundos. PHP impone limitaciones para la ejecución de un script. Debes tener presente que por defecto son como "30 segundos" máximo y puedes ajustarlo en tiempo de ejecución con la función: set_time_limit()

Un saludo,
Cluster, la ideas es que en cada 200 registro haga un sleep(3), no en cada uno de ellos.
  #6 (permalink)  
Antiguo 20/04/2006, 10:27
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 13 años
Puntos: 1
Ahh, vale zsamer, así como lo pones creo que jala bien.

Claro que si tienes más de 2000 usuarios (10 veces 200 -> 30 segundos), necesitarás moverle ahí al set_time_limit() p' que no tengas problems con tu aplic.
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #7 (permalink)  
Antiguo 20/04/2006, 10:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Cluster, la ideas es que en cada 200 registro haga un sleep(3), no en cada uno de ellos.
Ok, .. pero toma nota de esa función .. por qué entre el proceso de generación del e-mail en sí .. el envio de ese lote de "200" y los N cientos/miles más que tendrás .. lo más probable es que empieces a tener problemas por el tiempo de ejecución de tu script.

Recuerda que PHP con su función mail() (estás usando eso?) sólo entrega el e-mail al "MTA" que tengas configurado .. NO envia el e-mail en sí. Por otro lado que tu "MTA" acepte o tenga alguna restricción de cuantos e-mails pueda recibir por cierto tiempo será otra cosa .. Si usas un servidor SMTP directo .. pasará lo mismo.

En teoría tu sólo tendrías que enviar tus e-mails normalmente y ya será tu servidor SMTP/MTA en general el que gestione su "cola" de envios.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 20/04/2006, 12:25
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 14 años
Puntos: 8
gracias, en mi script tengo el set_time_limit(0);
pero no sirve de mucho ya que el hosting está en safe mode off, bueno pensaba hacer ésto con paginación de mail. osea que envie de 200 en 200 y entre ellos haga un header para redireccionar a la misma página con parámetros para enviar a los otros 200 y asi sucesivamente.
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 00:34.