Provando a fare varie modifiche sono giunto a questo codice parzialmente funzionante
Ovvero, la selezione e deselezione delle checkbox funziona e modifica il flag in db, ma quando riapro la pagina azzera tutti (dovrei inserire un controllo ma ho fatto diverse prove e non riesco a risolvere), inoltre la prima checkbox che checko non la modifica, dalla seconda si


Codice PHP:
<?
// Siamo in un ciclo while di una query e siamo su un singolo ID
// Eseguo una query per vedere nella tabella se è flaggato o no

$result_tab mysql_query("select * from tabellaX where id like '".$rs['id']."'"$link)or die(mysql_error($link));
  while(
$rt mysql_fetch_array($result_tab)){            
    
$flag_da_db $rt['flag'];
    
$note_da_db $rt['note'];
}

// Qua forse ho fatto un po di macello
if(isset($flag_da_db)&&($flag_da_db!='')){$update_flag $flag_da_db;}else{$update_flag 0;}
    
$lista_id = Array();
    foreach (
$_POST['check'] as $key => $value){
        
$lista_id[] = $value;
    }
    if (
in_array($rs['id'], $lista_id)) {
        
$ins_flag 1;
        
$update_flag 1;
        
$checked 'checked="checked"';
    }else{
        
$ins_flag 0;
        
$update_flag 0;
        
$checked='';
    }
    
// Successivamente faccio una query per modificare il flag

mysql_query("Update tabellaX flag ='".$update_flag."'  where id like '".$rs['id']."' "$link) or die(mysql_error($link));
 
?>