C'è qualcosa di perverso in quello che hai detto.
Aggiorna che vuol dire? Io ho inserito dei dati che sono stati registrati, quindi Aggiorna che vuol dire?
Vuol dire che devo ricominciare da capo ad inserire nuovi dati?
Perché se è così l'ID di cui parli è parte di un login? Cioè è l'identificativo di chi sta inserendo i dati o solo del record da aggiornare?
Se è l'ID di chi ha effettuato il login, non può stare in una GET è folle. Piuttosto mettilo in una sessione, così ad ogni aggiornamento della pagina comunque ti rimane.
Inoltre così non sei costretto ad usare nella stessa pagina sia GET che POST.
Poi mi pare di capire che usi PDO, è stato creato per impedire di inserire nelle query dati direttamente provenienti dai campi di un form, non prima di un controllo.
Questa roba è folle:
Codice PHP:
$sql = "UPDATE alunni SET COGNOME = '".$cognome."' WHERE id_PERSONA = '".$id."'";
$result = $conn->query($sql);
molto meglio:
Codice PHP:
$sql = 'UPDATE alunni SET COGNOME = :cognome WHERE id_PERSONA = :id';
$statement = $conn->prepare($sql);
$statement->bindValue(':cognome', $cognome, PDO::PARAM_STR);
$statement->bindValue(':id', (int)$id, PDO::PARAM_INT);
if ($statement->execute))
echo 'Perfetto, il record è stato aggiornato';
else
echo 'Qualcosa è andato storto e il record non è stato aggiornato.';
Più lungo ma immensamente più sicuro, programmare in PHP a volte può essere più lungo che scrivere un romanzo, ma non dobbiamo farci prendere dalla fretta.
E scusami se sembro cattivo, ma come dice Filippo Toso, quel codice è un rischio.