Cita: La variable la inicializo en el mismo formulario
No es que inicializes una variable (que se puede, pero no es el chiste) sino que exista un elemento del formulario con dicho "name".
Por favor lee esto:
http://www.forosdelweb.com/f18/como-preguntar-foro-php-cosas-tener-cuenta-295415/
Cosas a tener en cuenta:
- Inicialmente mostrabas un error (Undefined index:
campo) que no concuerda con lo que muestras después ($_POST['codigo']); en todo caso debió decir:
Undefined index: codigo.
- No muestras la línea implicada... ayuda a que se te ayude, encierra tu código, facilita la hubicación --con comentarios-- del problema.
- No proporcionas todo el código... el error esta en el formulario.
Lo dicho, debes tener un
<input .... name="codigo">, asegurate lo tengas y que el "name" coincida con la key de $_POST.
Respecto al INSERT...
. No es necesario especificar todos los campos de tu tabla. Supongo que son todos ó la minoria al menos... en tal caso mejor dar valores vacios a los que no van a recibir nada.
Ejemplo:
-------------------------------
Tabla: prueba
Campos:- id -> no hay que darle valor, se asignará por defecto.
- nombre -> Requerido
- Apellido -> Requerido
- Edad -> Requerido
- Notas -> Hay que dejar vacio
-------------------------------
Tu query:
INSERT INTO prueba(nombre, Apellido, Edad) VALUES ('Juan', 'Valencia', '38');
Mejor:
INSERT INTO prueba VALUES ('', 'Juan', 'Valencia', '38', '');
Ve cómo no es necesario enlistar todos los campos, pero entonces los valores a insertar deben corresponder al número de campos totales de tu tabla, dando valores vacios a aquellos que no deben recibir nada. En este ejemplo con 5 campos la query es notoriamente más corta... aplicalo al tuyo y la diferencia será aún más
.
Se enlistan los campos cuando el número de datos a ingresar será menor al de campos en la tabla. Dudo sea tu caso...