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

[SOLUCIONADO] campo se guarda vacio

Estas en el tema de campo se guarda vacio en el foro de Mysql en Foros del Web. Hola a todos Tengo un problema con la base de datos, en esta tengo la tabla "usuarios" con estos campos: id: UNYQUE identificacion:INDEX nombre; fecha_nac; ...
  #1 (permalink)  
Antiguo 15/06/2013, 18:46
 
Fecha de Ingreso: junio-2012
Ubicación: colombia
Mensajes: 48
Antigüedad: 11 años, 9 meses
Puntos: 0
Exclamación campo se guarda vacio

Hola a todos
Tengo un problema con la base de datos, en esta tengo la tabla "usuarios" con estos campos:
id: UNYQUE
identificacion:INDEX
nombre;
fecha_nac;
sexo;
telefono;

Tengo otras dos tablas que tienen como INDEX un campo llamado identificacion, este campo lo enlazo con el campo identificacion de la tabla usuarios.

cuando lleno mi formulario y le doy guardar, todos los campos se llenan pero el campo identificacion aparece vacio en todas las tablas, pero si elimino una tupla de la tabla usuarios inmediatamente se borran las tuplas de las otras dos tablas que estan enlazadas con el campo identificacion, esto quiere decir que la relacion de las tablas funciona.
El problema es que el campo identificacion de las tablas aparece vacio y cuando aplico una consulta usando SELECT me aparece esto:
Cita:
Resource id #5
según tengo entendido esto quiere decir que el campo esta vació.

aqui dejo unas imagenes:

https://docs.google.com/file/d/0B6YpdFUjGETudENUYXVYOFJaV2s/edit
tabla usuarios

https://docs.google.com/file/d/0B6YpdFUjGETua0ZrSEs2NjhuRUE/edit
tabla 2

dejo asi los enlaces porque si pongo la etiqueta [URL] no me toma el contenido como enlace

Última edición por gnzsoloyo; 15/06/2013 a las 19:08 Razón: Codigo no permitido en foros de BBDD.
  #2 (permalink)  
Antiguo 15/06/2013, 19:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: campo se guarda vacio

No te permite poner links por una restricción de que debes tener 30 mensajes al menos para poder hacerlo.
Lee las Políticas de Uso de FDW.

Cita:
Resource id #5
Esto es tema de PHP, no de MySQL. MySQL no devuelve "resources", sino tablas o mensajes de error. Y no nos estás dando ninguno de ellos.

En cuanto al contenido del campo que tanto te preocupa, si no nos muestras cómo haces el INSERT, es difícil saber por donde falla la cosa.

Posteanos sólo el SQL, sin PHP, y si es posible con datos reales y no con variables.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 16/06/2013, 11:17
 
Fecha de Ingreso: junio-2012
Ubicación: colombia
Mensajes: 48
Antigüedad: 11 años, 9 meses
Puntos: 0
Sonrisa Respuesta: campo se guarda vacio

Gracias por la respuesta, ya lo resolvi, habia escrito mal el campo identificacion.
Ahora el problema es el siguiente:
Tengo la tabla usuarios y en esta se encuentran los campos mencionados arriba, cuando pruebo el formulario, los datos de la tabla usuarios se guardan normalmente en la BD, pero en las demas tablas no se guarda nada.
Tengo la tabla usuario y varias tablas más que no tienen id propio ya que son entidades débiles, asi que les puse un campo identificacion que esta relacionado con el campo identificacion de la tabla usuarios ya que no quiero guardar la identificacion en todas las tablas solo en la de usuarios y cuando elimine un usuario necesito que se eliminen sus datos en las demas tablas.

aqui dejo el codigo donde hago la consulta a la base de datos:
Cita:
Editado: Código de programación no permitido en Foros de Bases de Datos.
Código MySQL:
Ver original
  1. INSERT INTO usuarios VALUES ('','$Identificacion','$nombre','$fechaNac','$sexo','$telefono')
  2. INSERT INTO antecedentes VALUES ('','$tratamientosMed','$MedicacionActual','$procesosAlergicos')
  3. INSERT INTO estomatologicos VALUES ('','$herpes','$cuelitis','$mucosilis')
  4. INSERT INTO habitos VALUES ('','$bucal')
  5. INSERT INTO dental VALUES ('','$abracion','$atricion')
  6. INSERT INTO periodontal VALUES ('','$marginal','$difusa')
  7. INSERT INTO lengua VALUES ('','$anquilosis')
aquí dejo un ejemplo del sql de la tabla lengua para que vean como la he creado:
Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `lengua` (
  2.   `identificacion` char(10) NOT NULL,
  3.   `anquilosis` char(2) NOT NULL,
  4.   KEY `identificacion` (`identificacion`)
  5.  
  6. --
  7. -- Restricciones para tablas volcadas
  8. --
  9.  
  10. --
  11. -- Filtros para la tabla `lengua`
  12. --
  13. ALTER TABLE `lengua`
  14.   ADD CONSTRAINT `lengua_ibfk_1` FOREIGN KEY (`identificacion`) REFERENCES `usuarios` (`identificacion`) ON DELETE CASCADE ON UPDATE CASCADE;

Como dato adicional, si escribo mal:
Cita:
Editado: Código de programación no permitido en Foros de Bases de Datos.
y pongo por ejemplo:

Cita:
Editado: Código de programación no permitido en Foros de Bases de Datos.
se guardan los datos en todas las tablas pero el campo identificacion queda vacio. no se si esto sirva para algo, solo lo expongo.
Espero me puedan ayudar

Última edición por gnzsoloyo; 16/06/2013 a las 13:34 Razón: Explicar mejor
  #4 (permalink)  
Antiguo 16/06/2013, 12:00
 
Fecha de Ingreso: junio-2012
Ubicación: colombia
Mensajes: 48
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: campo se guarda vacio

Ya lo solucione, pensaba que mysql llenaba las llaves foraneas de manera automatica, la solucion es indicar el campo identificacion en todas las consultas:

Cita:
Editado: Código de programación no permitido en Foros de Bases de Datos.
Código MySQL:
Ver original
  1. INSERT INTO usuarios VALUES ('','$Identificacion','$nombre','$fechaNac','$sexo','$telefono')
  2. INSERT INTO antecedentes VALUES ('$Identificacion','$tratamientosMed','$MedicacionActual','$procesosAlergicos')
  3. INSERT INTO estomatologicos VALUES ('$Identificacion','$herpes','$cuelitis','$mucosilis')
  4. INSERT INTO habitos VALUES ('$Identificacion','$bucal')
  5. INSERT INTO dental VALUES ('$Identificacion','$abracion','$atricion')
  6. INSERT INTO periodontal VALUES ('$Identificacion','$marginal','$difusa')
  7. INSERT INTO lengua VALUES ('$Identificacion','$anquilosis');

Última edición por gnzsoloyo; 16/06/2013 a las 13:35
  #5 (permalink)  
Antiguo 16/06/2013, 13:32
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: campo se guarda vacio

Lo solucionaste... ¿pero entendiste que no pusieras código PHP en este foro.
No se permite poner código no SQL...

Tenlo en cuenta para la próxima vez.

respecto al temas de las FK, ese es un error muy común en los principiantes, pero para mayor precisión te lo aclaro bien: Ningún DBMS pone "automáticamente" las claves foráneas en ninguna tabla.
Nunca.
Jamás.
En ningún caso.

Ninguno, ni Oralce, ni DB2, ni SQL Server... ninguno.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 16/06/2013 a las 13:38
  #6 (permalink)  
Antiguo 17/06/2013, 10:35
 
Fecha de Ingreso: junio-2012
Ubicación: colombia
Mensajes: 48
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: campo se guarda vacio

Gracias por la aclaracion del codigo php, lo tendre en cuenta para futuros post

Etiquetas: mysql-php
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 08:02.