如何通过电子邮件发送数组?

时间:2012-01-26 21:18:07

标签: php

我有问题通过电子邮件从数据库发送数组。我相信人们可能会遇到同样的问题。我不知道如何解释更多,但这里有一些脚本。

$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);

2 个答案:

答案 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>"

更新:如何将其构建到HTML表中:

$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);