在通过mail()函数发送之前,在html电子邮件中执行php查询

时间:2013-05-12 18:05:00

标签: php html email

我想在邮件中发送一个填充了php查询的项目列表...但是我没有看到如何设置我的语法以使其正常工作...

 <php
    $message = '
    <html>
    <head>
        <title>Confirmation de demande de devis | Recapitulatif de la demande</title>
    </head>

    <body>
            <p>Hi '.$gender.' '.name.' blablabla</p>

            <ul>
            '.$req=$bdd->query("SELECT * FROM items WHERE id_order = $_POST['id-order']");
            while ($data = $req->fetch())
            {.'
                <li>'.echo $data['item-name'].'</li>
            .'}
            $req->closeCursor();
            .'</ul>
        </body>
    </html>';
?>

我总是有一个解析错误警告,所以我想这不是正确的方法。 你有什么主意吗? 谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

'foo'. (SOME PHP CODE) .'bar'不起作用。您需要将您想要做的事情与字符串分开。

$message = '<html><head>etc..';
$req = $bdd->query("SELECT * FROM items WHERE id_order = ".intval($_POST['id-order']));
// added intval against sql injections
while ($data = $req->fetch())
{
    $message .= '<li>'.$data['item-name'].'</li>';
}
$message .= 'rest';

答案 1 :(得分:0)

尝试将代码移出变量,如下所示:

$inline = '';
$req=$bdd->query("SELECT * FROM items WHERE id_order = $_POST['id-order']");
while ($data = $req->fetch()) {
    $inline .= '<li>'.$data['item-name'].'</li>';
}
$req->closeCursor(); 

$message = '
<html>
    <head>
        <title>Confirmation de demande de devis | Recapitulatif de la demande</title>
    </head>
    <body>
        <p>Hi '.$gender.' '.name.' blablabla</p>
        <ul>'.$inline.'</ul>
    </body>
</html>';