这是this question的后续版本。
我正在整理一个简单的HTML电子邮件,确认订单到我的数据库。因为每个订单显然是动态的,所以我需要$message的一部分来运行一个循环。
例如,我在$message外部查询我的数据库,结果是
$emailinfo=mysql_fetch_assoc($result) or die(mysql_error()); 我开始我的$message...
$message = <<<END
<html>
<head>
<title>Whatever</title>
</head>
<body>
<p>{$emailinfo['itemname']}</p>
</body>
</html>
END;如果有人只订购了一件商品,上面的说明是可以的,但如果有人订购了多件商品,我需要做的就是说明是否有人订购了多件商品,循环通过每个项目并在$message中回显出来。在$message之外,我可以做到这一点(这是可行的)
do {
echo $emailinfo['itemname'];
}
while ($emailinfo=mysql_fetch_assoc($result));但是,当我将$message包装在循环中时,就像上一个问题的注释所建议的那样,它仍然只回显第一行/顺序。例如。
do {
$message = <<<END
<html>
<head>
<title>Whatever</title>
</head>
<body>
<p>{$emailinfo['itemname']}</p>
</body>
</html>
END;
}
while ($emailinfo=mysql_fetch_assoc($result));有人能帮帮忙吗?在$message之外,循环、查询等都工作得很好,我只需要它在$message中工作。这只是我需要遍历的顺序的一部分。我不需要循环通过客户信息,送货地址等,因为只会有一个(如果这有帮助的话)。
一如既往的感谢
发布于 2011-09-28 03:12:45
这里发生的情况是,您在循环的每次迭代中都覆盖了$message变量。
$message = <<<END
<html>
<head>
<title>Whatever</title>
</head>
<body>
END;
do {
$message .= <<<END
<p>{$emailinfo['itemname']}</p>
END;
}
while ($emailinfo=mysql_fetch_assoc($result));
$message .= <<<END
</body>
</html>
END;https://stackoverflow.com/questions/7574316
复制相似问题