php - 我如何将所有行从 php 到电子邮件?
问题描述
我编写了一个脚本,该脚本应该从数据库中选择所有用户,然后选择他们评论的所有匹配项并将其邮寄。但它只发送选择的最后一个匹配项。
require 'connection.php';
$query = mysqli_query($conn, "SELECT * FROM tipuser");
foreach($query as $email){
$username = $email['id'];
$datumted = date("Y-m-d");
$sql = mysqli_query($conn, "SELECT * FROM zapasy
WHERE komentator1 = '$username' AND datum = '$datumted'
OR komentator2 = '$username' AND datum = '$datumted'");
while ($xx = mysqli_fetch_assoc($sql)) {
$datum = $xx['datum'];
$projekt = $xx['projekt'];
$projektquery = mysqli_query($conn, "SELECT * FROM projekt
WHERE id = '$projekt'");
$projektpole = mysqli_fetch_array($projektquery);
$projektx = $projektpole['name'];
$stream = $xx['stream'];
$tv = $xx['televize'];
$team1 = $xx['domaci'];
$team2 = $xx['hoste'];
$cas = $xx['cas'];
$message = "$datum | $cas | $team1 v $team2 | $projektx | $stream | $tv \n";
}
$datex = date('d/m/Y');
$to = $email['name'];
$subject = "Vaše zápasy $datex";
$headers = 'From: admin@sportsradio.cz';
mail($to, $subject, $message, $headers);
}
$message
是它邮寄的文本我需要在 1 封邮件中邮寄所有选定的匹配项。
解决方案
您正在$message
用 while 循环的每次迭代覆盖您的。最后一个是您在邮件中收到的。您应该附加到$message
每次迭代。
require 'connection.php';
$query = mysqli_query($conn, "SELECT * FROM tipuser");
foreach($query as $email){
$message = ''; // "init" $message
$username = $email['id'];
$datumted = date("Y-m-d");
$sql = mysqli_query($conn, "SELECT * FROM zapasy
WHERE komentator1 = '$username' AND datum = '$datumted'
OR komentator2 = '$username' AND datum = '$datumted'");
while ($xx = mysqli_fetch_assoc($sql)) {
$datum = $xx['datum'];
$projekt = $xx['projekt'];
$projektquery = mysqli_query($conn, "SELECT * FROM projekt
WHERE id = '$projekt'");
$projektpole = mysqli_fetch_array($projektquery);
$projektx = $projektpole['name'];
$stream = $xx['stream'];
$tv = $xx['televize'];
$team1 = $xx['domaci'];
$team2 = $xx['hoste'];
$cas = $xx['cas'];
$message .= "$datum | $cas | $team1 v $team2 | $projektx | $stream | $tv \n"; // .= appends to $message
}
$datex = date('d/m/Y');
$to = $email['name'];
$subject = "Vaše zápasy $datex";
$headers = 'From: admin@sportsradio.cz';
mail($to, $subject, $message, $headers);
}
字符串运算符信息:https ://www.php.net/manual/en/language.operators.string.php
推荐阅读
- wordpress - Wordpress - 负载平衡器托管,因此图像仅在其中一台服务器上结束
- javascript - 将值从自定义挂钩保存到状态
- java - junit OUAF中的初始化错误异常
- swift - 使用两个控制点时,SwiftUI 圆形滑块问题未显示正确的笔划
- android - 无法在 playstore 等嵌套回收器视图中检索数据
- typescript - vscode 和 typescript 模板文字类型
- linux - 根据bash中的位置排序
- ruby - 尝试添加 gem 设计时没有路线匹配 [GET] "/"
- kubernetes - 使用域套接字在 kubernetes pod 之间进行通信
- android - AAR 文件:检测 API 级别和编译它的 Java/JDK 版本