Ошибка при отправке нескольких писем, следует отправлять только одно - PullRequest
0 голосов
/ 28 февраля 2019

Привет, ребята, мне нужна помощь ...

У меня есть небольшой скрипт 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();
?>

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

ИСПРАВЛЕНО, НЕ ЗНАЮ, КАК ЭТО БРОСИТЬ МЕНЯ LOL

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

Удалить де отдых:)

0 голосов
/ 28 февраля 2019

Измените ваш код следующим образом.Поскольку сейчас я не знаю, что делает 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();

Надеюсь, это поможет

...