PHP无法将查询结果分配给变量

PHP无法将查询结果分配给变量,php,Php,我正在尝试使用Sendgrid发送一封显示数据库信息的电子邮件 我的代码: $email->addContent( "text/html", " <?php foreach ($dueinsevendays as $dueinsevenday) : $sevendaycomref = $dueinsevenday['ceref']; $sevendaytitle = $dueinsevenday['cetitle']; $sevendaydate = $dueinseve

我正在尝试使用Sendgrid发送一封显示数据库信息的电子邮件

我的代码:


$email->addContent(
    "text/html", "
<?php foreach ($dueinsevendays as $dueinsevenday) :

$sevendaycomref = $dueinsevenday['ceref'];
$sevendaytitle = $dueinsevenday['cetitle'];
$sevendaydate = $dueinsevenday['targetresponse'];
$sevendaystage = $dueinsevenday['cestage'];

?>
<tr>        
      <td style='border: 1px solid black;'>$sevendaycomref</td>
      <td style='border: 1px solid black;'>$sevendaytitle</td>
      <td style='border: 1px solid black;'>$sevendaydate</td>
      <td style='border: 1px solid black;'>$sevendaystage</td>   
</tr>
<?php endforeach; ?>
")
我将查询结果分配给变量时出错,例如,其中显示$dueinsevenday['ceref'];,第一个[显示为错误语法错误、意外的带引号的字符串和空白

我需要为数据库中从查询返回的每条记录创建一个表行,如果我在php代码之外分配变量,则没有错误,但循环不起作用,此代码将只显示一个表行,而不是全部,例如:


$sevendaycomref = $dueinsevenday['ceref'];
$sevendaytitle = $dueinsevenday['cetitle'];
$sevendaydate = $dueinsevenday['targetresponse'];
$sevendaystage = $dueinsevenday['cestage'];

$email->addContent(
    "text/html", "
<?php foreach ($dueinsevendays as $dueinsevenday) :


?>
<tr>        
      <td style='border: 1px solid black;'>$sevendaycomref</td>
      <td style='border: 1px solid black;'>$sevendaytitle</td>
      <td style='border: 1px solid black;'>$sevendaydate</td>
      <td style='border: 1px solid black;'>$sevendaystage</td>   
</tr>
<?php endforeach; ?>
")

如果您有任何关于如何修复错误或重新排列代码的想法,我们将不胜感激。

您似乎将PHP代码放在字符串变量中,并希望它作为代码执行。不会,它将被视为电子邮件的预期内容。您需要先处理数据,将必要的HTML添加到字符串中变量,然后将该字符串(即代码的结果,而不是代码本身)添加到电子邮件中

试着这样做:

$html = "";
foreach ($dueinsevendays as $dueinsevenday)
{
  $html .= "<tr>        
      <td style='border: 1px solid black;'>$sevendaycomref</td>
      <td style='border: 1px solid black;'>$dueinsevenday['cetitle']</td>
      <td style='border: 1px solid black;'>$dueinsevenday['targetresponse']</td>
      <td style='border: 1px solid black;'>$dueinsevenday['cestage']</td>   
    </tr>";
} 
$email->addContent("text/html", $html);

首先运行循环aur,不管代码是什么,然后将响应值分配给变量。请参阅文章中的突出显示?这意味着您的语法与您认为的不同,因此php代码没有运行。您不能在字符串中编写php。如果字符串是双引号,则可以在其中使用变量,但不能使用代码。