发送多封电子邮件时出错,应该只发送一封

时间:2019-02-28 11:21:14

标签: php sql sendmail

嗨,我需要一些帮助...

我有一个小小的php脚本,用于检查数据库是否为真,是否调用其他php并发送电子邮件,如果不执行任何操作。 它可以工作,但是他检查了数据库,并且如果发现3个或更多真实值,他将发送3个或更多电子邮件:S 今天我发现有1700 +/-封邮件可供阅读。 您能帮我发送一封电子邮件吗?

谢谢

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="nz.co.plumbingworld.flutterblocpattern">

2 个答案:

答案 0 :(得分:0)

通过以下方式更改代码。由于我现在不知道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();

我希望对您有帮助

答案 1 :(得分:0)

固定的,不知道该如何逃避

if ($conn->query($diferencial_tempo) === TRUE) {
    echo "DATA OK";
    include'baterias_email.php';
} else {
    echo "DATA ERRO" . $conn->error;
}

删除休息:)