felices fiestas a todos/as
![Corazón](http://static.forosdelweb.com/fdwtheme/images/smilies/love.png)
![Corazón](http://static.forosdelweb.com/fdwtheme/images/smilies/love.png)
![Corazón](http://static.forosdelweb.com/fdwtheme/images/smilies/love.png)
![Corazón](http://static.forosdelweb.com/fdwtheme/images/smilies/love.png)
![Corazón](http://static.forosdelweb.com/fdwtheme/images/smilies/love.png)
| ||||
Respuesta: envios newsletter cada cincuenta emails Hola de nuevo. si, ya había leído que era así lo que no entiendo como hacerlo. haber. yo ahora mismo tengo la consulta sql='SELECT email from newsletter' con esa consulta me los envía. pero supongamos que tengo 300 emails. se eternizaría. tú dices hacer esta consulta: sql='SELECT email from newsletter LIMIT 50' mis preguntas: esto saca los 50 primeros. pero, y después como hace para ejecutar otra vez a partir del 51 en el mismo proceso, sin reiniciarlo nuevamente. no entiendo como hacerlo. ayudadme por favor.... ![]() ![]() ![]() |
| |||
Respuesta: envios newsletter cada cincuenta emails limit primer_registro, numero_registros Primeros 50: SELECT email from newsletter LIMIT 0,50 Segundos: SELECT email from newsletter LIMIT 50,50 tercero: SELECT email from newsletter LIMIT 100,50 SELECT email from newsletter LIMIT 150,50 SELECT email from newsletter LIMIT 200,50 SELECT email from newsletter LIMIT 250,50 |
| ||||
Respuesta: envios newsletter cada cincuenta emails si....ese sería el caso para el supuesto de que conocieramos que hay 300 emails en la base de datos pero ¿y si desconocemos el número de emails que puede haber? porque en el sistema de newsletter se van registrando según quieran los visitantes de la web...como se haría? ![]() ![]() ![]() |
| |||
Respuesta: envios newsletter cada cincuenta emails Despues de cada select, puedes ejecutar un mysql_num_rows() para saber el numero de registros que te ha devuelto el select, si es cero es que ya no hay mas registros. |
| |||
Respuesta: envios newsletter cada cincuenta emails Primero haces una consulta para sacar el número total de mails que tienes en la tabla. Luego haces un bucle, del estilo de:
Código php:
Ver original |
| ||||
o sea, que esto estaría más o menos bien? Contamos el número de emails que hay: Código PHP: Código PHP: ![]() ![]() ![]() voy bien? por favor necesito vuestra ayuda¿? ![]() ![]() ![]() buff...no se si es asi o no....que lio.... Última edición por GatorV; 29/12/2008 a las 11:24 |
| ||||
Respuesta: envios newsletter cada cincuenta emails Una pregunta, lo haz intentado? Es más facil si lo intentas a que si nos dices si esta bien o no a nosotros. Saludos. |
| ||||
Respuesta: envios newsletter cada cincuenta emails hola gatorv. gracias por tu respuesta. la pregunta te la hago yo a ti: verdaderamente crees que si no lo hubiera intentado os pediria ayuda? lo que sucede es que en mi base de datos actualmente no hay ni 1000, ni 300 ni tan siquiera 100 emails con lo cual desconozco si la aplicacion funciona o no; si el planteamiento que expongo con la ayuda de todos vosotros es correcto o simplemente si funciona la historia o no. parafraseando a bilbo bolsom desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen. y aunque hago adelantos a veces aun me cuesta. de cualquier manera si hay gente en el foro que se siente molesta porque las novatas preguntemos quizas seria necesario plantearse el sentido del mismo. gracias de cualquier manera, a ti tambien gatorv. si alguien mas tiene a bien echarme una mano le estare eternamente agradecida.... ![]() ![]() ![]() |
| |||
Respuesta: envios newsletter cada cincuenta emails Aún así hay maneras de probarlo... A simple vista nos puede parecer que funciona, pero quizás en la práctica haya algo mal... La única manera de estar seguro es probando. Si tu BDD no tiene tantos registros, crealos. Sólo necesitas un simple script que cree registros a diestro y siniestro, en un minuto tendrás mil, o diez mil, para hacer pruebas. Por otra parte, la lógica del código me parece correcta, no sé si será lo más optimo, pero se basa en lo que querías: hacer consultas y envios de 50 en 50. Otra opción es la que te planteaba DarkJ, aunque es bastante parecida, sólo que el bucle sería un while (o mejor un do while) y la condición de salida sería que la consulta no arroje resultados. Pero insisto, por mucho que nosotros posteemos código y creemos que es correcto, la única manera de saber si realmente funciona es probandolo, y eso debe ser trabajo tuyo. Edito: En tu caso hay más formas de probarlo sin tener tantos registros. Simplemente baja el número de elementos de 50 a 10, ó 5... Pero lo más fiable es insertar datos en la BDD. Edito otra vez para comentar un poco el código: La primera consulta no es del todo óptima estás sacando todos los campos de la tabla, cuando sólo te interesa saber cuántos elementos hay. Un Count iría mejor. Con la opción de DarkJ te ahorrarías esa consulta (te puede compensar si la tabla es muy grande). Y $num_total; sobra. |
| ||||
Respuesta: envios newsletter cada cincuenta emails bueno, pues con la solución que planteaba más arriba lo que hace pongo lo siguiente: contamos el número de registros: Código PHP: Código PHP:
__________________ desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen |
| |||
Respuesta: envios newsletter cada cincuenta emails ¿Has hecho un echo de $num_total? A veces en esto de la programacion resulta practico coger lapiz y papel y desarrollar los bucles con los valores de las variables. |
| |||
Respuesta: envios newsletter cada cincuenta emails Si no funciona intenta ir poco a poco, vete mostrando las variables... lo más útil es hacer primero el for (sin el envío) para ver si lo hace todo bien, para ello, en vez de hacer la consulta, simplemente muestrala por pantalla para comprobar que es correcta:
Código php:
Ver original Si esto lo hace bien, el problema es otro. Pero la regla de oro es saber qué hace el script en cada momento, y para eso lo mejor es ir imprimiendo en pantalla las variables. |
| |||
Respuesta: envios newsletter cada cincuenta emails Cita: Realmente lo mejor es usar un debugger, pero eso ya es complicar el tema (configurar servidor, cliente, etc). El echo (o print) es el debugger de los pobres, y sirve de apaño rapido, simple y funcional. Pero la regla de oro es saber qué hace el script en cada momento, y para eso lo mejor es ir imprimiendo en pantalla las variables. |
| |||
Respuesta: envios newsletter cada cincuenta emails Bueno, a mi para la mayoría de los casos me sirve con una función propia que muestra en pantalla o guarda en un log... incluso se puede hacer que lo vaya mostrando en una ventana nueva (pero eso ya es más intrusivo). Para sistemas de andar por casa me vale con mensajitos que me digan en qué parte del script está (para ver cuando entra en una función, las veces que se repite un bucle... y que muestre el contenido de variables críticas). Si la cosa es más grande, complicada y enrevesada si que viene bien un debugger en condiciones. Volviendo al tema (para no desviarse mucho), yo creo que el for puede estar bien, y la consulta debería ir bien por lo sencilla que es (aunque yo lo haría con un count). Y si no se necesita saber el total de registros antes de empezar el envío es más óptima la opción del while. Edito: Aunque coincido en que lo mejor es el debugger de verdad, debería haber dicho que "lo mejor en éste caso" era imprimir las variables en pantalla! |
| ||||
Respuesta: envios newsletter cada cincuenta emails esa parte va perfecta. tengo ahora mismo 5 emails (la he reducido para trabajar sobre ella). resultado de la consulta: 5 SELECT email FROM newsletter LIMIT 0, 2 SELECT email FROM newsletter LIMIT 2, 2 SELECT email FROM newsletter LIMIT 4, 2 entonces, ¿por qué narices no me envía nada mas que al primer email de la base de datos? ![]() ![]() ![]()
__________________ desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen |
| |||
Respuesta: envios newsletter cada cincuenta emails Umm, ¿Te envía el primero? ¿o el segundo? tienes un mysql_fetch_array de más. El primero sobraría. Y ahora que sabes que el For parece que va bien.. vamos a por el while. Dentro de él simplemente ha un echo del row: echo $datosmail[0].'<br>'; |
| |||
Respuesta: envios newsletter cada cincuenta emails Avanza un nivel, pon un echo dentro del while que recorre la consulta y envia el email. Por cierto, ¿exactamente a que te refieres con que no envia el email? Quizas a lo que tu te refieres es que no estas recibiendo los emails en los buzones de correo de destino. Parece lo mismo, pero no lo es. El codigo PHP puede estar ejecutandose correctamente, pero los emails no llegar por problemas en los otros actores. PHP no envia los emails al destino. Lo que hace es pasar los datos del email al programa que se encarga de enviar los emails (sendmail o un servidor smtp). Luego ese programa o servidor puede decidir no enviar el email. Y por ultimo, el servidor de correo destino puede decidir no aceptar el email (lo normal con hotmail, que mete el email como spam). ¿Donde estas haciendo las pruebas? ¿Sabes si tiene limitaciones respecto al envio de emails? Algunos hostings limitan el numero de emails que se pueden enviar por hora, minuto o segundo, para evitar que los spamers se aprovechen de scripts defectuosos. |
| ||||
Respuesta: envios newsletter cada cincuenta emails Hola de nuevo. Bueno, deciros que sé que algo falla porque antes de que decidiera hacer el envío por "lotes" cuando lo hacía todo de una vez, llegaban a los 5 emails. ahora hago todo correcto pero qué sucede? pues supongamos que los envios los hago de dos en dos; pues me envía a los dos primeros emails pero después no continua el proceso....y no sé por qué.... ![]() ![]() ![]()
__________________ desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen |
| |||
Respuesta: envios newsletter cada cincuenta emails Estamos en las mismas: Y postea todo el código junto para ver qué hace dentro del while... |
| ||||
Respuesta: envios newsletter cada cincuenta emails en el while me muestra los 5 emails de la base de datos....va correcto....
__________________ desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen |
| |||
Respuesta: envios newsletter cada cincuenta emails Te muestra todos los correos de la tabla? Es decir, entre en el for, entra en el while, hace las dos iteraciones, sale, vuelve a hacer la consulta y entra de nuevo en el while, así hasta el final ?¿? Si esto lo hace bien el problema está en algún otro punto del while, cuando hace los envios, postea el código que tienes dentro del while. |
| ||||
Respuesta: envios newsletter cada cincuenta emails mira. como os digo uso la clase phpmailer. este es mi codigo: Código PHP:
__________________ desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen |
| |||
Estás haciendo una redirección: header ("Location: exitonewsletter.php"); Además, esa redirección te daría problemas en caso de que entre en el if anterior, ya que al manda el echo al navegador se mandan las cabeceras y no pueden volver a enviarse. Por otra parte sería mucho más usable si te creas una función que mande un mail, así sólo la tienes que llamar desde el while pasándole como parámetro la dirección de correo. Y todas las variables (Servidor, asunto, cuerpo, remitente, etc...) estarían mejor definidas al principio de esta nueva función, de modo que sea más fácil de mantener, modificar y depurar en caso necesario. Última edición por GatorV; 30/12/2008 a las 10:43 |
| ||||
Respuesta: envios newsletter cada cincuenta emails he quitado la redireccion y nada....sigue enviando pero unicamente a los dos primeros. si opto por coger los bloques de 3 en 3 pues coge los tres primeros y asi cada vez.... debe haber algo mas en lo que falle el planteamiento...no me lo explico
__________________ desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen |
| |||
Respuesta: envios newsletter cada cincuenta emails ¿Y te da algún error? ¿Termina de ejecutar el script? Si pones algún echo fuera de todos los bucles, al final, ¿Se muestra? Tendrías que empezar a poner echos para ver dónde se está quedando... |
| ||||
Respuesta: envios newsletter cada cincuenta emails si los hace....el fallo esta en el select y el limit....es como si no cogiera el limit salvo que debe coger los dos primeros pero no coge el maximo....ahi esta el fallo pues todo lo demas lo ejecuta
__________________ desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen |