Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-在循环中多次使用mysql_fetch_assoc()。_Php - Fatal编程技术网

PHP-在循环中多次使用mysql_fetch_assoc()。

PHP-在循环中多次使用mysql_fetch_assoc()。,php,Php,我正在为新添加的评论开发一个非常简单的电子邮件通知系统。它的工作原理如下: 遍历项目用户 对于每个用户,循环浏览在最后一个小时内编写的所有注释 如果有任何不是用户编写的注释,请将它们推送到数组中 如果注释数组不为空,请向用户发送电子邮件 下面是一些代码: <?php $users_query = mysql_query("SELECT * FROM users"); $comments_query = mysql_query("SELECT * FROM comments c, user

我正在为新添加的评论开发一个非常简单的电子邮件通知系统。它的工作原理如下:

  • 遍历项目用户
  • 对于每个用户,循环浏览在最后一个小时内编写的所有注释
  • 如果有任何不是用户编写的注释,请将它们推送到数组中
  • 如果注释数组不为空,请向用户发送电子邮件
  • 下面是一些代码:

    <?php
    $users_query = mysql_query("SELECT * FROM users");
    
    $comments_query = mysql_query("SELECT * FROM comments c, users u WHERE c.date > DATE_SUB(NOW(), INTERVAL 1 HOUR) and c.user_id = u.id");
    
    while ($user = mysql_fetch_assoc($users_query)) {
       $commentsArr = array();  
    
       while ($comment = mysql_fetch_assoc($comments_query)) {
          if ($comment['email'] != $user['email']) {
             array_push($commentsArr, $comment['comment']);
          }
       }
    
       // send $commentsArr by email to $user['email']
    }
    ?>
    
    还有其他处理方法吗?所有其他有类似问题的人都被建议加入他们的表格,而不是分开。我不认为我能做到这一点,因为我必须首先检查所有用户,所以如果我加入他们,我将拥有比用户更多的行


    无论如何,有没有一种方法可以在循环内部循环注释?

    在循环外部使用$commentsArr数组:

     <?php
        $users_query = mysql_query("SELECT * FROM users");
    
        $comments_query = mysql_query("SELECT * FROM comments c, users u WHERE c.date > DATE_SUB(NOW(), INTERVAL 1 HOUR) and c.user_id = u.id");
        $commentsArr = array();  
        while ($user = mysql_fetch_assoc($users_query)) {
    
    
           while ($comment = mysql_fetch_assoc($comments_query)) {
              if ($comment['email'] != $user['email']) {
                 array_push($commentsArr, $comment['comment']);
              }
           }
    
           // send $commentsArr by email to $user['email']
        }
        ?>
    

    在while循环外部使用$commentsArr数组:

     <?php
        $users_query = mysql_query("SELECT * FROM users");
    
        $comments_query = mysql_query("SELECT * FROM comments c, users u WHERE c.date > DATE_SUB(NOW(), INTERVAL 1 HOUR) and c.user_id = u.id");
        $commentsArr = array();  
        while ($user = mysql_fetch_assoc($users_query)) {
    
    
           while ($comment = mysql_fetch_assoc($comments_query)) {
              if ($comment['email'] != $user['email']) {
                 array_push($commentsArr, $comment['comment']);
              }
           }
    
           // send $commentsArr by email to $user['email']
        }
        ?>
    

    在while循环外部使用$commentsArr数组:

     <?php
        $users_query = mysql_query("SELECT * FROM users");
    
        $comments_query = mysql_query("SELECT * FROM comments c, users u WHERE c.date > DATE_SUB(NOW(), INTERVAL 1 HOUR) and c.user_id = u.id");
        $commentsArr = array();  
        while ($user = mysql_fetch_assoc($users_query)) {
    
    
           while ($comment = mysql_fetch_assoc($comments_query)) {
              if ($comment['email'] != $user['email']) {
                 array_push($commentsArr, $comment['comment']);
              }
           }
    
           // send $commentsArr by email to $user['email']
        }
        ?>
    

    在while循环外部使用$commentsArr数组:

     <?php
        $users_query = mysql_query("SELECT * FROM users");
    
        $comments_query = mysql_query("SELECT * FROM comments c, users u WHERE c.date > DATE_SUB(NOW(), INTERVAL 1 HOUR) and c.user_id = u.id");
        $commentsArr = array();  
        while ($user = mysql_fetch_assoc($users_query)) {
    
    
           while ($comment = mysql_fetch_assoc($comments_query)) {
              if ($comment['email'] != $user['email']) {
                 array_push($commentsArr, $comment['comment']);
              }
           }
    
           // send $commentsArr by email to $user['email']
        }
        ?>
    

    我从
    mysql
    切换到
    mysqli
    ,现在
    mysqli\u数据搜索($comments\u query,0)按预期工作。

    我从
    mysql
    切换到
    mysqli
    ,现在
    mysqli\u data\u seek($comments\u query,0)按预期工作。

    我从
    mysql
    切换到
    mysqli
    ,现在
    mysqli\u data\u seek($comments\u query,0)按预期工作。

    我从
    mysql
    切换到
    mysqli
    ,现在
    mysqli\u data\u seek($comments\u query,0)按预期工作。

    
    
    <?php
    $users_query = mysql_query("SELECT * FROM users");
    $users = mysql_fetch_array($users_query);
    
    $comments_query = mysql_query("SELECT * FROM comments c, users u WHERE c.date >    DATE_SUB(NOW(), INTERVAL 1 HOUR) and c.user_id = u.id");
    
    $comments = mysql_fetch_array($comments_query)
    
    foreach($user as $users) {
      $commentsArr = array();  
    
      foreach($comment as $comments) {
        if ($comment['email'] != $user['email']) {
         array_push($commentsArr, $comment['comment']);
        }
      }
    
      // send $commentsArr by email to $user['email']
     }
    ?>
    
    
    
    
    
    
    
    当mysql被折旧时,你不应该使用mysql;当mysql被折旧时,你不应该使用mysql;当mysql被折旧时,你不应该使用mysql;当mysql被折旧时,你不应该使用mysql;当mysql被折旧时,你不应该使用mysqli;当mysql被折旧时,你不应该使用mysqli;当mysqli被折旧时,你不应该使用mysqli;当mysqli被折旧时,你不应该使用mysqli;当mysqli被折旧时,你不应该使用mysqli;或者PDO,那不会有什么区别,因为问题是mysql\u fetch\u assoc被多次调用。如果在while循环中调用意味着它显示一个空数组。这没有什么区别,因为问题是mysql\u fetch\u assoc被多次调用。如果在while循环中调用意味着它显示一个空数组。这没有什么区别,问题在于多次调用
    mysql\u fetch\u assoc
    。如果在while循环内调用,则表示它显示一个空数组。这不会有什么区别,因为问题在于多次调用
    mysql\u fetch\u assoc
    。如果在while循环内调用,则表示它显示一个空数组。