发送多封邮件时出错,应该只发送一封
Error send multiple emails, should send one only
大家好,我需要一些帮助...
我有一个小 php 脚本可以检查数据库是否为真,如果是则调用其他 php 并发送电子邮件,如果不是则什么也不做。
它有效,但他检查数据库,如果发现 3 个或更多的真实,他发送 3 个或更多的电子邮件:S
今天我发现了 1700+/- 邮件要阅读。
你能帮我发一封邮件吗?
谢谢
<?php
include'database.php';
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$now = date("Y-m-d");
$sql = "SELECT * FROM on_form_9 WHERE dias = '0'";
$diferencial_tempo = "UPDATE on_form_9 SET dias = DATEDIFF (actualizacao, NOW())";
if ($conn->query($diferencial_tempo) === TRUE) {
echo "DATA OK";
echo( " --- ");
} else {
echo "DATA ERRO" . $conn->error;
}
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
include'baterias_email.php';
}
} else {
echo "0 e-mails enviados";
}
$conn->close();
?>
按以下方式更改您的代码。由于我现在不知道 baterias_email.php 做什么,您可以更改该脚本以便根据需要从数据库中获取数据。您将拥有数组 $result
中的所有行。
<?php
include'database.php';
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$now = date("Y-m-d");
$sql = "SELECT * FROM on_form_9 WHERE dias = '0'";
$diferencial_tempo = "UPDATE on_form_9 SET dias = DATEDIFF (actualizacao, NOW())";
$sendEMail = false;
$result = [];
if ($conn->query($diferencial_tempo) === TRUE) {
echo "DATA OK";
echo( " --- ");
} else {
echo "DATA ERRO" . $conn->error;
}
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
//collect the data you need here and set a flag
$result[] = $row;
$sendEMail = true;
}
} else {
echo "0 e-mails enviados";
}
if ($sendEMail === true){
//change your baterias_email.php in order to use the array of rows $result if you need the data
include 'baterias_email.php';
}
$conn->close();
希望对您有所帮助
已修复,不知道如何让我逃脱 LOL
if ($conn->query($diferencial_tempo) === TRUE) {
echo "DATA OK";
include'baterias_email.php';
} else {
echo "DATA ERRO" . $conn->error;
}
删除其余部分:)
大家好,我需要一些帮助...
我有一个小 php 脚本可以检查数据库是否为真,如果是则调用其他 php 并发送电子邮件,如果不是则什么也不做。 它有效,但他检查数据库,如果发现 3 个或更多的真实,他发送 3 个或更多的电子邮件:S 今天我发现了 1700+/- 邮件要阅读。 你能帮我发一封邮件吗?
谢谢
<?php
include'database.php';
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$now = date("Y-m-d");
$sql = "SELECT * FROM on_form_9 WHERE dias = '0'";
$diferencial_tempo = "UPDATE on_form_9 SET dias = DATEDIFF (actualizacao, NOW())";
if ($conn->query($diferencial_tempo) === TRUE) {
echo "DATA OK";
echo( " --- ");
} else {
echo "DATA ERRO" . $conn->error;
}
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
include'baterias_email.php';
}
} else {
echo "0 e-mails enviados";
}
$conn->close();
?>
按以下方式更改您的代码。由于我现在不知道 baterias_email.php 做什么,您可以更改该脚本以便根据需要从数据库中获取数据。您将拥有数组 $result
中的所有行。
<?php
include'database.php';
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$now = date("Y-m-d");
$sql = "SELECT * FROM on_form_9 WHERE dias = '0'";
$diferencial_tempo = "UPDATE on_form_9 SET dias = DATEDIFF (actualizacao, NOW())";
$sendEMail = false;
$result = [];
if ($conn->query($diferencial_tempo) === TRUE) {
echo "DATA OK";
echo( " --- ");
} else {
echo "DATA ERRO" . $conn->error;
}
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
//collect the data you need here and set a flag
$result[] = $row;
$sendEMail = true;
}
} else {
echo "0 e-mails enviados";
}
if ($sendEMail === true){
//change your baterias_email.php in order to use the array of rows $result if you need the data
include 'baterias_email.php';
}
$conn->close();
希望对您有所帮助
已修复,不知道如何让我逃脱 LOL
if ($conn->query($diferencial_tempo) === TRUE) {
echo "DATA OK";
include'baterias_email.php';
} else {
echo "DATA ERRO" . $conn->error;
}
删除其余部分:)