Foros del Web » Programando para Internet » PHP »

Bucle while dentro de mail()

Estas en el tema de Bucle while dentro de mail() en el foro de PHP en Foros del Web. Holas, Tengo un scrip para enviar mails a las personas suscritas a una lista de correo, hasta aquí todo bien. El problema viene cuando quiero ...
  #1 (permalink)  
Antiguo 22/03/2005, 02:56
 
Fecha de Ingreso: agosto-2004
Ubicación: Valencia
Mensajes: 149
Antigüedad: 13 años, 4 meses
Puntos: 0
Bucle while dentro de mail()

Holas,
Tengo un scrip para enviar mails a las personas suscritas a una lista de correo, hasta aquí todo bien.
El problema viene cuando quiero enviar varios resultados de una consulta, sólo me aparece el primero, he probado a insertar while dentro del asunto del mail pero no me funciona, os paso el código a ver si me podeis ayudar.
Código PHP:
<?php 
require("conexion.php");
$sql="SELECT * FROM tabla ORDER BY id DESC LIMIT 10";
$res=mysql_query($sql);
$fila=mysql_fetch_object($res);
$destinatario "[email protected]"
$dominio substr (strrchr ($fila3->email"@"), 1);
if(
$dominio=="hotmail.com")
 {
$responder="[email protected]"
$remite="[email protected]"
$remitente="www.pagina.com"
$headers "MIME-Version: 1.0\r\n"
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n"
$headers .="X-Mailer: PHP/"phpversion()."\r\n";
$headers .= "From: $remitente\r\n"
//dirección de respuesta, si queremos que sea distinta que la del remitente 
$headers .= "Reply-To: $email\r\n"
$asunto "Novedades de www.pagina.com"
$cuerpo "<html><LINK REL=\"stylesheet\" MEDIA=\"screen\" TYPE=\"text/css\" HREF=\"http://www.pagina.com/stils/stilo1.css\"><a href=\"http://www.pagina.com\"><img src=\"http://pagina.com/images/header/header_01.gif\" WIDTH=273 HEIGHT=78\" border=\"0\"></a>
<p><font color=\"ffffff\">Hola, le ofrecemos las novedades de esta semana en nuestra página www.pagina, esperamos que
sean de su agrado.
<p><font color=\"ffffff\">Últimos archivos:
<table>
///aquí probé el while y no funcionó
<tr>
<tr>
       <td><a href=\"http://www.pagina.com/fotos.php?id=<? echo $fila->id; ?>&rt=1\"><img src=\"http://www.pagians.com/images/<? echo $fila->foto; ?>.gif\" width=\"60\" height=\"60\" border=\"0\" align=\"absmiddle\" alt=\"<? echo $fila->nombre; ?>\"></a>    <a href=\"http://www.paginas.com/fotos.php?id=<? echo $fila->id; ?>&rt=1\"><? echo $fila->nombre; ?></a>

        </td> 
       <td align=\"center\">
       <a href=\"http://www.pagina.com/paises.php?pais=<? echo $fila->pais; ?>\">
       <img src=\"http://www.pagina.com/images/paises/<? echo $fila->bandera; ?>.gif\" border=\"0\" align=\"absmiddle\" alt=\"Ver de <? echo $fila->pais; ?>\" width=\"18\" height=\"12\"></a>
       </td> 
       <td class=\"menunegreta\" align=\"center\"><? echo $fila->num_fotos; ?></a></td>
       <td class=\"menunegreta\" align=\"center\"><? echo $fila->visitas; ?></a></td>
       <td align=\"center\">
</td> 
    </tr> 
///aquí acaba el while

    </table>
</html>
"
;
mail($destinatario,$asunto,$cuerpo,$headers); 
}
}
Lo que hace simplemente es comprobar que el correo es de hotmail y enviar el mail, probé a hacer un while justo antes de empezara a imprimir:
Código PHP:
while ($fila=mysql_fetch_object($res)) { } 
Se aceptan sugerencias, gracias.
  #2 (permalink)  
Antiguo 22/03/2005, 03:14
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... no debe de haber ningún problema. En si el bucle no esta dentro de la función mail().
Lo único que harias es ir aumentando una variable... quizá en eso esté tu error; debería ser algo como:
Código PHP:
while ($fila=mysql_fetch_object($res)) {
// $asunto.=$fila['campo'];
$asunto .= $fila->campo//??
// no se el uso adecuado de mysql_fetch_object... 

Espero te ayude. Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 22/03/2005 a las 03:27 Razón: Errores HORRIBLES de ortografía.
  #3 (permalink)  
Antiguo 23/03/2005, 11:34
 
Fecha de Ingreso: agosto-2004
Ubicación: Valencia
Mensajes: 149
Antigüedad: 13 años, 4 meses
Puntos: 0
Pues me sigue sin funcionar, se ve que al estar el while() dentro del cuerpo del correo no coge las variables de la búsqueda anterior y además no deja hacer otras búsquedas, alguien tiene idea de como hacer esto?
Gracias anticipadas.
  #4 (permalink)  
Antiguo 25/03/2005, 03:32
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 14 años, 10 meses
Puntos: 0
Puedes intentar probar esto si quieres
Código PHP:
<?php 
require("conexion.php"); 
$sql="SELECT * FROM tabla ORDER BY id DESC LIMIT 10"
$res=mysql_query($sql); 
while(
$fila=mysql_fetch_object($res)) { // empieza el while
$destinatario "[email protected]"
$dominio substr (strrchr ($fila3->email"@"), 1); 
if(
$dominio=="hotmail.com"

$responder="[email protected]"
$remite="[email protected]"
$remitente="www.pagina.com"
$headers "MIME-Version: 1.0\r\n"
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n"
$headers .="X-Mailer: PHP/"phpversion()."\r\n"
$headers .= "From: $remitente\r\n"
//dirección de respuesta, si queremos que sea distinta que la del remitente 
$headers .= "Reply-To: $email\r\n"
$asunto "Novedades de www.pagina.com"
$cuerpo "<html><LINK REL=\"stylesheet\" MEDIA=\"screen\" TYPE=\"text/css\" HREF=\"http://www.pagina.com/stils/stilo1.css\"><a href=\"http://www.pagina.com\"><img src=\"http://pagina.com/images/header/header_01.gif\" WIDTH=273 HEIGHT=78\" border=\"0\"></a> 
<p><font color=\"ffffff\">Hola, le ofrecemos las novedades de esta semana en nuestra página www.pagina, esperamos que 
sean de su agrado. 
<p><font color=\"ffffff\">Últimos archivos: 
<table> 
///aquí probé el while y no funcionó 
<tr> 
<tr> 
       <td><a href=\"http://www.pagina.com/fotos.php?id=<? echo $fila->id; ?>&rt=1\"><img src=\"http://www.pagians.com/images/<? echo $fila->foto; ?>.gif\" width=\"60\" height=\"60\" border=\"0\" align=\"absmiddle\" alt=\"<? echo $fila->nombre; ?>\"></a>    <a href=\"http://www.paginas.com/fotos.php?id=<? echo $fila->id; ?>&rt=1\"><? echo $fila->nombre; ?></a> 

        </td> 
       <td align=\"center\"> 
       <a href=\"http://www.pagina.com/paises.php?pais=<? echo $fila->pais; ?>\"> 
       <img src=\"http://www.pagina.com/images/paises/<? echo $fila->bandera; ?>.gif\" border=\"0\" align=\"absmiddle\" alt=\"Ver de <? echo $fila->pais; ?>\" width=\"18\" height=\"12\"></a> 
       </td> 
       <td class=\"menunegreta\" align=\"center\"><? echo $fila->num_fotos; ?></a></td> 
       <td class=\"menunegreta\" align=\"center\"><? echo $fila->visitas; ?></a></td> 
       <td align=\"center\"> 
</td> 
    </tr> 


    </table> 
</html> 
"

mail($destinatario,$asunto,$cuerpo,$headers); 



}  
// termina el while
todo esto suponiendo que según lo tienes te funcione bien ya que creo entender que te lo hace bien pero en el momento que encuentra uno no sigue mirando la tabla para ver si hay más, yo lo uso así y me funciona bien, espero haberte podido ayudar, ya contarás.
Por cierto la última llave es la del final del while acuerdate de ponerla, es que no sé porque no sale el comentario que pongo después de la llave
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 17:34.