SQL select语句PHP将动态多行结果存储到变量中并转换为字符串以便在电子邮件中发送

问题描述 投票:1回答:4

我需要在电子邮件中发送表格选择摘要。

/*
Table name: comments

username   comment             language      date
--------------------------------------------------------
Daniel     I am Daniel.        en            2019-05-01
Michael    I am Michael!       de            2019-05-04
Sean       I am Sean           en            2019-05-06
Sarah      I am Sarah.         it            2019-06-12

...and so on...
*/

这些基本上是来自对话的评论。我想只选择带有language = en的那些并在变量中汇总它们。

//db connection:
$conn = mysqli_connect("dbserver", "dbusername", "dbpassword", "dbname") or die("Connection failed: " . mysqli_connect_error());
$conn->query("SET NAMES 'utf8'");
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}  

//selecting:
$sql = "SELECT * FROM comments WHERE language='en' ORDER BY date ASC";
$rs_result = mysqli_query($conn, $sql);

如何从这里获取电子邮件内容的以下变量?

$email_content = '
<b>Daniel</b> 2019-05-01<br>
I am Daniel.
<br><br>
<b>Sean</b> 2019-05-06<br>
I am Sean
';

...应该在这样的html电子邮件中查找:

丹尼尔2019-05-01 我是丹尼尔。

肖恩2019-05-06 我是肖恩

我知道如何进行电子邮件传输,所以我只需要变量,填充选择结果并用html格式化。

php html mysql variables select
4个回答
2
投票

尝试此解决方案

$email_content = '';
while($row = mysqli_query($conn, $sql))
{
    $email_content .= '<b>'.$row['username'].'</b> '.$row['date'].'<br> '.$row['comment'].'<br><br>';
}

1
投票

试试这个:

while ($row = mysqli_fetch_assoc($rs_result))
{
  $email_content .= '<b>'.$row['username'].'</b>'.$row['date'].'<br>'.$row['comment'].'<br><br>';
}

1
投票

遍历结果并分配变量。

$email_content  = "";
while($row = mysqli_fetch_assoc($rs_result)) {

       $email_content .= '
                <b>'.$row['username'].'</b>'.$row['date'].'<br>'.
                $row['comment'].'
                <br><br>';
    }

0
投票

这应该工作,我没有做你提供的确切HTML

$email_content  = "";
while ($row = $rs_result->fetch_assoc()) {
    $email_content .= "<p>";
    $email_content .= "<b>" .  htmlspecialchars($row['username'])  ."</b>";
    $email_content .= "<span>" .  htmlspecialchars($row['date'])  ."</span>";
    $email_content .= "<p>" .  htmlspecialchars($row['comment'])  ."</p>";
    $email_content .= "</p>\n";
}

我使用htmlspecialchars来防止HTML注入

© www.soinside.com 2019 - 2024. All rights reserved.