Как добавить цикл while в шаблон электронной почты

У меня есть шаблон электронной почты, который выглядит так -> это просто пример

require 'PHPMailerAutoload.php';

$mail = new PHPMailer;

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'support.example.com';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'support@example.com';                 // SMTP username
$mail->Password = '******';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 25;                                    // TCP port to connect to

$mail->setFrom('support@example.com', 'example Inc.');
$mail->addAddress($to);     // Add a recipient
$mail->addReplyTo('support@example.com', 'Support');
$mail->addCC($to);
$mail->addBCC($to);

$mail->isHTML(true);

$mail->Subject = "$name has sent you a request";
$mail->Body    = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns:v="urn:schemas-microsoft-com:vml" style="width: 100%;min-width: 100%;">
<head> Head content here</head>

<body>
body content goes here
</body>
</html>';

$mail->AltBody = 'Please Upgrade Your Browser to view this email';

if(!$mail->send()) {
header('location:https://www.example.com/404.shtml?error-in-sending-email');
}

Теперь все, что я хочу, это использовать php while, чтобы показать некоторые данные из базы данных в электронную почту. & отправить его пользователю

Я пытался использовать как это '.while($fetch = mysqli_fetch_array($content)){.' '.}.'
но это дало мне ошибку, что может быть лучшим способом?

0

Решение

Вы не можете иметь цикл внутри строкового литерала. Вам нужно зациклить и сгенерировать вашу HTML-строку по частям. Например:

$html = '
<html>
<head>
<!-- head stuff -->
</head>
<body>';

while ( $row = mysql_fetch_assoc( $res ) ) {
$html .= '<p>' . $row['something'] . '</p>';
}

$html .= '
</body>
</html>';

Но ясно, что этот код ужасен, труден для понимания и является кошмаром для сопровождения или изменения. Вы можете переключиться на синтаксис альтернативной структуры управления и немного выходная буферизация:

ob_start();

?>
<html>
<head>
<!-- head stuff -->
</head>
<body>
<?php while ( $row = mysql_fetch_assoc( $res ) ): ?>
<p><?php echo $res['something']; ?></p>
<?php endwhile; ?>
</body>
</html>
<?php

$html = ob_get_clean();
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector