mysql テーブル (ジョブ) から行をフェッチしています。そのフェッチの中で、別のテーブル (アカウント) からもフェッチしています [ID_ASSOC がジョブに関連付けられているかどうかに応じてアカウント API キーを受け取るため]: 以下はコードです。
$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
----------------------------------
これを行うと、1行の出力しか得られず、その理由がわかりません。上記の出力を行の数だけ繰り返したいのですが、1行しか実行していません(コードでアカウントフェッチを使用)。ただし、内部フェッチ(アカウントフェッチ)なしで実行すると、必要に応じて複数の行が返されます。どうしてこれなの?(以下は、アカウント フェッチなしのサンプル コードです):
$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
----------------------------------