Foros del Web » Programando para Internet » PHP »

No logro enviar consulta por mail

Estas en el tema de No logro enviar consulta por mail en el foro de PHP en Foros del Web. Hola, Tengo este script para enviar por mail los datos de una base mysql, lo que pasa es que no logro enviar más que un ...
  #1 (permalink)  
Antiguo 19/01/2006, 14:00
 
Fecha de Ingreso: agosto-2004
Ubicación: Valencia
Mensajes: 149
Antigüedad: 19 años, 8 meses
Puntos: 0
No logro enviar consulta por mail

Hola,
Tengo este script para enviar por mail los datos de una base mysql, lo que pasa es que no logro enviar más que un resultado, no todos, he probado de todas las formas pero no logro hacerlo, a ver si alguien puede ayudarme.
Código PHP:

<?php 
include ('includes/conexion.php');
$query "SELECT * FROM entrevistas ORDER BY id DESC LIMIT 5";
$result mysql_query($query);
$fila=mysql_fetch_object($result);
$query2 "SELECT * FROM archivos ORDER BY id DESC LIMIT 5";
$result2 mysql_query($query2);
$fila2=mysql_fetch_object($result2);
$destinatario "[email protected]"
$responder="[email protected]"
$remite="[email protected]"
$remitente="www.a.org"
$cabecera ="Date: ".date("l j F Y, G:i")."\n"
$cabecera .="MIME-Version: 1.0\n";
$cabecera .="From: ".$remitente."<".$remite.">\n"
$cabecera .="Return-path: "$remite."\n"
$cabecera .="Reply-To: ".$responder."\n"
$cabecera .="X-Mailer: PHP/"phpversion()."\n";
$cabecera .="Content-Type: text/html; charset=\"ISO-8859-1\"\n"
$asunto "Novedades de www.a.org"
$cuerpo "<html><body bgcolor=\"#000000\" font color=\"ffffff\"><a href=\"http://www.al.info\"><img src=\"http://www.a.info/iconos/logo.gif\" border=\"0\"></a>
<p><font color=\"ffffff\">Hola, comentarios
<p><font color=\"ffffff\">Último programa:
<br><table><tr><font color=\"ffffff\">$fila->nombre :: $fila->tema 
<tr><td><font color=\"ffffff\"><a href=\"http://www.l.php?entrevista=$fila->id\"><td><font color=\"ffffff\">$fila->texto_portada</p></td></tr>
</table>
<p><font color=\"ffffff\">Último reportaje:
<br><table><tr><font color=\"ffffff\">$fila2->nombre :: $fila2->autor 
<tr><td><font color=\"ffffff\"><a href=\"http://www.l.php?articulo=$fila2->id\"><td><font color=\"ffffff\">$fila2->texto_portada</p></a></td></tr>
</table>
<br><br><br><p>Publicidad:"
;
mail($destinatario,$asunto,$cuerpo,$cabecera); 
echo 
"Email enviado";
?>
Así logicamente me envía solo un resultado por que no hay while, pero donde lo implemento para que no de error y funcione, no he sido capaz, cualquier comentario o sugerencia será bienvenida.
Salu2.
  #2 (permalink)  
Antiguo 19/01/2006, 18:40
Avatar de 2D6
2D6
 
Fecha de Ingreso: enero-2006
Ubicación: Posadas, Misiones
Mensajes: 60
Antigüedad: 18 años, 3 meses
Puntos: 4
Yo hice algo, no se si es parececido pero si se me conplico bastante cuando lo hice
Te lo pego para que lo veas y a ver si te sirve de idea:

Código PHP:

$result 
mysql_query ("SELECT c.idcliente, c.nombrecompleto, MAX(pa.fecha) AS fechapago, pa.importepago FROM clientes AS c, pagos AS pa WHERE c.piso = '$piso' AND c.r_cuenta='1' AND pa.idcliente = c.idcliente GROUP BY c.idcliente ORDER BY c.nombrecompleto ASC");
$numeroRegistros=mysql_num_rows($result);
while(
$r=mysql_fetch_array($result))
{
     
$idcliente=$r["idcliente"];
    
$nombrecliente=$r["nombrecompleto"];
    
$importepago=$r["importepago"];
             
$fechapago=$r["fechapago"];

$result2 mysql_query ("SELECT * FROM clientes as c, pagos as pa WHERE c.idcliente='$idcliente' AND pa.idcliente='$idcliente'");
$numeroRegistros2=mysql_num_rows($result2);
while(
$r=mysql_fetch_array($result2))

    
$email=$r["email"];

$result3 mysql_query ("SELECT SUM(d.cantidad * pr.importe) as totalcuenta FROM pedido as p, detalle as d, productos as pr WHERE p.idcliente='$idcliente' AND p.fecha>'$fechapago' AND p.idpedido = d.idpedido AND d.idproducto = pr.idproducto AND p.fecha");
$numeroRegistros3=mysql_num_rows($result3);
while(
$r=mysql_fetch_assoc($result3))

   
$totalcuenta=$r["totalcuenta"];

$result4 mysql_query ("SELECT MAX(p.fecha) as fecha FROM pedido as p WHERE idcliente='$idcliente'");
$numeroRegistros2=mysql_num_rows($result4);
while(
$r=mysql_fetch_assoc($result4))
    
   
$fecha=$r["fecha"];


$server_name "direccion web";


$person_name "$nombrecliente";


$person_email ="$email";

$header "MIME-Version: 1.0\n";
$header .= "Content-Type: text/html; charset=iso-8859-1\n";
$header .="From: info@$server_name\nReply-To: info@$server_name\nX-Mailer: PHP/";


$mensaje "<style type='text/css'>
<!--
body {
    background-color: #CCCCCC;
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
}
.Estilo1 {
    font-family: Arial, Helvetica, sans-serif;
    font-weight: bold;
    color: #FFFFFF;
}
.Estilo2 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-weight: bold;
    font-size: 12px;
    color: #FFFFFF;
}
.Estilo3 {color: #FF0000}
.Estilo4 {
    color: #CCCCCC;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-weight: bold;
    font-size: 10px;
}
.Estilo5 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-weight: bold;
    font-size: 10px;
    color: #FFFFFF;
}
.Estilo6 {font-size: 10}
a:link {
    color: #FFFFFF;
    text-decoration: none;
}
a:visited {
    text-decoration: none;
    color: #FFFFFF;
}
a:hover {
    text-decoration: underline;
    color: #FFFFFF;
}
a:active {
    text-decoration: none;
    color: #FFFFFF;
}
-->
</style></head>

<body>
 <table width='80%'  border='1' align='center' cellpadding='10' cellspacing='0' bordercolor='#000000'>
 <tr>
 <td bgcolor='#0C66A4'><table width='100%'  border='0' cellpadding='10' cellspacing='0' bgcolor='#0B588C' bordercolor='#FFFFFF'>
       <tr>
         <td><img src='direccion web/consulta/logo_chico2.gif' width='176' height='30'></td>
         <td><div align='right' class='Estilo1'>RESUMEN DE CUENTA CORRIENTE</div></td>
       </tr>
     </table>
       <p class='Estilo2'>Estimado $person_name,</p>
       <p class='Estilo2'>Queremos informarle que el total de su cuenta corriente al dia <b>$fecha</b> es de <font face='verdana' size='2' color='#FF0000'>$$totalcuenta</font></b></p>
       <table width='100%'  border='0' cellspacing='0' cellpadding='0'>
         <tr>
           <td width='6%'><img src='direccion web/tras/lupa.gif' width='29' height='32'></td>
           <td width='94%'><span class='Estilo2'>Si Ud. desea ver el resumen de sus consumos puede hacerlo haciendo click <span class='Estilo3'><a href='/consulta/preloader_consulta.php?idcliente=$idcliente&piso=$piso' target='_blank'>AQUI</a></span></span></td>
         </tr>
       </table>
       <p class='Estilo2'>Recuerde que Ud. puede consultar este rusumen de cuenta en el momento que desee en nuestro sitio web, en la sección Consulta de Cuenta On-Line</b></p>
       <p class='Estilo2'>Atte. Tu Empresa.</p>
       <table width='100%'  border='0' cellpadding='0' cellspacing='0' bgcolor='#0B588C' bordercolor='#FFFFFF'>
         <tr>
           <td width='50%'><p align='center' class='Estilo5'>Sitio Web:              <a href='direccion web>direccion web</a></p>
             </td>
           <td height='20'><div align='center' class='Estilo5'>Internos: 1933 :: 1947 :: 82317 </div></td>
         </tr>
         <tr>
           <td height='20' colspan='2'><div align='center' class='Estilo5'>E-Mail: <a href='mailto:[email protected]'>[email protected]</a></div></td>
         </tr>
       </table>
     </td>
   </tr>
 </table>"
;
# Función de envío del mensaje

mail("$person_email","Resumen de cuenta corriente","$mensaje","$header");
}
echo (
"<br>$numeroRegistros emails enviados<br>");
echo (
"<br>Ultimo piso enviado:$piso"); 
Bueno, lo que esto hace es buscar todos los clientes del piso ingresado en un formulario anterior y busca el ultimo pago de cada uno y que pedidos tiene con fecha mayor a ese ultimo pago y suma los totales de esos pedidos, de ahi sale la variable $totalcuenta que es la unica que imprimo, ahi manda un email a cada cliente con su total.
Realmente no se si se puede imprimir varios resultados, creo que mis conocimientos no llegan a tanto.
De lo que si estoy seguro que no funciona (por que lo intente) es mandar una consulta en el cuerpo del mensaje y que funcione :p

Bueno, espero que te sirva de algo y suerte!!!!
  #3 (permalink)  
Antiguo 20/01/2006, 07:53
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
:S wow jejejejeje no entendi para nada el code
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #4 (permalink)  
Antiguo 20/01/2006, 08:00
 
Fecha de Ingreso: agosto-2004
Ubicación: Valencia
Mensajes: 149
Antigüedad: 19 años, 8 meses
Puntos: 0
Gracias 2d6, efectivamente no funciona hace la consulta en el cuerpo del mensaje pero si la hago antes cuando incluyo el while me repite todo, y yo solo quiero repetir dos cosas determinadas. Se que se puede hacer por que me han llegado mails de estas características, con un encabezamiento y luego varias consultas, como última opición queda hacerlo a mano, es decir, el html puro y duro, pero teniendo php me parece una tontería.
A ver si alguien tiene idea de como se hace.
Salu2.
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 08:15.