cambia il tuo codice così
Codice PHP:
$query = "insert into statistiche_pg (id, pg, nome, visibile, valore, tipo) values ";
$conta=0;
foreach ($_POST as $chiave=>$valore){
if ( $conta == 0 ) $conta = 1;
else $query .= ", ";
$query .= " (NULL, $pgid, '$chiave', '$chiave', $valore, '$tipo') ";
}
mysql_query($query) or die ( mysql_error()." ".$query );
come facevi tu in sostanza la prima volta che entrava nel ciclo inseriva il primo record, la seconda volta reinseriva il primo record e il secondo, per risolvere basta effettuare la query fuori dal ciclo, comunque altro consiglio che ti do è quello di ripassare come funzionano i cicli (for, while, do while, foreach) e di utilizzare un'opportuna indentazione, altrimenti rischi di creare codice poco chiaro anche a te stessa.