使用while循环在Swift Mailer中获取详细信息

时间:2014-03-26 06:01:19

标签: php email swiftmailer

在我的代码中,我想要包含while循环以从DB&获取信息将其以表格形式发送给用户。 我试图搜索很多文章,但实际上没有解决方案适合我。 这是我的代码:

$message->setBody('
<html>
<body>
<table style="margin-top:10px; width: 680px; border:0px;">
<tr>
    <th width="80%">Product Details</th>
    <th width="20%">Amount</th>
</tr>'); /* This is Line 43 */
while ($row = mysql_fetch_array($results2)){
$message->setBody .= ('<tr>
    <th width="80%">'.$row["product_name"].'&nbsp-&nbsp'.
                      $row["quantity"].'&nbsp'.$row["type"].'</th>
    <th width="20%">&#8377;&nbsp;'.$row["subtotal"].'</th>
</tr>');
}
$message->setBody .= ('</table>
</body>
</html>',
'text/html');

出现此错误的原因是:

Parse error: syntax error, unexpected ';' in /home/public_html/example.com/
test.php on line 43

我知道我必须遗漏一些基本但却无法找到的东西。任何帮助将不胜感激。

修改

结果从while循环开始(在电子邮件外部测试),所以这不是问题。

最后一部分的错误

$message->setBody .= ("</table>
</body>
</html>",
'text/html');

错误是&#34; &#39;意想不到的&#39;,&#39;在第一行的文件中。 62&#34;。

1 个答案:

答案 0 :(得分:1)

首先,您的代码中存在一些语法错误。您将$ message-&gt; setBody称为函数的一个位置和将其用作对象属性的一个位置。其次,如果你有以下工作版本。最后,将来 - 仔细阅读您的代码并尝试了解您在开发过程中正在做什么。你的代码中有一些没有任何意义的部分。

<?php 

$html = "
    <html>
        <body>
            <table style='margin-top:10px; width: 680px; border:0px;'>
                <thead>
                    <tr>
                        <th width='80%'>Product Details</th>
                        <th width='20%'>Amount</th>
                    </tr>
                </thead>
                <tbody>";
while ($row = mysql_fetch_array($results2)) {
    $html .= "
                    <tr>
                        <td width='80%'>{$row["product_name"]}&nbsp-&nbsp{$row["quantity"]}&nbsp{$row["type"]}</td>
                        <td width='20%'>&#8377;&nbsp;{$row["subtotal"]}</td>
                    </tr>";
}
$html .= "
                </tbody>
            </table>
        </body>
    </html>";
$message->setBody($html, "text/html");

?>