while循环和php-mailer

时间:2015-10-27 18:47:19

标签: php mysql while-loop phpmailer

我在动作完成后使用phpmailer发送电子邮件。现在这是我的phpmailer代码的最后一部分

$mail->Subject = 'Nuovo Ordine';
$mail->Body = $ordine_iniz.$ordine_cent.$ordine_fine;
$mail->AltBody = '';

这是我想在正文中插入的变量

$ordine_iniz='
Nuovo Ordine Spiaggia dal Sig./Sig.ra '.$nome.' '.$cognome.'<br />
<table style="text-align:center;" cellpadding="5">
<thead style="background-color:#EBE9E9">
<tr>
<th scope="col">#</th>
<th scope="col">Prodotto</th>
<th scope="col">Quantit&agrave;</th>
</tr>
</thead>
<tbody style="background-color:F5FFFF">';


$ordine_fine='</tbody></table>';

$i=0;
$query = "SELECT * FROM table";
$result=mysql_query($query);
while($row=mysql_fetch_array($result)){
$ordine_cent='<tr><td>'.$i.'</td><td>'.$row["prodotto"].'</td
<td>'.$row["quantita"].'</td></tr>';
$i++;}

现在的问题是邮件发送有效,但邮件中的表只向我提供了一行,其中包含表'table'的最后结果。我想拥有所有行

我该如何解决?

2 个答案:

答案 0 :(得分:2)

而不是

$ordine_cent=

DO

$ordine_cent .=

因为=会覆盖旧值而不是附加到它。

答案 1 :(得分:2)

你需要追加,你每次都要重新分配$ordine_cent。在while循环之前,初始化$ordine_cent = ''或其他东西。之后在while循环中执行此操作:

$ordine_cent .= '<tr><td>'.$i.'</td><td>'.$row["prodotto"].'</td<td>'.$row["quantita"].'</td></tr>';