在电子邮件中发送mysql获取的数组数据

时间:2014-01-26 18:58:44

标签: php mysql arrays email

我正在尝试在电子邮件中发送数组数据,但无法让这件事情发挥作用。 这是确切的代码。

$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消息

1 个答案:

答案 0 :(得分:0)

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

以这种方式尝试:

$message .= "<td>" . $row["item"] . "</td>" ;

修改 在邮件中,您可以看到表的标题,这表明问题不是数据的格式。所以问题必须是脚本不运行while语句。

请修改mysql_query对此的调用:

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

这将指示您的SQL查询中是否有错误(例如拼写错误的表或字段名称)。

还尝试直接在MySQL命令行中执行查询,以控制结果是否真的得到了一些记录。