在邮件中包含sql结果

时间:2014-04-30 10:01:09

标签: php sql

我希望将sql结果包含到变量中,以便发送包含值的html的邮件。 当我测试我的代码时,只包含一行。我怎么都能获得? 我的代码在这里:

<?php
$connect = mysql_connect("*****","********","********");
                mysql_select_db("********", $connect);
                    $req = "SELECT * FROM servers WHERE owner_mail = '******'";
                    $resultat = mysql_query($req);
                    echo "<table border='1'>";
                    echo "<tr><th>Serveur</th><th>Environnement</th><th>Status</th><th>Appli</th></tr>";
                    while ($ligne = mysql_fetch_row($resultat)) {
                    $content = "<tr><td>$ligne[1]</td><td>$ligne[3]</td><td>$ligne[4]</td><td>$ligne[19]</td></tr>";
$pseudo = ($ligne[21]);
$commentaire = ($ligne[1]);
$email = ($ligne[23]);
                }
                    echo "</table>";
     $headers ='From: "nom"<no-reply@gmail.com>'."\n";
     $headers .='Reply-To: ****************'."\n";
     $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
     $headers .='Content-Transfer-Encoding: 8bit';

?>
<html><head></head><body>
<img src='images/logo.jpg' alt='' /></body></html>
<?php
echo "$commentaire<br>";
echo "$email<br>";
echo "$pseudo<br>";

$message .= "Hello\r\n$pseudo,<br>Here you can find the status migration :<br>\r\n<table border='1'><tr><th>Serveur</th><th>Environnement</th><th>Appli</th><th>Status</th></tr>$content</table><br><br> Thanks !";
$message .= "<img src='**********************' alt='' />";

     if(mail($email, 'Status migration', $message, $headers))
     {
          echo 'Le message a été envoyé';
     }
     else
     {
          echo 'Le message n\'a pu être envoyé';
     }
?> 

感谢帮助

1 个答案:

答案 0 :(得分:2)

替换它:

while ($ligne = mysql_fetch_row($resultat)) {
                    $content = "<tr><td>$ligne[1]</td><td>$ligne[3]</td><td>$ligne[4]</td><td>$ligne[19]</td></tr>";
$pseudo = ($ligne[21]);
$commentaire = ($ligne[1]);
$email = ($ligne[23]);
                }

使用:

$content = '';
while ($ligne = mysql_fetch_row($resultat)) {
                    $content .= "<tr><td>$ligne[1]</td><td>$ligne[3]</td><td>$ligne[4]</td><td>$ligne[19]</td></tr>";
$pseudo = ($ligne[21]);
$commentaire = ($ligne[1]);
$email = ($ligne[23]);
                }

在您的代码中,您覆盖了$content变量。

如果要追加数据,请在循环外实例化变量,并使用.=运算符追加内容。