在变量值中附加while循环


appending a while loop within a variable value

每次注册后,我需要发送一封自动邮件,在消息变量中,我需要运行所有注册产品的while循环。

这是代码:

<?php

$message = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Course booking mail</title>
<style type="text/css">.course_list_tbl {border:1px solid #BAC2CC;}</style></head>
<body marginheight="0" topmargin="0" marginwidth="0" leftmargin="0" style="margin: 0px; background-color: #eee; background-repeat: repeat; color:#56667d; font-size:14px;">
<table cellspacing="0" border="0" cellpadding="0" width="100%"><tr><td>
<table width="650" cellspacing="0" cellpadding="0" border="0" align="center" style="border-width: 3px; border-color: #ffffff; border-style: solid;">
  <tr><td style="background:#F3F3F3; border-bottom:1px solid #BAC2CC;">
<table width="650" border="0"><tr><td>
<img src="http://www.og-softskills.com/gcom/images/ogs_mail.png" style="margin:0; margin-left:10px; margin-top: 4px; display: block;" alt="" />
</td>
    <td style="color:#2a186e;"><h2>Altous Solutions</h2></td>
  </tr></table></td></tr>
  <tr>
    <td style="background:#c8cfd8; color:#2a186e;" valign="middle"><h3 style="text-shadow: #ffffff 0px 1px 0px; margin-left:10px;">Your Order Information</h3></td>
  </tr>
  <tr><td style="padding:5px 10px;">
    <p>
    Course Booking Successfully Completed! You have successfully registered 3 candidate for 2 Open Courses and also booked for 1 In-house Course. Thank You!
    </p>
    </td></tr><tr><td>
    <h4 style="margin-left:25px; margin-bottom:0px;">Open Course</h4>
    <table width="600" border="0" cellspacing="0" cellpadding="0" align="center" class="course_list_tbl">
  <tr>
    <th scope="col" class="course_list_tbl" width="5%">s/n</th>
    <th scope="col" class="course_list_tbl">Course</th>
    <th scope="col" class="course_list_tbl">Actions</th>
  </tr>';
$message .= if($pubc_row_count > 0){
    $pub_sn = 1;
while($get_pubc_bookings_info_row = @mysql_fetch_assoc($get_pubc_bookings_info_query)){
$org_id = user_info('id');
$get_pubc_bk_id = $get_pubc_bookings_info_row['booking_id'];
$get_pubc_c_id = $get_pubc_bookings_info_row['course_id'];  
$get_pubc_c_title = $get_pubc_bookings_info_row['title'];
 echo '<tr><td>'.$pub_sn.'</td> <td>'.$get_pubc_c_title.'</td><td class="bk_action_lnk"><a href="pubc_reg_invoice.php?bk_id='.$get_pubc_bk_id.'&amp;org_id='.$org_id.'&amp;c_id='.$get_pubc_c_id.'" target="_blank">Print Invoice</a> <a href="pubc_invoice_pdf.php?bk_id='.$get_pubc_bk_id.'&amp;org_id='.$org_id.'&amp;c_id='.$get_pubc_c_id.'" target="_blank">Invoice in PDF</a> <div class="clear"></div></td></tr>';
++$pub_sn;
}
};
$message .= '</table></td>/tr>
  <tr>
    <td style="padding:5px 10px;">
    <p>
    For further enquiries, contact us via: <br /> 909-804-6416, 555-330-4541 <br /> Email: training@altous.com 
    </p>
    </td></tr>
    <tr>
    <td align="center" style="border-top:2px solid #BAC2CC; border-bottom:2px solid #BAC2CC;">
    <p  style="font-size:12px;"><strong style="font-weight:bold;">Altous Solution</strong> <br>
 5th Floor, Pole Plaza.</p>
    </td>
  </tr></table></td></tr></table></body></html>';

?>

可以肯定的是,这不会飞起来,因为追加if语句,而变量"message"中的while循环将遇到语法错误。所以我真的对如何完成这件事一无所知。

非常感谢您的帮助。。。谢谢

<?php

$message = 'part of string';
if(some condition){
   $message  .= 'Other part of string';
}
while(some condition){
    $message  .= $var.'Other part of string';
}
echo $message; // will give you ful string
?>
Prasanth Bendra的回答基本正确;你想把你的消息分成不同的部分,消息头、可变部分和页脚部分;然后有一些代码来控制这些部分的插入。

为了改进,您可以将这些部分放在文件系统或数据库中,这意味着当您想要调整消息时,不需要修改代码。