Premessa: $w_TAB000_r_cnt è una cosa, $TAB000_obj->TAB000_r_cnt è un'altra.
Codice PHP:
// $TAB000_sql sarà un result set, ma non capisco perché fai questa cosa se poi
// sovrascrivi la variabile senza usarla
$TAB000_sql $data->query("SELECT TAB000_r_cnt FROM TAB000 WHERE TAB000_id = $w_TAB000_id_ric");

if(
mysql_num_rows($TAB000_sql) > 0)
{
    
// $TAB000_obj è un oggetto contenente il risultato della query
    
$TAB000_obj $data->estrai($TAB000_sql);

    
// a $w_TAB000_r_cnt assegni il contenuto di $TAB000_obj->TAB000_r_cnt
    // ovvero il valore 5
    
$w_TAB000_r_cnt $TAB000_obj->TAB000_r_cnt;

    If (
$wpm000_tipope == "W"
    {
        
// STAI INCREMENTANDO DI 1 $w_TAB000_r_cnt, NON $TAB000_obj->TAB000_r_cnt !!!
        // quindi $w_TAB000_r_cnt vale 6, mentre $TAB000_obj->TAB000_r_cnt continua a valere 5 !!!
        
$w_TAB000_r_cnt $w_TAB000_r_cnt 1;

        
$TAB000_sql $data->query("UPDATE TAB000 SET 
                                                     TAB000_r_cnt    = 
$w_TAB000_r_cnt
                                                     WHERE TAB000_id = 
$w_TAB000_id_ric");
        
        echo 
$TAB000_obj->TAB000_r_cnt// contiene 5 !!!!
        // ed è giusto che sia ancora 5, perché non l'hai modificata questa variabile
        // tu hai modificato $w_TAB000_r_cnt
        // se fai di nuovo la select conterrà 6, ma finché non la fai conterrà ancora il valore precedente
    
}