电子邮件中的while循环(PHP)
我试图在付款完成后通过电子邮件从购物车发送详细信息。我有一个确认页面,它成功地显示了这些信息,但当我尝试发送电子邮件时,我无法通过邮件传递项目详细信息 我不确定这是否与电子邮件代码中的while循环有关 包含项目信息的我的电子邮件示例如下:电子邮件中的while循环(PHP),php,mysql,email,shopping-cart,Php,Mysql,Email,Shopping Cart,我试图在付款完成后通过电子邮件从购物车发送详细信息。我有一个确认页面,它成功地显示了这些信息,但当我尝试发送电子邮件时,我无法通过邮件传递项目详细信息 我不确定这是否与电子邮件代码中的while循环有关 包含项目信息的我的电子邮件示例如下: $email_message .= "<p class='regular'>Your ordered:</p> <p>&nbs
$email_message .= "<p class='regular'>Your ordered:</p>
<p> </p>
<table class='orderTable'>
<tr>
<th class='prodNumber'>Product Description</th>
<th class='qty'>Qty</th>
<th class='subTotal'>Sub Total</th>
</tr>";
while($row3 = mysqli_fetch_array($orderDetailInfo)){
$email_message .= " <tr>
<td class='prodNumber'>".$row3['productID']."</td>
<td class='qty'>".$row3['quantity']."</td>
<td class='subTotal'>".$row3['total']."</td>
</tr>";
}
$email_message .= " <tr>
<th class='prodNumber'>Delivery</th>
<th class='qty'>Tax</th>
<th class='subTotal'>Total Amount</th>
</tr>
<tr>
<td class='prodNumber'>".$row['delivery']."</td>
<td class='qty'>".$row['salesTax']."</td>
<td class='subTotal'>".$row['totalPrice']."</td>
</tr>
</table>
$email\u message.=“您订购的:
产品说明
数量
小计
";
while($row3=mysqli\u fetch\u数组($orderDetailInfo)){
$email_message.=”
“$row3['productID']”
“$row3[‘数量’]”
“$row3[‘总计’]”
";
}
$email_message.=”
传送
税
总金额
“$row['delivery']”
“$row['salesTax']”
“$row['totalPrice']”
此代码上方的SQL用于检索确认页面的数据。我只是尝试再次循环以填充电子邮件。电子邮件确实发送了所有其他内容,而不是产品数据。是否有人发现上述代码有任何错误?当循环清除$row变量时,您正在执行此操作。请重命名while循环中的$row。您正在while循环中清除$row变量。重命名while循环中的$row。如果您正在循环
$orderDetailInfo
您需要重置它的指针。通过阅读文章,您已经循环了它一次,因此您处于结果集的末尾,请检查
在你的情况下是这样的
基本上,在您的
while
执行$orderDetailInfo->data_seek(0);
之前,或者如果失败,则执行此mysqli_data_seek($orderDetailInfo,0);
如果要重新循环$orderDetailInfo
您需要重置它的指针。通过阅读文章,您已经循环了一次,因此您处于结果集的末尾,请检查
在你的情况下是这样的
基本上,在您的
while
执行$orderDetailInfo->data_seek(0);
之前,或者如果失败,则执行此mysqli_data_seek($orderDetailInfo,0)
在您对其执行所有操作后,通过echo$email_message;
您得到了什么输出?电子邮件发送时,除了通过while循环从数据库中获取的项目详细信息外,还包含了其中的所有内容……但是,在确认页面上使用了完全相同的过程,并且它在那里工作得非常完美>$orderDetailInfo?您似乎很早就关闭了while循环。@Kevlar好的,但我想知道它是什么——显示创建它的代码在您对它执行所有操作后,echo$email\u message;
会得到什么输出?电子邮件发送时,除了从带有while循环的数据库…但是,在确认页面上使用了完全相同的过程,它在那里工作得很好什么是$orderDetailInfo
?似乎您很早就关闭了while循环。@Kevlar好的,但我想知道它是什么--显示创建它的代码您能给我显示$email\u message
的输出吗能否检查您是否将$email\u message
放在邮件正文中?感谢您的在线购买,您的订单已发送给我们的销售团队成员进行处理。您的订单号为:10050您的订单:产品描述数量小计发货税总额50.00 14.08 134.48尝试添加:if(!$orderDetailInfo){echo'Error:'.mysqli_Error($con);}可能查询错误?该查询在同一文件中此代码上方用于填充确认页。My bad..检查@Leite的链接->mysqli_数据搜索($orderDetailInfo,0)你能给我看一下$email\u message
的输出吗?你能检查一下你的邮件正文中是否有$email\u message
吗?谢谢你的在线购买,你的订单已经发送给我们销售团队的一名成员进行处理。你的订单号是:10050你的订单:产品描述数量小计交货税总额50.00 14.08 134.48尝试添加:如果(!$orderDetailInfo){echo'错误:'.mysqli_错误($con)}可能查询错误?该查询在同一文件中的此代码上方用于填充确认页。我的错误..检查@Leite的链接->mysqli_数据搜索($orderDetailInfo,0)第二次使用时,我已将其从$row2重命名为$ROW3。这没关系,您的结果集位于结果的末尾,因此没有其他内容可获取,您需要使其返回到第一个结果,以便再次使用。谢谢,我尝试了两种选项,但都没有任何区别:(因此,我的while循环的开头现在看起来像这个mysqli_data_seek($orderDetailInfo,0);而($row3=mysqli_fetch_array($orderDetailInfo)){抱歉,它没有