Php 如何向while循环中生成的包含特定行信息的电子邮件发送电子邮件?

Php 如何向while循环中生成的包含特定行信息的电子邮件发送电子邮件?,php,sql,Php,Sql,我正在从一个数据库中提取电子邮件地址,该数据库的FEE1欠款少于他们的SESSION1 paid,即他们欠款。然后我想减去这两个数字,得到他们所欠的金额,并通过电子邮件将这些信息发送给他们 我的问题是每个欠债的人都会收到其他人的电子邮件,即EMAIL1会收到EMAIL1和EMAIL2的信息 我确信问题在于我的IF声明。我已经搜索并发现,我可能需要使用FOREACH语句,但我使用不正确,并且在发送的每封电子邮件中多次重复该信息。请帮助新手我的代码是这样的 while ($row = mysql_f

我正在从一个数据库中提取电子邮件地址,该数据库的FEE1欠款少于他们的SESSION1 paid,即他们欠款。然后我想减去这两个数字,得到他们所欠的金额,并通过电子邮件将这些信息发送给他们

我的问题是每个欠债的人都会收到其他人的电子邮件,即EMAIL1会收到EMAIL1和EMAIL2的信息

我确信问题在于我的IF声明。我已经搜索并发现,我可能需要使用FOREACH语句,但我使用不正确,并且在发送的每封电子邮件中多次重复该信息。请帮助新手我的代码是这样的

while ($row = mysql_fetch_array($select)){ /*start while loop*/
    $amount = $row['fee1'] - $row['session1'];
    $name = $row['name'];
    $surname = $row['surname'];
    $pname = $row['parentsname'];
    $psname = $row['parentname'];

    if ($row['session1'] < $row['fee1']){ /*start if owe*/
        $to      = $row['email'];
        $subject = 'Payment Reminder TEST!!!';
        $message = "Hello $pname $psname, \n\nAmount Owed For Session 1: £ $amount\nChilds Name: $name $surname\n\n".$message;
        $headers = 'From: creditcontrol@s.org.uk' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();

        mail($to, $subject, $message, $headers);
    } /*end if owe*/
} /*end while loop*/
请看这一行:

$message = "Hello $pname $psname, \n\nAmount Owed For Session 1: £ $amount\nChilds Name: $name $surname\n\n".$message;
发现错误了吗

提示:您正在将$message添加到现有的$message中-请看这行的末尾

因此,循环运行时,您将$message设置为等于Hello。。。然后在下一次运行循环时,将$message设置为等于Hello。。。$message之前的内容,现在$message中有两条消息,每次迭代都会继续


只需删除$来自结尾的消息。

与您的问题无关,但您也可以通过在SELECT语句中添加所需条件来优化循环,以便如果$row['session1']<$row['fee1']{启动/如果是选择/而不是循环的一部分。这样,你就不必在完整的数据集上迭代,如果IF变得多余。

棘手——对我来说是正确的,我认为我需要一个与实际问题无关的新的监视,但是MySQL函数被禁止和不安全——考虑切换到MyQuLi或PDO。d该死的天才…我就像蝙蝠一样瞎哈哈!Cheers@RobertSean要结束问题并标记为已解决,请访问,然后返回给出的答案。欢迎使用Stack;