Due considerazioni:
1. la funzione aggiorna potrebbe stare all'inizio dello script e non dentro gli if
2. non c'è alcuna necessità di fare un refresh dopo la funzione aggiorna se la richiami prima di caricare i dati da visualizzare

Cioè:
1. controlli i permessi
2. se (isset($_POST['memorizza'])) allora richiami aggiorna() (ma puoi anche eseguire il codice direttamente visto che ti servirà solo una volta in questo script!)
3. carichi i dati dal DB e li visualizzi

Nessun refresh richiesto!

PS ad ogni modo quando mi serve io utilizzo un header(location: ... ) per fare il refresh così l'utente non se ne accorge neppure perchè tutto avviene lato server