Sto script va messo in una pagina a se o no?
Si può fare in entrambi i modi. Se vuoi inviare i dati ad un altra pagina, modifica l'action puntandolo a edita2.php.

edita2.php si occuperà di recuperare $_POST['id'], $_POST['ora'], $_POST['data'] e $_POST['ragione']. Dopodichè, in funzione di $_POST['id'], si eseguirà la query per l'aggiornamento (UPDATE). Capito il concetto, il resto dovrebbe venire da se, no?

Tra l'altro vorrei anche che i campi restituiti mi facessero visualizzare quello che c'è scritto attualmente invece di essere vuoti.
Succede perchè $_GET["id"] non è valido (non esiste nel database), serve un controllo per verificare se $_GET["id"] esiste o meno.