我试图将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)
有什么建议吗?谢谢!
答案 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>';
所以.=
是重要的部分,它将字符串连接到现有字符串的末尾