【问题标题】:sending mysql fetched array data inside an email在电子邮件中发送 mysql 获取的数组数据
【发布时间】:2014-02-17 12:28:16
【问题描述】:

我正在尝试在电子邮件中发送数组数据,但无法让这个东西正常工作。 这是确切的代码。

$c = mysql_query("SELECT item,qty,price,uom FROM saleitems WHERE saleinvid = '222384' ");
$to = "email@domain.com";
$subject = "Invoice from company";
$headers = "Content-type: text/html\r\n";
$message = 'Greetings,
    you are receiving this email as an invoice as follows:
    <table border="1">
        <tr>
            <td>Description</td>
            <td>Quantity</td>
            <td>Price</td>
            <td>UOM</td>
        </tr>
        ';
while ($row = mysql_fetch_array($c)){
$message .="<tr>";
$message .="<td>".$row['item']."</td>";
$message .="<td>".$row['qty']."</td>";
$message .="<td>".$row['price']."</td>";
$message .="<td>".$row['uom']."</td>";
$message .="</tr>";
}
$message .="</table>Thank You,COMPANY";
mail($to,$subject,$message,$headers);

邮件已发送,但我看到的只是表格标题行和“谢谢您,公司”行,但中间没有任何项目。任何帮助是极大的赞赏。 我的电子邮件提供商支持 HTML 消息

【问题讨论】:

  • 您确定您的电子邮件提供商支持 html 吗?
  • 首先,从代码中删除“打印”调用。
  • 请检查您的查询是否有返回的行数错误,然后返回此处打印您的结果。

标签: php mysql arrays email


【解决方案1】:

我认为 print 的调用是不必要的,因为这种方式 print 总是返回 1 并且它实际上并没有尝试将 $row[...] 连接到您的消息。

试试这个方法:

$message .= "&lt;td&gt;" . $row["item"] . "&lt;/td&gt;" ;

编辑: 在邮件中您可以看到表格的标题,这表明问题不在于数据的格式。所以问题一定是脚本没有运行while语句。

请编辑mysql_query对此的调用:

$c = mysql_query("SELECT item,qty,price,uom FROM saleitems WHERE saleinvid = '222384' ") or die(mysql_error());

如果您的 SQL 查询中有错误(例如拼写错误的表或字段名称),这将向您表明。

还可以尝试直接在 MySQL 命令行中执行查询,以控制结果是否确实有一些记录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-09
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 2013-12-16
    相关资源
    最近更新 更多