2017-03-01 13 views
0

私がしようとしているのは、配列に渡すことができるように私の$streamitem_imageuploadedの値を取得することです。ネストされたループと何か関係がありますか?現在私の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ページは問題ありません。配列の中から変数を呼び出そうとしていないときだけです。

+0

'$ streamitem_imageuploaded'は配列または文字列であると考えられますか?あなたは 'foreach'で両方の方法を使用します。 – Barmar

+1

'$ images'が空の場合、' $ streamitem_imageuploaded'は設定されません。また、このコードでは、エラーを参照する行は何行ですか? –

+0

私はvar $ streamitem_imageuploadedの値を返します。上記のように、varを一貫して使用します。 1つのブロックは文字列、別のブロックは配列です。いずれにしても、スクリプトの残りの部分が値を返す場合は、どちらもうまくいくはずです。 1. $ checkphoto_id ['photo_id'] == 0(実際は0) 2. $ photo_num 3. $ imagesの内容を確認します。 ループを離れてイメージ配列を保持し、$ photo_num = 1を設定することによって、残りの実行をテストします。 – mush

答えて

0

私が行うために必要なすべては、foreachループの外に列を追加し、私の答えのために研究したときに、私はこれを使用し

$streamitem_imageuploaded = array(); 

私の$ JSON配列内これを呼び出すことでした。 Return all values stored in var outside foreach loop

0

これは動作するはずです。静的な値を追加して物をシミュレートしました。これは$ streamitem_imageuploaded varの未定義を生成せずに正常に動作します。したがって、問題はあなたのmysqlコードまたはあなたの他の条件でなければなりません。

$rowhhh =1; 
$photo_num = 1; 
$images = array(); 
    if ($rowhhh == 1) { 
    $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 = array(
'posts' => array(), 
'count' => $rowcount, 
'commentlinktoggle' => $sendcommentlinktoggle, 
'streamitem_formholder' => $streamitem_formholder, 
'stopcommentsbutton' => $stopcommentsbutton, 
'streamitem_uploadimage_count' => $streamitem_uploadimage_count, 
'streamitem_imageuploaded' => $streamitem_imageuploaded, 
); 
print_r($json); 
+0

働く – Gateway

+0

問題は条件です...あなたの$ checkphoto_id ['photo_id'] == 0が本当に評価されない理由をチェックする考えでしょう。あなたが答えから恩恵を受けたなら、それを受け入れるように親切にしてください。 – mush

関連する問題