gpt4 book ai didi

php - mysqli 结果数量取决于 while 内的获取

转载 作者:行者123 更新时间:2023-11-29 13:38:27 25 4
gpt4 key购买 nike

我正在从 mysql 表(作业)中获取行。在该提取过程中,我还从另一个表(帐户)中提取[接收帐户 api key ,所有这些都取决于 ID_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/>";
}

输出:

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);

问题在于您使用 $query 进行内部和外部查询。

当内部查询运行并逐步执行循环时,它会迭代到结果集的末尾;当外部 while 循环运行时,mysqli_fetch_assoc($query) 返回 false,因为您已经位于结果集的末尾 - 只是不是您期望的结果集。

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

关于php - mysqli 结果数量取决于 while 内的获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18451878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com