PHP - Sacar datos de Base de datos y enviarlos por mail

   
Vista:

Sacar datos de Base de datos y enviarlos por mail

Publicado por Cachi (33 intervenciones) el 11/10/2015 05:26:42
Hola ! cómo estan ?
Sigo intentado aprender php y MySQL y avanzo poco a poco, con ayuda de lo que encuentro en internet y por supuesto de este foro !

Esta vez estoy tratando de, desde un archivo que llamé enviar_mail.php, enviar un mail utilizando la función mail de php a una dirección almacenada en la base de datos. En ese mail le quiero enviar otros datos almacenados en la base de datos: su usuario y clave.

El contenido del archivo enviar_mail.php que escribí es este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
include ("conect.php");
// Consulta
$query = "SELECT usuario, clave, email FROM $tabla1";
$result = mysql_query($query) or die(mysql_error());
if($row = mysql_fetch_array($execute)){
   //Guardo los datos de la BD en las variables de php
   $var1 = $row["usuario"];
   $var2 = $row["clave"];
   $var3 = $row["email"];
}
mail('".$var3."', "Mensaje", '".$usuario."');
// Cerrar conexión a la Base de Datos
mysql_close($link);
?>

La base de datos es esta:

1
CREATE TABLE tabla1 (id_usuario INT AUTO_INCREMENT PRIMARY KEY NOT NULL, usuario VARCHAR(10) NOT NULL, clave VARCHAR(15) NOT NULL, nombre VARCHAR(15) NOT NULL, apellido VARCHAR(15) NOT NULL, edad tinyint(3), email VARCHAR(30) NOT NULL, Sitio_Web VARCHAR(65));

El mensaje de error que me da al querer ejecutar enviar_mail.php es este:

Conecta okYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

¿Alguien sabe por qué enviar_mail.php no me funciona ?
La conexión con la base de datos me da mensaje correcto y la usé en otro script que escribí, así que ese no es el problema.


Gracias desde ya a quien pueda ayudarme !!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Sacar datos de Base de datos y enviarlos por mail

Publicado por Cachi (33 intervenciones) el 11/10/2015 07:20:59
Me respondo a mi mismo, por si le sirve a alguien !

Lo resolví de esta forma:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
include ("conect.php");
// Consulta
$result = mysql_query(" SELECT * FROM tabla1");
while ($row = mysql_fetch_row($result)){
$usuario = $row[1];
$clave = $row[2];
$email = $row[6];
}
$mensaje_mail = "Detalles del usuario:\n\n";
$mensaje_mail .= "usuario:\r\n";
$mensaje_mail .= $usuario;
$mensaje_mail .= "Clave:\r\n";
$mensaje_mail .= $clave;
$mail = "Prueba de mensaje";
//Titulo
$asunto = "Datos de usuario";
//cabecera
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
//dirección del remitente
$headers .= "From: pepe < pepe@gmail.com >\r\n";
//Enviamos el mensaje a tu_dirección_email
$bool = mail($email,$asunto,$mensaje_mail,$headers);
if($bool){
    echo "Mensaje enviado";
}else{
    echo "Mensaje no enviado";
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Sacar datos de Base de datos y enviarlos por mail

Publicado por xve (5520 intervenciones) el 11/10/2015 10:50:13
Hola Cachi, de la manera que lo haces, únicamente envías el correo al ultimo usuario de la base de datos, ya que en el bucle, vas sobreescribiendo las variables...

No se si es esto lo que quieres hacer... o si solo hay un registro en la base de datos, pero si hay dos registros, únicamente enviaras un correo al ultimo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Sacar datos de Base de datos y enviarlos por mail

Publicado por Cachi (33 intervenciones) el 11/10/2015 16:33:23
Hola !

Sí, en principío tengo un solo registro... ¿Cómo debería ser si tuviera más de 1 ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Sacar datos de Base de datos y enviarlos por mail

Publicado por xve (5520 intervenciones) el 11/10/2015 18:47:46
Deberias de hacer tantos envios como correos tengas en la base de datos... algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
include ("conect.php");
// Consulta
$result = mysql_query(" SELECT * FROM tabla1");
while ($row = mysql_fetch_row($result)){
	$usuario = $row[1];
	$clave = $row[2];
	$email = $row[6];
 
	$mensaje_mail = "Detalles del usuario:\n\n";
	$mensaje_mail .= "usuario:\r\n";
	$mensaje_mail .= $usuario;
	$mensaje_mail .= "Clave:\r\n";
	$mensaje_mail .= $clave;
	$mail = "Prueba de mensaje";
	//Titulo
	$asunto = "Datos de usuario";
	//cabecera
	$headers = "MIME-Version: 1.0\r\n";
	$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
	//dirección del remitente
	$headers .= "From: pepe < pepe@gmail.com >\r\n";
	//Enviamos el mensaje a tu_dirección_email
	$bool = mail($email,$asunto,$mensaje_mail,$headers);
	if($bool){
		echo "Mensaje enviado";
	}else{
		echo "Mensaje no enviado";
	}
}
?>

Fíjate en el cierre del while...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Sacar datos de Base de datos y enviarlos por mail

Publicado por Cachi (33 intervenciones) el 11/10/2015 19:31:23
Genial, muchas gracias amigo !!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar