php - "While"循环在应该有两个值时返回一个值

标签 php mysql

啊啊。我不知道为什么这不起作用:

我的数据库只有 2 行。其中一个数据库列存储时间+1 小时。我想查询数据库,并且对于存储时间早于当前时间的每一行,向我发送一条消息。基本上,它只是从存储消息后延迟 1 小时发送消息。

发生的情况是它只发送一封电子邮件。 “storedtime”中的两个值都比当前时间更早(更小)。但只发出一条消息。我到底错过了什么?

$query = "SELECT * FROM db";
$result=@mysql_query($query);
$num=@mysql_numrows($result);
$row=mysql_fetch_array($result);

$i = 0;
$time = time();
while($i < $num)
    {
        if(($row['storedtime']) <= $time)
        {           
        mail("myemailaccount","Subject","Message here, etc.", $headers);
        }

    $i++;
    }

最佳答案

我建议在 while 循环中使用 mysql_fetch_array($result)

那么,它应该是这样的:

$query = "SELECT * FROM db";
$result = mysql_query($query);

$time = time();
while($row = mysql_fetch_array($result))
{
        if(($row['storedtime']) <= $time)
        {
              mail("myemailaccount","Subject","Message here, etc.", $headers);
        }
}

希望有帮助。

您可以从文档站点查看以下示例。此外,阅读建议的替代方案部分(改为MySQLiPDO_MySQL)也很重要。 http://php.net/manual/es/function.mysql-fetch-array.php

关于php - "While"循环在应该有两个值时返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12230038/

相关文章:

PHP session 在 PHP5 中不起作用

php - 使用 PDO 将整数从 64 位转换为 32 位

MySQL 每行每列的投票计数

php - Laravel 4 分页方法

PHP 如何读取特定的单词和行然后添加到 MySQL 数据库

php - 如何让用户在FCK编辑器中添加对象标签?

php - 在 Laravel 4 中更改用户时区的最佳方法是什么?

php - 是否有可以使用 PHP 编写 RFC 4180 CSV 文件的库?

Javascript从mysql计算小计和总计

php - 尝试连接到其他文件中的数据库时无法使用常量