Beh lo sovrascrive perche' nel database hai evidentemente un campo chiamato NOME, quindi extract prende quello (che e' un indice del'array ritornato da mysqli_fetch_array()) e crea una variable chiamata $NOME di fatto sovrascrivendo l'array.
In pratica succede questo:
- tu usi l'array $NOME e crei un ciclo su quello
- all'interno del ciclo usi extract() che "estrae" una variabile dall'array e la chiama $NOME
- essendoci un conflitto di nomi, la seconda assegnazione sovrascrive la prima
- $NOME ora non contiene piu' l'array, ma il valore contenuto nel database
Invece di extract puoi usare l'array $linea, invece di $NOME userai $linea['NOME'] e via dicendo senza conflitti con altre variabili.