我想要实现的是将所有可用的图像从userphotos发布到相同的photo_title / timestamp到一个数组中,并将图像数量发布到streamitem_id下的指定帖子中。
目前帖子应该插入,但如果我一次上传多个图片,则只有一个在帖子中显示。我将如何在已构造的数组'posts'中创建$posts['streamitem_imageuploaded']
数组。
这是我到目前为止所拥有的。
$call = "SELECT *
FROM streamdata m
JOIN user t1 ON m.streamitem_creator = t1.id
JOIN user t2 ON m.streamitem_target = t2.id
WHERE
m.streamitem_id > ".$_GET['streamitem_id']."
ORDER BY m.streamitem_timestamp DESC";
$check1 = mysqli_query($mysqli, $call) or die(mysqli_error($mysqli));
$json = array(
'posts' => array(),
);
while($row = mysqli_fetch_array($check1)){
$posts = array();
$posts['streamitem_id'] = $row['streamitem_id'];
//start of image code. only ouputs one image in each 'posts' array.
$sqlhhh = "SELECT * FROM userphotos WHERE photo_name='".$row['photo_title']."' AND photo_ownerid='".$row['streamitem_creator']."' AND photo_datetime='".$row['streamitem_timestamp']."' ORDER BY photo_id DESC";
$resulthhh = mysqli_query ($mysqli,$sqlhhh)or die(mysqli_error($mysqli));
$photo_num=mysqli_num_rows($resulthhh);
$images = array();
while ($rowhhh = mysqli_fetch_assoc($resulthhh)) {
$rowhhh = mysqli_fetch_assoc($resulthhh);
$images[] = $rowhhh['photo_imagedata'];
}
foreach ($images as $ima){
if($photo_num==1){
$posts['streamitem_imageuploaded']='<img src="data:image/jpeg;base64,'. base64_encode($ima) .'" />';
}else{
$posts['streamitem_imageuploaded']='<img class="stream_images" style="width:235px;height:200px;object-fit:cover;margin:2px;padding:2px;" src="data:image/jpeg;base64,'. base64_encode($ima) .'" />';
}
}
$json['posts'][] = $posts;
}
}
echo json_encode($json);
答案 0 :(得分:1)
问题是,您在$posts['streamitem_imageuploaded']
循环的每次迭代中覆盖foreach
,这就是为什么您总是在$posts['streamitem_imageuploaded']
中获取最后一张图片的原因。您必须在每次迭代中将<img ... />
(s)附加到$posts['streamitem_imageuploaded']
。
因此,请按以下方式更改foreach
循环,
foreach ($images as $ima){
if($photo_num==1){
$posts['streamitem_imageuploaded'] = '<img src="data:image/jpeg;base64,'. base64_encode($ima) .'" />';
}else{
$posts['streamitem_imageuploaded'][] = '<img class="stream_images" style="width:235px;height:200px;object-fit:cover;margin:2px;padding:2px;" src="data:image/jpeg;base64,'. base64_encode($ima) .'" />';
}
}