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

标签 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 消息

最佳答案

我认为print的调用没有必要,因为这样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 命令行中执行查询,以控制结果是否确实有一些记录。

关于php - 在电子邮件中发送 mysql 获取数组数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21367782/

相关文章:

php - 将MySQL数据库备份到Dropbox

c - 如何在没有分支的情况下实现二维环面

python - 如何改进 python3 中这个矩阵生成循环的运行时间?

MySQL 查询选择过去 7 天的每一天的最后一条记录

arrays - 循环并将单元格值放入其中后,VBA数组为空

php - 数据库没有更新,但没有出现错误。 MySQL 和 PHP

php - Laravel 4 命名空间没有\

php - 使用正则表达式确定一个字符串是否只是一个重复的字符

PHP将表单中的数据输入SQL数据库

mysql - 如何按带有偏移量的日期时间进行分组?