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 originalINSERT 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$columnas = $nombre; //este siempre va a ir, es obligatorio
$campos = $nombre;
if ($nif!='') {
$columnas+=", nif";
$campos+=", $nif";
}
Y luego
Código PHP:
Ver originalINSERT INTO cliente ($columnas) VALUES($campos);
No se si me explico.