Php 将其他表中的数据添加到其他表的循环中

Php 将其他表中的数据添加到其他表的循环中,php,mysql,Php,Mysql,我试图将另一个表中的列添加到另一个表中的while循环中,我尝试了类似的方法,但似乎不起作用。我怎样才能做到这一点?据我所知,我需要将data_auth中的变量保存在数组中,但如何在循环中回显它们 $SQL = mysql_query("SELECT * FROM users ORDER BY data_reg DESC LIMIT $offset, $rowsperpage"); while($rand = mysql_fetch_assoc($SQL)){ $id = $rand

我试图将另一个表中的列添加到另一个表中的while循环中,我尝试了类似的方法,但似乎不起作用。我怎样才能做到这一点?据我所知,我需要将data_auth中的变量保存在数组中,但如何在循环中回显它们

$SQL = mysql_query("SELECT * FROM users ORDER BY data_reg DESC LIMIT $offset, $rowsperpage");
while($rand = mysql_fetch_assoc($SQL)){
      $id = $rand['id'];            
      $user= $rand['user'];

      $SQL2 = mysql_query("SELECT data_auth FROM access_log WHERE user = '$user'");
      while($rand = mysql_fetch_assoc($SQL2)){
            $data_auth = $rand['data_auth'];
      }

      ?>
      <li><?php echo "$user"; ?></li>
      <li><?php echo "$data_auth"; ?></li>
      <?php  
      }
      ?>
$SQL=mysql\u query(“按数据从用户订单中选择*”\u reg DESC LIMIT$offset,$rowsperpage”);
而($rand=mysql\u fetch\u assoc($SQL)){
$id=$rand['id'];
$user=$rand['user'];
$SQL2=mysql_查询(“从access_日志中选择数据_auth,其中user='$user');
而($rand=mysql\u fetch\u assoc($SQL2)){
$data_auth=$rand['data_auth'];
}
?>

  • 无法在另一个while循环中打印data\u auth变量,因为该变量不是由mysql获取的,因此您有一个输入错误:

     <li><?php echo "data_auth"; ?></li>
    

  • 无法在另一个while循环中打印data\u auth变量,因为该变量不是由mysql获取的,因此您有一个输入错误:

     <li><?php echo "data_auth"; ?></li>
    

  • 您可以只使用一个sql查询,如下所示:

    //$SQL = mysql_query("SELECT users.*,access_log.data_auth FROM users,access_log WHERE users.user = access_log.user ORDER BY data_reg DESC LIMIT $offset, $rowsperpage");
    //SQL with JOIN syntax
    $SQL = mysql_query("SELECT users.*,access_log.data_auth FROM users INNER JOIN access_log ON users.user = access_log.user ORDER BY data_reg DESC LIMIT $offset, $rowsperpage");
    while($rand = mysql_fetch_assoc($SQL)){
          $id = $rand['id'];            
          $user= $rand['user'];
          $auth = $rand['data_auth'];
          ?>
          <li><?php echo $user; ?></li>
          <li><?php echo $auth; ?></li>
     <?php  
     }
     ?>
    
    /$SQL=mysql\u query(“选择用户。*,从用户访问\u log.data\u auth,访问\u log WHERE users.user=access\u log.user ORDER BY data\u reg DESC LIMIT$offset,$rowsperpage”);
    //使用联接语法的SQL
    $SQL=mysql\u query(“选择用户。*,从用户访问\u log.data\u auth内部连接访问\u登录用户。用户=访问\u log.user ORDER BY data\u reg DESC LIMIT$offset,$rowsperpage”);
    而($rand=mysql\u fetch\u assoc($SQL)){
    $id=$rand['id'];
    $user=$rand['user'];
    $auth=$rand['data_auth'];
    ?>
    

  • 您可以只使用一个sql查询,如下所示:

    //$SQL = mysql_query("SELECT users.*,access_log.data_auth FROM users,access_log WHERE users.user = access_log.user ORDER BY data_reg DESC LIMIT $offset, $rowsperpage");
    //SQL with JOIN syntax
    $SQL = mysql_query("SELECT users.*,access_log.data_auth FROM users INNER JOIN access_log ON users.user = access_log.user ORDER BY data_reg DESC LIMIT $offset, $rowsperpage");
    while($rand = mysql_fetch_assoc($SQL)){
          $id = $rand['id'];            
          $user= $rand['user'];
          $auth = $rand['data_auth'];
          ?>
          <li><?php echo $user; ?></li>
          <li><?php echo $auth; ?></li>
     <?php  
     }
     ?>
    
    /$SQL=mysql\u query(“选择用户。*,从用户访问\u log.data\u auth,访问\u log WHERE users.user=access\u log.user ORDER BY data\u reg DESC LIMIT$offset,$rowsperpage”);
    //使用联接语法的SQL
    $SQL=mysql\u query(“选择用户。*,从用户访问\u log.data\u auth内部连接访问\u登录用户。用户=访问\u log.user ORDER BY data\u reg DESC LIMIT$offset,$rowsperpage”);
    而($rand=mysql\u fetch\u assoc($SQL)){
    $id=$rand['id'];
    $user=$rand['user'];
    $auth=$rand['data_auth'];
    ?>
    

  • 据我所知-您只需要在与用户相关的列中显示所有数据验证值的列表。最简单的方法是:

    $SQL = mysql_query("SELECT * FROM users ORDER BY data_reg DESC LIMIT $offset, $rowsperpage");
    while($rand = mysql_fetch_assoc($SQL)){
          $id = $rand['id'];            
          $user= $rand['user'];
    
          $SQL2 = mysql_query("SELECT data_auth FROM access_log WHERE user = '$user'");
    
          ?>
          <li><?php echo "$user"; ?></li>
          <li><?php          
                  while($rand2 = mysql_fetch_assoc($SQL2)){
                           echo $rand2['data_auth'] . '<br/>';
                }
              ?>
          </li>
          <?php  
          }
          ?>
    

    据我所知,您只需要在与用户相关的列中显示所有数据\u auth值的列表。最简单的方法是:

    $SQL = mysql_query("SELECT * FROM users ORDER BY data_reg DESC LIMIT $offset, $rowsperpage");
    while($rand = mysql_fetch_assoc($SQL)){
          $id = $rand['id'];            
          $user= $rand['user'];
    
          $SQL2 = mysql_query("SELECT data_auth FROM access_log WHERE user = '$user'");
    
          ?>
          <li><?php echo "$user"; ?></li>
          <li><?php          
                  while($rand2 = mysql_fetch_assoc($SQL2)){
                           echo $rand2['data_auth'] . '<br/>';
                }
              ?>
          </li>
          <?php  
          }
          ?>
    

    每次登录他的访问时,您都会得到一个用户行,而不是一个包含所有访问事件列表的用户行。不确定这是否有意义。@FAngel我假设在access\u log表中,每个用户只有一条记录,对应于用户的上次访问。我假设这是因为OP的原始代码只显示了一条访问记录g、 我可能是错的,但应该是OP来澄清问题。是的,是我的错,我没有澄清问题。这是@Netra Ok表,所以每个用户在access_日志上都有几个记录,在这种情况下,我的解决方案并不比使用FAngel解决方案更好。每次登录他的访问时,你都会得到一条用户线,而不是一个用户l所有访问事件的列表。不确定是否有意义。@FAngel我假设在access\u log表中每个用户只有一条记录,对应于用户的最后一次访问。我假设,因为OP的原始代码只显示了access\u log的一条记录。我可能是错的,但应该是OP来澄清问题。是的,是我的错误,我没有c把事情弄清楚。这是@Netra Ok的表,所以每个用户在访问日志上都有几条记录,在这种情况下,我的解决方案不适合使用FAngel解决方案。嗯……两个建议都是相同的,除了第一种情况下,
    $data\u auth
    数组没有额外的内存使用,也没有第二个循环。还有第三种选择ion-收集html,它应该在second foreach中输出到一个临时字符串变量中,而不是数组中。好吧……这两个建议是相同的,只是在第一种情况下,
    $data\u auth
    数组没有额外的内存使用,也没有第二个循环。还有第三个选项-收集html,它应该在second foreach int中输出o临时字符串变量,而不是数组。