2017-01-28 3 views
1

Ich versuche, alle verfügbaren Bilder durchlaufen und an die Client-Seite senden. Mit meinem Code unten kann ich nur einen bekommen, wenn ich mehrere Bilder gleichzeitig hochlade. Der exakt gleiche Code ist auch in meiner PHP-Seite und zeigt alle Bilder perfekt. Ich nehme an, dass es etwas mit meinem Versuch zu tun hat, ein Array oder die Schleife selbst zu konstruieren. ;}Erhalten Sie mehrere Bilder über JSON

Ich bin mir bewusst, mein Skript zu SQL-Injection momentan verwundbar ist, kommt Sicherung später .;)

$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); 

while ($rowhhh = mysqli_fetch_assoc($resulthhh)) { 
    $json = array(
     'posts' => array(), 
    ); 

    $images = array(); 
    $image[] = $rowhhh['photo_imagedata']; 
} 

foreach ($image 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; 

Antwort

1

Das ist, weil Sie $images Array in jeder Iteration von while() Schleife sind initialisiert. Nehmen Sie diese Aussage $images = array(); außerhalb von while() Schleife. Und die gleiche Logik gilt auch für $json Array.

Auch Blick auf die beiden folgenden Zeilen,

$image[] = $rowhhh['photo_imagedata']; 

und

foreach ($image as $ima) { ... 

$image ist undefined, haben Sie $images Array an diesen Orten zu verwenden.

Also, Ihre while() und foreach() Schleifen in der folgenden Art und Weise umgestalten,

// your code 
$photo_num=mysqli_num_rows($resulthhh); 
$json = $images = array(); 
while ($rowhhh = mysqli_fetch_assoc($resulthhh)) { 
    $images[] = $rowhhh['photo_imagedata']; 
} 

foreach ($images as $ima){ 
    $posts = array(); 
    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; 
} 
+0

Danke, dass für. Arbeite jetzt. Freut mich zu wissen, dass ich nicht zu weit weg war. – Gateway

Verwandte Themen