在php变量里面设置Email body而while循环不工作

时间:2014-08-26 05:44:03

标签: php

所以我想通过电子邮件发送订单确认。要做到这一点,我需要将身体作为一个变量附加,即$ body

所以我在$ body中包含了所有的html代码。该部分效果很好,并且成功发送电子邮件。

然而,我需要循环下订单,以便客户知道他们订购了什么以及他们为每件商品支付了什么。

所以这是SQL查询

// GET THE PRODUCTS THAT HAVE BEEN ORDERED
$w="SELECT
nfw_order_new_items.name,
nfw_order_new_items.qty,
nfw_order_new_items.price
FROM
nfw_order_new_items
WHERE
nfw_order_new_items.id_order = '$order_ID'";
$ww= mysql_query("$w") or die("Inv Rows ".mysql_error());

然后以身体为例,我的html就在其中。 $ name,$ qty和$ price是我希望我的循环创建表的行的位置,具体取决于结果中的数量。我已经尝试将循环放在身体外面如下,但这也不起作用。见下文:

while(list($name,$qty,$price)= mysql_fetch_row($ww)){
$body = "<table width=\"80%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
          <tr style=\"font-size:12px; font-weight:bold; color:#FFF\">
            <td width=\"111\" bgcolor=\"#333333\" style=\"padding-left:5px;\">Product Name:</td>
            <td width=\"290\" bgcolor=\"#333333\">QTY:</td>
            <td width=\"67\" align=\"center\" bgcolor=\"#333333\">Price Each</td>
            <td width=\"121\" align=\"right\" bgcolor=\"#333333\" style=\"padding-right:5px; font-size:12px;  text-align:right;\">Total Price</td>
          </tr>
          <tr>
            <td style=\"padding-left:5px; font-size:12px;\">$name</td>
            <td style=\"padding-left:0px; font-size:12px;\">$qty</td>
            <td style=\"padding-left:0px; font-size:12px; text-align:center;\">$price</td>
          </tr>
        </table>"; }

2 个答案:

答案 0 :(得分:1)

每次都不需要打印表头 你可以像下面这样做

$body = "<table width=\"80%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
          <tr style=\"font-size:12px; font-weight:bold; color:#FFF\">
            <td width=\"111\" bgcolor=\"#333333\" style=\"padding-left:5px;\">Product Name:</td>
            <td width=\"290\" bgcolor=\"#333333\">QTY:</td>
            <td width=\"67\" align=\"center\" bgcolor=\"#333333\">Price Each</td>
            <td width=\"121\" align=\"right\" bgcolor=\"#333333\" style=\"padding-right:5px; font-size:12px;  text-align:right;\">Total Price</td>
          </tr>";

while(list($name,$qty,$price)= mysql_fetch_row($ww))
{
    $body .= "<tr>
            <td style=\"padding-left:5px; font-size:12px;\">$name</td>
            <td style=\"padding-left:0px; font-size:12px;\">$qty</td>
            <td style=\"padding-left:0px; font-size:12px; text-align:center;\">$price</td>
          </tr>";
}

$body .= "</table>";

答案 1 :(得分:-1)

试试这段代码。

$body = "<table width=\"80%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr style=\"font-size:12px; font-weight:bold; color:#FFF\">
            <td width=\"111\" bgcolor=\"#333333\" style=\"padding-left:5px;\">Product Name:</td>
            <td width=\"290\" bgcolor=\"#333333\">QTY:</td>
            <td width=\"67\" align=\"center\" bgcolor=\"#333333\">Price Each</td>
            <td width=\"121\" align=\"right\" bgcolor=\"#333333\" style=\"padding-right:5px; font-size:12px;  text-align:right;\">Total Price</td>
          </tr>";
while(list($name,$qty,$price)= mysql_fetch_row($ww)){
$body .= "<tr>
            <td style=\"padding-left:5px; font-size:12px;\">$name</td>
            <td style=\"padding-left:0px; font-size:12px;\">$qty</td>
            <td style=\"padding-left:0px; font-size:12px; text-align:center;\">$price</td>
          </tr>
        "; }
$body.="</table>";