PHP - Enviar correo al guardar registro (envía siempre el mismo)

 
Vista:
sin imagen de perfil

Enviar correo al guardar registro (envía siempre el mismo)

Publicado por Slayer (11 intervenciones) el 16/04/2018 22:09:26
que tal, espero encontrarlos bien,
me pasa que intento enviar un correo con campos de una tabla mysql, si envía el correo, el problema es que envía el mismo, por ejemplo al guardar un segundo o un tercer registro envía el correo con los datos del primer registro guardado.
Les muestro código:

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<?php
	require 'PHPMailer/PHPMailerAutoload.php';
	require 'conexion.php';
 
	$fecha = $_POST['fecha'];
	$proveedor = $_POST['proveedor'];
	$orden_compra = $_POST['orden_compra'];
	$num_req = $_POST['num_req'];
	$material = $_POST['material'];
	$linea = $_POST['linea'];
	$contrato = $_POST['contrato'];
	$fecha_req_contr = $_POST['fecha_req_contr'];
	$cliente = $_POST['cliente'];
	$importe_cheque = $_POST['importe_cheque'];
	$importe_ret = $_POST['importe_ret'];
	$moneda = $_POST['moneda'];
	$tipo = $_POST['tipo'];
	$cuenta_cargo = $_POST['cuenta_cargo'];
	$credito_cheque = $_POST['credito_cheque'];
	$factura = $_POST['factura'];
 
	$sql = "INSERT INTO registros (
	fecha,
	proveedor,
	orden_compra,
	num_req,
	material,
	linea,
	contrato,
	fecha_req_contr,
	cliente,
	importe_cheque,
	importe_ret,
	moneda, 
	tipo,
	cuenta_cargo,
	credito_cheque,
	factura) 
	 VALUES ('$fecha', '$proveedor', '$orden_compra', '$num_req', '$material', '$linea', '$contrato', '$fecha_req_contr', '$cliente', '$importe_cheque', '$importe_ret', '$moneda', '$tipo',
	 '$cuenta_cargo', '$credito_cheque', '$factura')";
	$resultado = $mysqli->query($sql);
	echo $sql;
 
if($sql){
	$sqlConf="SELECT * FROM registros";
$resultConf= $mysqli->query($sqlConf);
$row= $resultConf->fetch_assoc();
 
$mail = new PHPMailer();
 
$mail ->isSMTP();
$mail->SMTPAuth= true;
$mail->SMTPSecure = 'ssl';
$mail->Host = 'smtp.gmail.com';
$mail->Port = 465;
$mail->Username = '[email protected].com';
$mail->Password = '123123'; // SMTP password
$mail->From = "[email protected].com";
$mail->FromName = '123';
 $mail->Subject ='reporte de pago critico';
//  Importe : <b>".$importe_c."</b> M.N.<br> 
 $mail->IsHTML(true);
 
 $mail->Body="<b> Fecha: </b><br>". $row['fecha'].  "<br><br><b> Cliente: </b><br>" . $row['cliente'].
"<br> <br><b>Nombre del proveedor:</b><br> " . $row['proveedor'].
"<br><br><b> Orden de compra: </b><br>". $row['orden_compra']. "<br> <br><b>Número de requisición:</b><br> " . $row['num_req'].
"<br><br><b> Material: </b><br>". $row['material'].
"<br> <br><b>Linea:</b><br> " . $row['linea'].
"<br><br><b> Contrato: </b><br>". $row['contrato'].
"<br><br><b>Fecha requisición de contrato:</b><br> " . $row['fecha_req_contr'].
"<br><br><b>importe_cheque:</b><br>" . $row['importe_cheque'].
"<br><br><b>Importe retención: </b><br>". $row['importe_ret'].
"<br> <br><b>Moneda:</b><br> " . $row['moneda'].
"<br><br><b>Tipo: </b><br>". $row['tipo'].
"<br> <br><b>Cuenta cargo:</b><br> " . $row['cuenta_cargo'].
"<br><br><b> Credito : </b><br>". $row['credito_cheque'].
"<br> <br><b>Factura:</b><br> " . $row['factura'];
 
 
$mail->AltBody = "This is the body in plain text for non-HTML mail clients";}
if(!$mail->Send())
            { echo "Enviado <p>";
           		echo "Error: " . $mail->ErrorInfo;
               exit;
            } echo "Message has been sent";
        }
 
mysqli_close($mysqli);
exit;
?>
 
<html lang="es">
	<head>
 
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<link href="css/bootstrap.min.css" rel="stylesheet">
		<link href="css/bootstrap-theme.css" rel="stylesheet">
		<script src="js/jquery-3.1.1.min.js"></script>
		<script src="js/bootstrap.min.js"></script>
	</head>
 
	<body>
		<div class="container">
			<div class="row">
				<div class="row" style="text-align:center">
					<?php if($resultado) { ?>
						<h3>REGISTRO GUARDADO</h3>
						<?php } else { ?>
						<h3>ERROR AL GUARDAR</h3>
					<?php } ?>
 
					<a href="index.php" class="btn btn-primary">Regresar</a>
 
				</div>
			</div>
		</div>
	</body>
</html>
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
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Enviar correo al guardar registro (envía siempre el mismo)

Publicado por Alejandro (674 intervenciones) el 17/04/2018 14:56:42
Estas consultando todos los registros
1
$sqlConf="SELECT * FROM registros";

una vez obtenidos solo trabajas sobre el primero

Puedes generar el correo con las variables que creaste el insert o consultar el ultimo registro,

Si tubieras por ejemplo un campo id
1
$sqlConf="SELECT * FROM registros ORDER BY id DESC LIMIT 1";


o mas especifico con el id de tu insert
1
2
3
$last_id = mysqli_insert_id($conn);
...
$sqlConf="SELECT * FROM registros WHERE id=$last_id ";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Enviar correo al guardar registro (envía siempre el mismo)

Publicado por Slayer (11 intervenciones) el 17/04/2018 15:16:41
MUY BIEN!! SOLUCIONADO, GRACIAS GRACIAS!!
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