Foros del Web » Programando para Internet » PHP »

Inserción MySQL con campos recogidos de formulario (algunos vacíos)

Estas en el tema de Inserción MySQL con campos recogidos de formulario (algunos vacíos) en el foro de PHP en Foros del Web. Buenos días a todos. Partiendo de esta consulta: Código PHP: "INSERT INTO cliente ($campos) VALUES ('$nombre', '$nif', $fecha_alta, '$direccion', $telefono, $fax, '$nombre_comercial', '$contacto', '$correo', '$correo_admin', $codigo_postal, '$poblacion', '$provincia', '$comunidad', '$pais', $id_codigo_pais, $id_usuario, $id_estado)"  Y sabiendo que esos campos vienen de un formulario y a veces están vacíos ...
  #1 (permalink)  
Antiguo 28/11/2012, 04:34
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años, 7 meses
Puntos: 58
Inserción MySQL con campos recogidos de formulario (algunos vacíos)

Buenos días a todos.

Partiendo de esta consulta:
Código PHP:
"INSERT INTO cliente ($campos) VALUES ('$nombre', '$nif', $fecha_alta, '$direccion', $telefono, $fax, '$nombre_comercial', '$contacto', '$correo', '$correo_admin', $codigo_postal, '$poblacion', '$provincia', '$comunidad', '$pais', $id_codigo_pais, $id_usuario, $id_estado)" 
Y sabiendo que esos campos vienen de un formulario y a veces están vacíos (no todos los campos son obligatorios) pues así tal cual me da error. No me deja insertar los campos como ''. Vease esta consulta:

Código SQL:
Ver original
  1. INSERT INTO cliente (nombre, nif, fecha_alta, direccion, telefono, fax, nombre_comercial, contacto, correo, correo_administracion, codigo_postal, poblacion, provincia, comunidad, pais, id_codigo_pais, id_usuario, id_estado) VALUES ('prueba', '7668496', 2012-11-28, 'marques de quintanar', 986356659, 986724565, '', 'prueba', '[email protected]', '', , '', '', '', '', , 2, 1)

Me da error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' '', '', '', '', , 2, 1)' at line 159

No se pueden poner los campos como '' ? Que tendría que hacer? que si son '' ponerlos como NULL sin comillas?


EDIT: acabo de descubrir el error. Si el campo es INT no le estoy poniendo evidentemente. Así que si falta un campo INT en lugar de '' no aparece nada, quedaría algo así:
'campo de ejemplo', , 'El int sería el anterior', ''

Sólo se me ocurre esta solución y no se si hay alguna mejor:
En plan
Código PHP:
Ver original
  1. $columnas = $nombre; //este siempre va a ir, es obligatorio
  2. $campos = $nombre;
  3.  
  4. if ($nif!='') {
  5. $columnas+=", nif";
  6. $campos+=", $nif";
  7. }

Y luego
Código PHP:
Ver original
  1. INSERT INTO cliente ($columnas) VALUES($campos);

No se si me explico.

Última edición por alyciashape; 28/11/2012 a las 05:02

Etiquetas: campos, formulario, inserción, mysql, sql, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:10.