MySQL结果在PHPMailer电子邮件正文中

时间:2015-12-01 23:37:03

标签: php phpmailer

我试图将MySQL查询的结果回显到通过PHPMailer发送的电子邮件正文中,但我遇到了困难。该查询在我成功创建页面上的表时起作用,但似乎无法将表分配给变量正确。

我的代码:

$body = '<html>
                    <body>
                        <table>
                            <thead>
                                <tr>
                                    <th>Food</th>
                                    <th>Quantity</th>
                                    <th>Category</th>
                                <tr>
                            </thead>
                            <tbody>'.
                            while($row = $resultOrderE->fetch(PDO::FETCH_ASSOC)){
                                echo '
                                        <tr>
                                            <td>$row['food']</td>
                                            <td>$row['quantity']</td>
                                            <td>$row['category']</td>
                                        </tr>
                                ';}.'
                            </tbody>
                        </table>
                    </body>
                </html>';

我得到的错误是:

PHP Parse error:  syntax error, unexpected 'while' (T_WHILE)

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:0)

你不能将WHILE循环连接成一个字符串。

你必须循环遍历并在每次迭代循环时添加到现有字符串

$html_string = '<html><body><table><thead><tr><th>Food</th><th>Quantity</th> <th>Category</th><tr></thead><tbody>';

while($row = $resultOrderE->fetch(PDO::FETCH_ASSOC)){
  $html_string .= 
  '<tr><td>'.$row['food'].'</td><td>'.$row['quantity'].'</td><td>'.$row['category'].'</td></tr>';
}

// this will add the closing tags and now html_string has your built email
$html_string .= '</tbody></table></body></html>';

所以.=是重要的部分,它将字符串连接到现有字符串的末尾