Bueno, pues prueba a poner la comprobación debajo de la inserción, es decir poner: si se ejecutó, hacer las siguientes cosas (sabes que devuelve verdadero o falso, o eso creo) si no se ejecutó mostrar el error.
Pero vamos, que no tengo claro donde dices que te falla, en la inserción¿? Pues prueba así:
Código PHP:
if ($_GET["accion"] == "insertar")
{
$sql = "INSERT INTO " . $subcategoria . " (referencia, descripcion, colores, 25, 50, 100, 250, 500, 1000, 5000, 10000, codigo_marcaje, medida_marcaje, colores_maximos, incremento) VALUES ('" . $_POST["referencia"] . "', '" . $_POST["descripcion"] . "', '" . $_POST["colores"] . "', " . $_POST["25"] . ", " . $_POST["50"] . ", " . $_POST["100"] . ", " . $_POST["250"] . ", " . $_POST["500"] . ", " . $_POST["1000"] . ", " . $_POST["5000"] . ", " . $_POST["10000"] . ", '" . $_POST["codigo_marcaje"] . "', '" . $_POST["medida_marcaje"] . "', '" . $_POST["colores_maximos"] . "', " . $_POST["incremento"] . ")";
$insertar = mysql_query($sql, $conexion);
if !($insertar) {
echo "Ha fallado la inserción";
echo mysql_error();
}
else { ... //todo lo demás ... }
No te puedo asegurar que pasa pero haciendo echos a los pocos puedes comprobar donde te falla exactamente y localizar el problema. Con el error de mysql debería mostrarte un error si hubiese alguno en la inserción, pero ya te digo que tengo poca idea de php :P