この質問は、この前の質問に関連しています:PDO、MySQL-関数から配列を返すにはどうすればよいですか?
しかし、それは十分に具体的ではないと感じました。
変数の各行を配列内の独自のキーで返し、呼び出し元のプログラムで使用できるようにします。
これは私がこれまでに持っているコードですが、それが正しいか、あるいは正しい方向に進んでいるかどうかはわかりません。
$total = $dbh->prepare("SELECT COUNT(post_id) FROM mjbox_posts");
$stmt = $dbh->prepare("SELECT * FROM mjbox_images JOIN mjbox_posts USING (post_id) WHERE post_id = ?");
$stmt->bindParam(1,$post_id);
$stmt->execute();
$resultarray = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
for($i=0;$i<=$total;$i++){
$resultarray[] = array("id"=>$row['img_id'],"filename"=>$row['img_file_name']);
}
}
return $resultarray;
データは配列に挿入されて呼び出し元のプログラムに戻されるようですが、配列内の各データを2回複製しているようです。
Array ( [0] => Array ( [0] => Array ( [id] => 5 [filename] => fullsize/8520430289728860armor.jpg ) [1] => Array ( [id] => 5 [filename] => fullsize/8520430289728860armor.jpg ) [2] => Array ( [id] => 6 [filename] => fullsize/5535575154865203bg1.jpg ) [3] => Array ( [id] => 6 [filename] => fullsize/5535575154865203bg1.jpg ) [4] => Array ( [id] => 7 [filename] => fullsize/7598226850012898images.jpg ) [5] => Array ( [id] => 7 [filename] => fullsize/7598226850012898images.jpg ) ) )