我有问题通过电子邮件从数据库发送数组。我相信人们可能会遇到同样的问题。我不知道如何解释更多,但这里有一些脚本。
$sql="SELECT * FROM tb_xxx WHERE id_prd = '$ref_id_prd'";
$result=mysql_db_query($dbname,$sql);
while ($rs=mysql_fetch_array($result)) {
$ref_id_prd=$rs[ref_id_prd];
$prd=$rs[prd];
$price=$rs[price];
text="$prd <br>$price";
}
$recipient = $iemail;
$subject = "my subject";
$headers = "From: xxx@xxx.com \n";
$headers .= "Reply-To: xxx@xxx.com \n";
$headers .= "MIME-Version: 1.0 \n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1 \n";
$msg = $text;
mail($recipient, $subject, $message, $headers);
答案 0 :(得分:3)
您需要将所有数组值累积到邮件正文的单个字符串中。
$text = "";
while ($rs = mysql_fetch_array($result)) {
$ref_id_prd=$rs[ref_id_prd];
$prd=$rs[prd];
$price=$rs[price];
// Use .= to append to the current value
$text .= "$prd <br>$price\n";
}
要发送它,请使用$text
作为邮件正文:
mail($recipient, $subject, $text, $headers);
请注意,您需要在下面的行中进行其他格式设置,以便在HTML电子邮件中按照您希望的方式进行查看:
$text .= "$prd <br>$price\n";
例如,您可以列出产品列表:
$text = "<ul>\n";
// inside the while loop...
$text .= "<li>$prd: $price</li>\n";
// After the loop, close the list
$text .= "</ul>"
$text = "";
// Open the table:
$text .= "<table>\n";
// Table header...
$text .= "<thead><tr><th>Product</th><th>Price</th></tr></thead>\n";
// Open the table body
$text .= "<tbody>\n";
while ($rs = mysql_fetch_array($result)) {
$ref_id_prd=$rs[ref_id_prd];
$prd=$rs[prd];
$price=$rs[price];
// Build table rows...
$text .= "<tr><td>$prd</td><td>$price</td></tr>";
}
// Close the table
$text .= "</table>";
答案 1 :(得分:0)
将$message
变量替换为$msg
mail($recipient, $subject, $msg, $headers);