PHP repeated results

I’m having hard time with this issue
I have multiple queries some data appear in other results…

$query = "SELECT * FROM `hotels`";
if(mysqli_num_rows($result)>0) {
    while($row=mysqli_fetch_array($result)) {       
        $hotelname = $row['hotel_name'];

    $queryPhotos="SELECT * FROM hotel_photo WHERE hotel_id = ".$row['id']." ";
            while($rowPhotos=mysqli_fetch_assoc($resultPhotos)) {
                        $photos[] = array(
                         "imgUrl"   =>  $rowPhotos['img_url'],
                         "hotel_id" =>  $rowPhotos['hotel_id']
    $apiResult[] = array(
            'hotel_name' => $hotelname,
            'hotel_photos' => $photos,

header('Content-type: application/json');
echo json_encode($apiResult, JSON_NUMERIC_CHECK);


This is my hotel database
enter image description here

and my hotel_photos database
enter image description here

Why I’m still seeing ‘hotel_id 1’ in dubai hotel…?
enter image description here

Thank you so much for your help.

>Solution :

You aren’t empting the $photos array in every new iteration for a new hotel. Hence, the previous results also exists in the array. You need to fix as below:


    while($row = mysqli_fetch_array($result)) {       
        $hotelname = $row['hotel_name'];
        $photos = []; // add this line

Leave a Reply