Php mysqli结果数量取决于内部获取,而

Php mysqli结果数量取决于内部获取,而,php,mysql,mysqli,Php,Mysql,Mysqli,我正在从mysql表(作业)中获取行。在这个获取过程中,我还从另一个表(accounts)获取数据[接收accountapi键,所有这些都取决于作业所附加的ID\u ASSOC]:下面是代码 $sql = "SELECT * FROM jobs"; $query = mysqli_query($db_conx, $sql); while($row = mysqli_fetch_assoc($query)){ echo $row['action']; echo "<br/>

我正在从mysql表(作业)中获取行。在这个获取过程中,我还从另一个表(accounts)获取数据[接收accountapi键,所有这些都取决于作业所附加的ID\u ASSOC]:下面是代码

$sql = "SELECT * FROM jobs";
$query = mysqli_query($db_conx, $sql);
while($row = mysqli_fetch_assoc($query)){
   echo $row['action'];
   echo "<br/>";
   $job_poster_id = $row['id_assoc'];

        $sql = "SELECT * FROM accounts WHERE id_assoc='$job_poster_id'";
        $query = mysqli_query($db_conx, $sql);
        while($rows = mysqli_fetch_assoc($query)){
        $username = $rows['twitter_username'];
            $consumer_key = $rows['consumer_key'];
            $consumer_secret = $rows['consumer_secret'];
            $access_token = $rows['access_token'];
            $access_token_secret = $rows['access_token_secret'];
        }

  echo $job_poster_id ;
  echo "<br/>";
  echo $twitter_username;
  echo "<br/>";
  echo "----------------------------------";
  echo "<br/>";
}

当我这样做时,我只得到一行输出..我似乎不知道为什么。我希望上面的输出重复多次,因为它有行,它只做一行(代码中有帐户获取)。但是,当我在没有内部fetch(accounts fetch)的情况下执行此操作时,它会根据需要返回多行。为什么会这样?(以下是不带帐户的示例代码):

$query=mysqli\u query($db\u conx,$sql);
while($row=mysqli\u fetch\u assoc($query)){
echo$row['action'];
回声“
”; $job_poster_id=$row['id_assoc']; $sql=“从id\u assoc=“$job\u poster\u id”的帐户中选择*; $query=mysqli\u query($db\u conx,$sql);
问题是您正在使用
$query
进行内部和外部查询

当内部查询运行并逐步通过循环时,它将迭代到结果集的末尾;当外部while循环运行时,
mysqli\u fetch\u assoc($query)
将返回false,因为您已经在结果集的末尾,而不是您期望的结果集


您可以通过重命名其中一个
$query
变量来解决此问题。

您可能会遇到问题,因为您正在使用
$query
存储两个查询的结果。请尝试将内部查询重命名为其他查询,看看这是否会产生影响。太好了!这正是我试图解决的问题!谢谢。请回答此问题ion正在使用该答案,我会选择它作为最佳答案。再次感谢。$twitter\u username未在该代码中设置。$username正在用于存储行twitter\u username。匹配您的代码变量。是的,这并没有导致此问题。但感谢您注意到(我在此处发布时切换变量名称[让它们更通用]忘了切换那个)。
specific-message 
4 
admin
----------------------------------
$sql = "SELECT * FROM jobs";
$query = mysqli_query($db_conx, $sql);
while($row = mysqli_fetch_assoc($query)){
  echo $row['action'];
  echo "<br/>";
  $job_poster_id = $row['id_assoc'];

  echo $job_poster_id ;
  echo "<br/>";
  echo "----------------------------------";
  echo "<br/>";
} 
specific-message
4
----------------------------------
specific-message
1
----------------------------------
specific-message
2
----------------------------------
$query = mysqli_query($db_conx, $sql);
while($row = mysqli_fetch_assoc($query)){
    echo $row['action'];
    echo "<br/>";
    $job_poster_id = $row['id_assoc'];

    $sql = "SELECT * FROM accounts WHERE id_assoc='$job_poster_id'";
    $query = mysqli_query($db_conx, $sql);