Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Campos null en base de datos

Estas en el tema de Campos null en base de datos en el foro de Bases de Datos General en Foros del Web. Cordial saludo a todos!!! Mi problema es el siguiente: Tengo una base de datos desarrollada en mysql version 5.0.51a, en ella tengo todos los campos ...
  #1 (permalink)  
Antiguo 29/09/2009, 19:10
Avatar de bitmorbido  
Fecha de Ingreso: septiembre-2009
Mensajes: 2
Antigüedad: 14 años, 6 meses
Puntos: 0
Campos null en base de datos

Cordial saludo a todos!!!
Mi problema es el siguiente:
Tengo una base de datos desarrollada en mysql version 5.0.51a, en ella tengo todos los campos inicializados a NULL ya que en diversos casos no es necesario llenar algunos por parte del usuario. Me conecto a la base de datos por medio de php y formularios en html. A pesar de que todas las variables son inicializadas a NULL, cuando no lleno todos los campos del formulario, no puedo almacenar los campos que si he llenado; al presionar el boton de enviar(submit) se comporta como si hubiera almacenado los datos pero en realidad no ha almacenado nada,tampoco me genera un codigo de error. Sucede lo contrario cuando lleno todos los campos, en ese caso no tengo problema. Para solucionar esto, primero probe cambiando la opcion de default que en cada campo estaba a NULL por 0(cero), esto no resolvio nada. Colocando value="0" en los campos del formulario
(input id="nombre" type="text" name="nombre" value="0">soluciono mi problema, lo que no me gusta es que cuando abro el formulario todos los campos empiezan con el valor de cero. El cero a la izquiera no afecta ninguna operacion matematica pero no me gusta a nivel de estetica.
Para mas informacion estoy usando el appserv v2.5.10.
Alguna idea???
De antemano gracias!!!!!!!

Última edición por bitmorbido; 29/09/2009 a las 19:17
  #2 (permalink)  
Antiguo 29/09/2009, 19:38
Avatar de xempro  
Fecha de Ingreso: marzo-2007
Ubicación: Chile
Mensajes: 222
Antigüedad: 17 años, 1 mes
Puntos: 6
Respuesta: Campos null en base de datos

Revisa en la estructura de la tabla, me da la impresión que todos los campos los tienes como obligatorios (NOT NULL).

Para comprobar si se está realizando el INSERT en script php puedes incluir la siguiente línea en el principio de tu php.

Código PHP:
error_reporting(E_ALL); 
Solución: deja con la opción NULL los campos no requeridos.
  #3 (permalink)  
Antiguo 30/09/2009, 08:24
Avatar de bitmorbido  
Fecha de Ingreso: septiembre-2009
Mensajes: 2
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Campos null en base de datos

Gracias Xempro, todos los campos los tengo como Null, no obligatorios, voy a probar con el script error_reporting(E_ALL); a ver que me informa.
De nuevo gracias por tu atencion!
  #4 (permalink)  
Antiguo 05/10/2009, 18:08
Avatar de juankcres  
Fecha de Ingreso: septiembre-2009
Mensajes: 88
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Campos null en base de datos

Hola, a mi pasaba algo parecido aplique algo parecido a lo que tu hiciste, es decir guardar ceros, lo otro que puedes hacer es limitar el insert a los datos que no estan en NULL, y de esa forma te quedaran en NULL en BD.
  #5 (permalink)  
Antiguo 08/10/2009, 16:52
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Campos null en base de datos

Pregunta en el foro PHP, porque ese problema lo resolverás con ayuda de ellos. La clave está en que cuando en el formulario queda vacío un campo, tú debes asignar el valor null al campo de MySQL. Un ejemplo:
imaginemos que tienes tres inputs para incluir valores en los campos campo1, campo2 y campo3, pero sólo rellenas valores para los inputs de los campos campo1 y campo3.
Debes controlar ese vacío del campo2 con PHP, es decir, con programación. Pide ayuda en el foro sobre cómo hacerlo. Pero te diré que para mysql la solución pasa por cargar esto:

UPDATE tutabla (campo1, campo2, campo3) VALUES ('valorcampo1', NULL, 'valorcampo3')

Y tienes que controlar el vacío para todos los inputs. Pide ayuda en el foro PHP sobre cómo hacerlo, pero esta es la idea. Piensa que si tú lo dejas como está, lo que haces es esto
UPDATE tutabla (campo1, campo2, campo3) VALUES ('valorcampo1', , 'valorcampo3')
o esto
UPDATE tutabla (campo1, campo2, campo3) VALUES ('valorcampo1', 'valorcampo3')
y al no haber correspondencia entre el número de campos y valores, teniendo en cuenta además los tipos de campo, no te carga nada.
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 04:26.