Colleghi PHPisti buondì

ho un problema che mi turba.
Sto sviluppando una classe con OOP 5 sugli utenti on line ma c'è qualcosa che non mi torna.
Ho una tabella dove conto e verifico gli utenti on line, quindi li aggiungo e li cancello verificando il range di tempo da me imposto. Quando si tratta di aggiungere gli utenti va tutto bene, il poblema nasce quando li voglio cancellare. Me li cancella solo una volta anche se è dentro un ciclo WHILE e se la condizione IF è rispettata. Pare quasi che dopo un DELETE mi vada fuori dal ciclo.
Questo è il codice:

Codice PHP:
$time time();
if(
$this->get_db_stat('onlinecount') > 0) {
        while(
$row_d $this->db->sql_fetch_row($result)) {
            echo 
"Dentro WHILE delete
"
;
            
$user_time $row_d['online_time'];
            
$range_time time() - $user_time;
            if(
$range_time $this->gb_config['online_seconds']) {
                
$sql "DELETE FROM " ONLINE_TABLE " WHERE online_time = '$user_time'";
                if(
$result $this->db->sql_query($sql)) {
                    echo 
"CANCELLATO 
"
;
                }
            }
        }

Perchè dopo che mi cancella un record mi esce dal ciclo WHILE? :master:
E' normale?