Foros del Web » Programando para Internet » PHP »

Resultados de SQL dentro de Mail

Estas en el tema de Resultados de SQL dentro de Mail en el foro de PHP en Foros del Web. :) Mi problema es el siguiente: 1)Actualmente genero la información para un carro de compras...y me funciona perfectamente.....este s el código <?php $x=0; $totalfinal=0; $sql="select ...
  #1 (permalink)  
Antiguo 10/03/2002, 14:48
 
Fecha de Ingreso: febrero-2002
Ubicación: Molina - Chile
Mensajes: 27
Antigüedad: 15 años, 9 meses
Puntos: 0
Resultados de SQL dentro de Mail

:) Mi problema es el siguiente:
1)Actualmente genero la información para un carro de compras...y me funciona perfectamente.....este s el código
<?php
$x=0;
$totalfinal=0;
$sql="select * from enlinea where identificador='$pftew' order by id desc";
$link=conectarse();
$result=mysql_query($sql,$link);
$totalproductos=mysql_num_rows($result);
while($row = mysql_fetch_array($result)) {
$id=$row["id"];
$producto=$row["idproducto"];
$cantidad=$row["numproductos"];
$elname=$row["nombreproducto"];
$elname=strtoupper($elname);
$valor=$row["valor"];
$total=$cantidad*$valor;
$totalfinal=$totalfinal+$total;

$x=$x+1;

$valoramostrar=number_format ($valor, 0, '.', '.');
$totalamostrar=number_format ($total, 0, '.', '.');
?><tr>
<td width="15" valign="top"><b><font color="#333333"><?php echo"$cantidad";?></font></b></td>
<td width="220" align="left" style="font-family: Arial; font-size: 8 pt" valign="top"><font color="#CC0000"><b><?php echo"$elname";?></b></font></td>
<td width="80" valign="top"><font color="#333333"><b>$<?php echo"$valoramostrar";?>(c/u)</b></font></td>
<td width="80" valign="top"><font color="#CC0000"><b>$<?php echo"$totalamostrar";?></b></font></td>
</tr>

<?
}
$valorfinal=number_format ($totalfinal, 0, '.', '.');
?>

2) el problema es que esa información que devuelva la consulta SQl necesito enviarla por E-mail.....pero aun no entiendo como hacerlo, por que no puedo predifinir el valor de una variable..si fueran 5 productos, ya qe pùeden ser 1 hasta 100. ¿Como coloco el resultado de esta consulta dentro del cuerpo del Mail?.
De ante manos gracias.
  #2 (permalink)  
Antiguo 10/03/2002, 15:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Re: Resultados de SQL dentro de Mail

Como bien sabes, para eviar un mail desde tu sitio usando la funcion mail() tienes que pasarle los parametros de "FROM, TO, BODY, etc" a la funcion.

Para enviar el resultado de tu consulta (query) SQL, solo tienes que usar una variable "acomulador" concatenando las diferentes variables (en tu caso: rows que obtienes) para formar el "Body" del mensaje.

Un ejemplo seria:
$body_mail. ="/n". $cantidad." ".$producto." ".$elname;

Esta variable "acomulador" debe ir dentro del bucle (en tu caso el while) que lees los "rows" del resultado de la consulta SQL.

Observa que $body_mail. tiene un punto al final .. y q el resultado empieza por "/n" (salto de linea) .. de esta forma generamos una linea para cada "item" del carro de compras. El punto q hay en $body_mail es para concatenar los elementos segun sean leidos en el bucle ...

Utilizando la concatenacion de strings (cadenas de caracteres) ... puedes formar un "body" asi:

body_mail_total = "La cabecera del mail \n".$body_mail."\n el pie del mail";
(esta variable .. fuera del bucle q lee los datos de la consulta)

Con esto .. solo te faltaria enviar el mail usando la funcion mail() pasandole los demas parametros requeridos.

Como observacion .. tambien podrias generar un mail en formato HTML usando alguna libreria que gestiona los tipos MINE y de esta manera formatear mejor la presentacion y distribucion de los datos en el mail ..


Un saludo,
  #3 (permalink)  
Antiguo 11/03/2002, 02:51
 
Fecha de Ingreso: febrero-2002
Ubicación: Molina - Chile
Mensajes: 27
Antigüedad: 15 años, 9 meses
Puntos: 0
Re: Resultados de SQL dentro de Mail

Perfecto!!!!!!!!!!. Muchas gracias Cluster por tuv alioso tiempo que dedicaste en reponderme. Ahora ya entiendo lo he probado y funciona 100%. Muchas 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:38.