Pues no me queda muy claro el script, pero aquí te dejo el método que yo uso para insertar registros de un formulario a una base de datos sql:
Lo ejemplificare con un pequeño sistema que guarda el NOMBRE y un COMENTARIO en una base de datos llamada PRUEBA
Primero tenemos el html con el formulario (es muy simple, solo para ejemplificar):
Código PHP:
<form method="post" action="guardar.php" name="formulario">
nombre: <input type="text" name="NOMBRE"><br>
comentario <textarea name="COMENTARIO" cols="30" rows="5"></textarea><br>
<input type="submit" name="enviar" value="Enviar">
</form>
Ahora tenemos el archivo guardar.php que toma lo que se escribio en NOMBRE y COMENTARIO y los guarda en PRUEBA
Código PHP:
if($_POST['enviar']){
$NOMBRE = $_POST['NOMBRE'];
$COMENTARIO = $_POST['COMENTARIO'];
mysql_query("insert into PRUEBA (nombre,comentario) values ('$NOMBRE','$COMENTARIO')") ;
echo "Campo guardado";
}
Por lo que analice en tu script, tu eliges que campos vas a crear, pero eso esta mal, los campos en una tabla ya deben estar preestablecidos, no puedes estar agregando campos conforme los usas, debes planear que necesitas y que no.
Saludos.