Ciao a tutti,

ho un problema con un sito web che sto scrivendo, in poche parole all'apertura della pagina uno script php deve recuperare tutti i dati degli utenti presenti al momento e fare una lista, in alternativa dovrebbe far vedere un messaggio in cui dice che non c'è nessuno presente

Codice PHP:
$mysqli = new mysqli('localhost''sito_prenotazione''prova''aule_studenti');
if (
$mysqli->connect_error) {
    echo 
'<div class="alert alert-danger mt-5 mx-auto col-md-5" role="alert">
    Spiacenti non è stato possibile contattare il server.</br> Preghiamo di riprovare più tardi. </br>
    Se il problema dovesse persistere si prega di contattare aulestudenti@gmail.com
  </div>'
; }

  
$now = new DateTime();
  
$giorno $now->format('Y-m-d');
  
$ora $now->format('H:i');







 
    
$lista $mysqli -> query("SELECT nome, cognome, tesserati.tessera, volontario, pagamento  FROM tesserati JOIN presenza  ON tesserati.tessera = presenza.tessera WHERE '$ora' > ora_inizio AND '$ora' < ora_fine AND data = '$giorno' ");
    if(
$lista -> num_rows 0){
        echo 
'<div class="accordion col-md-8 mx-auto mt-5" id="accordionPanelsStayOpenExample">';
        while(
$row $lista->fetch_array(MYSQLI_ASSOC)){
             
// default su si perchè viene modificato solamente in caso di pagamento non effettuato
            
echo '
            <div class="accordion-item">
            <h2 class="accordion-header" id="panelsStayOpen-heading'
.$row["tessera"].'">
              <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#panelsStayOpen-collapse'
.$row["tessera"].'" aria-expanded="true" aria-controls="panelsStayOpen-collapse'.$row["tessera"].'">'
                
.$row["nome"]. '  '.$row["cognome"];
                if(
$row["volontario"] != 0){
                    echo 
'<span class=" badge rounded-pill bg-success ms-2">volontario</span>';
                }
               if(!
$row["pagamento"]){
                    echo 
'<span class=" badge rounded-pill bg-danger ms-2">Pagamento</span>';
                }

                echo 
'
              </button>
            </h2>
            <div id="panelsStayOpen-collapse'
.$row["tessera"].'" class="accordion-collapse collapse " aria-labelledby="panelsStayOpen-heading'.$row["tessera"].'">
              <div class="accordion-body">
                <ul class="list-group">
                <li class="list-group-item"> Tessera:  '
.$row["tessera"].'</li>
              </ul>
              </div>
            </div>
          </div>
            '
;
        }

        echo 
'</div>';

   

    }else{
        echo 
'<div class="alert alert-danger mt-5 mx-auto col-md-5" role="alert" >
              Nessuno presente.
               </div>'
;
    } 
il problema è che quando carico questa pagina i dati non sono aggiornati. ad esempio il questo momento fa vedere i dati di questa mattina invece che quelli attuali. Non riesco però a capire cosa io abbia sbagliato (non conosco molto bene il php quindi se vedete errori anche non direttamente collegati al problema sono felice di accettare i consigli) anche perchè fino a che lo provavo su localhost funzionava, aveva bisogno di un paio di refresh per aggiornare la lista ma alla fine funzionava tutto. Il problema è presente anche su un'altra pagina dove però è presente anche un form e quando si fa submit di quest'ultimo i dati vengono aggiornati. In questo momento il sito è su siteground e ho notato anche un incoerenza sugli orari che risultano di due ore antecedenti alla registrazione effettiva. Non so se possa avere a che fare con questo.

Ringrazio chiunque sia disposto ad aiutare