Home why the while loop runs once?
 the following code is only running once , while the number of times it should run is 4 , any help ? PHP:: prepare("SELECT name_ FROM projects")) { $stmt->execute();$stmt->bind_result($n); //$stmt->store_result(); $result =$stmt->get_result(); if($result->num_rows == 0) { echo "No Projects";$stmt->close(); $conn->close(); exit(); }else { while ($row = $result->fetch_assoc()) {$dirname = $dirname .$row["name_"] . "/"; $images = glob($dirname . "*.*", GLOB_BRACE); foreach($images as$image) { echo $row["name_"]; echo$result->num_rows; // returns 4 !!!! $image = base64_encode($image); //$arr[] =$image; array_push($arr,$image); $image = ""; } } echo json_encode($arr); // returns 1 json row oonly } } $stmt->close();$conn->close(); exit(); } ?>  num rows return 4 so why it runs or loops for one time only ? I am trying to get images from images folder to echo it back FIX:: according to jhilgeman's answer I added this part to the end of foreach: $dirname = "images/main/";  jhilgeman 2# jhilgeman Reply to 2018-01-12 21:42:52Z  If I had to guess, I'd say that it's looping correctly, but the problem is this line: $dirname = $dirname .$row["name_"] . "/";  Each time you loop, you're APPENDING the $row["name"] value to whatever$dirname is. So let's say that you get 4 rows back like this: name ---- houses boats computers animals  At the beginning of the loop, let's say $dirname is just "/images/". So the first loop would change$dirname to be: /images/houses/  Then the second loop would change it to be: /images/houses/boats/  The third loop would then make it: /images/houses/boats/computers/  And finally the fourth loop: /images/houses/boats/computers/animals/  So unless you're expecting the $dirname to be appended that way, you probably want to instead REPLACE$dirname instead of appending to it each time. Try this instead for your loop: while ($row =$result->fetch_assoc()) { $images_dirname =$dirname . $row["name_"] . "/";$images = glob($images_dirname . "*.*", GLOB_BRACE); foreach($images as \$image) { ...etc... } }