PHP - 在while循环中设置变量

时间:2017-09-28 17:34:22

标签: php

我目前正在尝试在while循环中设置一个等于数组不同值的变量。我有我的select语句设置,以便它成功地提取信息,并可以通过回显相关的类来显示。但是,如果我尝试在第二次传递中将行设置为等于变量,则它不会运行并完成while循环。

$username = "xxx";
$password = "xxx";
$hostname = "xxx";
$database = "xx";
$dbhandle = mysqli_connect($hostname, $username, $password, $database) or die("Unable to connect to MySQL");
$conn = new mysqli($hostname, $username, $password, $database);

$date = "1996-03-12 12:03:00";

$selectcmd = "SELECT starttime, endtime, partner, worklist, serviceloss, servicereference, siteaddress, ticketref FROM work WHERE starttime='$date'";

if ($conn->connect_error) {
    die("Connection  Failed: " . $conn->connect_error);
}

$result = $conn->query($selectcmd);
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {  
        $body = $row["starttime"].$row["endtime"];
        require "mail.php";
    }
} else {
    echo "No Mail To Send";
}

$conn->close();

mail.php是PHPMailer函数,可以发送电子邮件。

我知道问题是我正在尝试在while循环中设置变量。但是,我不知道如何克服这一点。我试图在while循环结束时取消身体。

对于那些问过的人来说,

mail.php:

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
require 'PHPMailer/src/Exception.php';

$mail = new PHPMailer();
try {                                
    $mail->isSMTP();
    $mail->Host = 'localhost';
    $mail->SMTPAuth = false;                              
    $mail->Username = 'user@example.com';
    $mail->Password = 'secret';                           
    $mail->Port = 25;

    $mail->setFrom('test@test.com', 'test');
    $mail->addAddress('joe@example.net');                    

    $date = "today";
    $mail->isHTML(true);
    $mail->Subject = 'Important Notification';
    $mail->Body    = $body;
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    $mail->send();
    die();
} catch (Exception $e) {
    die();
}

1 个答案:

答案 0 :(得分:0)

我的问题是@PatrickQ建议的。 die()函数导致脚本完全停止运行。我从mail.php中删除了这个,然后移动了require' mail.php'在while循环之外。然后我添加了$ mail-> send();函数到while循环。

一切都如我所愿:)