2014-09-18 25 views
-1

我想向用戶發送一個包含html表格的電子郵件。
表的信息必須來自我的MySQL表
通常我做這種方式:
phpmailer正文中的MySql表

<?php 
$test = mysql_query("SELECT * FROM $table WHERE email='$email'"); // 
while($row = mysql_fetch_array($test)) { 
?> 
<body> 
    <table> 
     <?php 
     echo '<tr>'; 
     echo '<td>' . $row['item'] . '</td>'; 
     echo '</tr>'; 
     ?> 
    </table> 
</body> 
<?php 
} 
?> 

但我怎麼能做到這一點在這種情況下:

$mail    = new PHPMailer(); 
    $test = mysql_query("SELECT * FROM $table WHERE email='$email'"); // 
    while($row = mysql_fetch_array($test)) { 
     $body = ' 
     <p>Thank you !</p> 
     <p>here is your result</p> 
     <table> 
      <tr> 
       <td>[Info from db]</td> 
      </tr> 
     </table><br> 
     <p>Greetings !</p> 
     '; 
    } 
    $body = eregi_replace("[\]",'',$body); 
    $mail->IsSMTP(); 

謝謝!

+0

連接在循環中只有新行' ...'。循環後添加開始部分和結束部分。除此之外:請注意,mysql_ *函數已被棄用,POSIX regexp擴展也是如此。我會建議使用PDO或mysqli和PCRE。 – VMai 2014-09-18 17:29:11

+3

這看起來恐怖不安全。你確定**你的用戶參數是[妥善轉義](http://bobby-tables.com/php)? 'mysql_query'是一個過時的接口,不應該在新的應用程序中使用,並且將在未來的PHP版本中被刪除。像[PDO這樣的現代化替代品並不難學](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/)。如果您是PHP的新手,像[PHP The Right Way](http://www.phptherightway.com/)這樣的指南可以幫助解釋最佳實踐。 – tadman 2014-09-18 17:31:56

+0

@VMai謝謝你的提示!升級到MySqli – helpme 2014-09-19 17:34:52

回答

1

而不是echo你從數據庫中獲得的數據,你應該把它寫入$body

$body = '<table>'; 
while($row = mysql_fetch_array($test)) { 
    $body .= '<tr><td>' . $row['item'] . '</td></tr>'; 
} 
$body .= '</table>'; 

賦值.=將指定的字符串追加到現有變量。