Ciao leslie2016
credo che il problema sia come hai strutturato le query. In questo tuo modo se l'ultimo utente della lista ha un'appuntamento il risultato sarà true di sicuro. Prova così: in questo modo con il break dovrebbe uscire se un utente non ha appuntamenti.

$query= "SELECT * FROM utenti"; $Recordset = mysql_query($query, $mcl) or die(mysql_error()); while($row=mysql_fetch_row($Recordset)) { $id_utente_abilitato=$row[0]; $query_a= "SELECT * FROM appuntamento where giorno_app='$data_appu' and ora_inizio<='$ora_cont' and ora_fine>='$ora_cont' and id_utente='$id_utente_abilitato'"; $Recordset_a = mysql_query($query_a, $mcl) or die(mysql_error()); $entrato = false; while($row_a=mysql_fetch_row($Recordset)) { $entrato = true; $id_libero=$row_a[0]; } if($entrato==false) break; }