我想要做的是得到我的$streamitem_imageuploaded
值,所以我可以將它傳遞到我的$json
陣列。這與嵌套循環有什麼關係嗎?當我發送我的json數據回來,我得到的是未定義變量$streamitem_imageuploaded
與下面的代碼。調用變量從內部foreach循環放入陣列
if($checkphoto_id['photo_id']==0){
$sqlhhh = "SELECT * FROM userphotos WHERE photo_name='".$checkphoto_id['photo_title']."' AND photo_ownerid='".$checkphoto_id['streamitem_creator']."' AND photo_datetime='".$checkphoto_id['streamitem_timestamp']."' ORDER BY photo_id ASC";
$resulthhh = mysqli_query ($mysqli,$sqlhhh)or die(mysqli_error($mysqli));
$photo_num=mysqli_num_rows($resulthhh);
$images = array();
while ($rowhhh = mysqli_fetch_assoc($resulthhh)) {
$imageArray = array(
'data' => $rowhhh['photo_imagedata'],
'photo_streamitem_id' => $rowhhh['photo_streamitem_id'],
'id' => $rowhhh['photo_id']
);
$images[] = $imageArray;
}
foreach ($images as $image) {
if($photo_num==1){
$streamitem_imageuploaded='<a href="photo.php?pid='.$image['id'].'&streamitem_id='.$image['photo_streamitem_id'].'"><img class="stream_images" style="width:200px;height:200px;object-fit:cover;margin:2px;padding:2px;" src="data:image/jpeg;base64,'. base64_encode($image['data']) .'" /></a>';
}else{
$streamitem_imageuploaded[]='<a href="photo.php?pid='.$image['id'].'&streamitem_id='.$image['photo_streamitem_id'].'"><img class="stream_images" style="width:100px;height:100px;object-fit:cover;margin:2px;padding:2px;" src="data:image/jpeg;base64,'. base64_encode($image['data']) .'" /></a>';
}
}
}
商店我的$ JSON數組內的輸出值
$json = array(
'posts' => array(),
'count' => $rowcount,
'commentlinktoggle' => $sendcommentlinktoggle,
'streamitem_formholder' => $streamitem_formholder,
'stopcommentsbutton' => $stopcommentsbutton,
'streamitem_uploadimage_count' => $streamitem_uploadimage_count,
'streamitem_imageuploaded' => $streamitem_imageuploaded,
);
UPDATE
編輯改變,仍然得到同樣的結果
if($photo_num==0){
$streamitem_imageuploaded='';
}
if($photo_num==1){
$streamitem_imageuploaded='<a href="photo.php?pid='.$image['id'].'&streamitem_id='.$image['photo_streamitem_id'].'"><img class="stream_images" style="width:200px;height:200px;object-fit:cover;margin:2px;padding:2px;" src="data:image/jpeg;base64,'. base64_encode($image['data']) .'" /></a>';
}
if($photo_num>1){
$streamitem_imageuploaded[]='<a href="photo.php?pid='.$image['id'].'&streamitem_id='.$image['photo_streamitem_id'].'"><img class="stream_images" style="width:100px;height:100px;object-fit:cover;margin:2px;padding:2px;" src="data:image/jpeg;base64,'. base64_encode($image['data']) .'" /></a>';
}
此代碼工作在標準PHP頁面沒有問題。只是在嘗試從數組內調用變量時不行。
'$ streamitem_imageuploaded'應該是一個數組還是字符串?你在'foreach'中使用它。 – Barmar
如果'$ images'爲空,那麼'$ streamitem_imageuploaded'永遠不會被設置。此外,錯誤引用是什麼行以及該代碼中的行是什麼? –
我得到了var $ streamitem_imageuploaded的值。如上所述,你使用var不一致。在一個塊中作爲字符串,在另一個作爲數組。無論如何,如果腳本的其餘部分將值返回,兩者都應該有效。 我建議檢查: 1. $ checkphoto_id ['photo_id'] == 0(真的是0) 2. $ photo_num 3.檢查$ images的內容。 通過while循環離開並保存圖像數組並設置$ photo_num = 1來測試執行的其餘部分: – mush