Come richiesto dall'OP.
Aggiungi o die(mysqli_error($conn)) a mysqli_query() per vedere se ne derivano errori.
È anche meglio usare affected_rows() anche in aggiornamento.
Inoltre, stai utilizzando if(isset($_POST['contact'])){ e hanno 2 attributi di nome per il modulo e il pulsante.
Rimuovi quello da <form> . Attributo del nome su <form> funziona solo se si utilizza jQuery/Ajax.
Inoltre, se il tuo modulo e PHP/SQL si trovano nello stesso file, utilizza un'intestazione per reindirizzare alla stessa pagina e assicurati di non essere * output prima dell'intestazione. e assicurati che i tag brevi siano abilitati.
Riferimenti:
- https://php.net/manual/en/mysqli. related-rows.php
- https://php.net/manual/en/mysqli.error. php
- https://php.net/manual/en/function.header. php
*Come correggere "Intestazioni già inviate " errore in PHP
Il tuo codice attuale è aperto a SQL injection
. Usa mysqli_* con dichiarazioni preparate
o DOP
con dichiarazioni preparate
.