My problem is simple. On my website I'm loading several results from MySQL tables inside a while loop in PHP and for some reason the execution time varies from reasonably short (0.13s) or to confusingly long (11s) and I have no idea why. Here is a short version of the code:
<?php
    $sql = 
    "SELECT * FROM test_users, image_uploads 
        WHERE test_users.APPROVAL = 'granted' 
        AND test_users.NAME = image_uploads.OWNER
        ".$checkmember."
        ".$checkselected."
        ORDER BY " . $sortingstring . " LIMIT 0, 27
    ";
$result = mysqli_query($mysqli, $sql);
$data = "";
$c = 0;
$start = microtime(true);
while($value = mysqli_fetch_array($result)) {
    $files_key = $value["KEY"];
    $file_hidden = "no";    
    $inner_query = "SELECT * FROM my_table WHERE KEY = '".$files_key."' AND HIDDEN = '".$file_hidden."'";
    $inner_result = mysqli_query($mysqli, $inner_query);
    
    while ($row = mysqli_fetch_array($inner_result)) {
        // getting all variables with row[n]
    }
    $sql = "SELECT * FROM some_other_table WHERE THM=? AND MEMBER=?";
    $fstmt = $mysqli->prepare($sql);
    $fstmt->bind_param("ss", $value['THM'], 'username');
    $fstmt->execute();
    $fstmt->store_result();
    if($fstmt->num_rows > 0) { 
        $part0 = 'some elaborate string'; 
    } else {
        $part0 = 'some different string'; 
    }
    $fstmt->close();
    
    // generate a document using the gathered data
    include "../data.php"; // produces $partsMerged
    
    // save to data string
    $data .= $partsMerged;
    $c++;
}
$time_elapsed_secs = substr(microtime(true) - $start, 0, 5);
// takes sometimes only 0.13 seconds
// and other times up to 11 seconds and more
?>
I was wondering where the problem could be.
Does it have to do with my db connection or is my code flawed? I haven't had this problem at the beginning when I first implemented it but since a few months it's behaving strangely. Sometimes it loads very fast other times as I said it takes 11 seconds or even more.
How can I fix this?
 
     
    