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
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.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>';
}
Ringrazio chiunque sia disposto ad aiutare