Se non ho capito male è xke fai in ordine sbagliato le query... xke prima fai la query che vede dove è l'utente...


$sql = ("SELECT LUOGO_ONLINE FROM online WHERE USER_ONLINE='$Nome'");
$query = @mysql_query ($sql, $connessione) or die(mysql_error());
while ($row=mysql_fetch_array($query)){
$LOCAZIONESOVI = $row['LUOGO_ONLINE'];
}
Poi fai l'aggiornamento mettendolo in prigione:

$sql = ("UPDATE online SET luogo_online='$motto' WHERE user_online='$Nome'");
$query = @mysql_query ($sql, $connessione) or die(mysql_error());
}
Ma a questo punto... il dato nel database è si cambiato... ma tu l'avevi letto prima della modifica... e quindi lo vedi come "Non aggiornato"...

In altre parole:

1) leggi dal database che l'utente è in piazza e salvi il valore in $LOCAZIONESOVI
2) metti l'utente in prigione facendo l'update
3) a questo punto se stampi il valore di $LOCAZIONESOVI è giusto ke trovi stampato piazza... xke quella variabile l'avevi salvata prima dell'update...
quindi dovresti rifare la select che controlla dove si trova l'utente... e allora si che ora vedi il dato aggiornato...e quindi lo trovi correttamente in prigione

...sempre se ho capito bene quello ke dicevi..