Ver Mensaje Individual
  #25 (permalink)  
Antiguo 02/01/2015, 11:06
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 5 meses
Puntos: 2658
Respuesta: informacion sobre como relaciono una tabla con id usuarios

Este esquema:
Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `registro usuarios` (
  2.   `usuario_id` int(4) NOT NULL AUTO_INCREMENT,
  3.   `usuario_nombre` varchar(15) NOT NULL DEFAULT '',
  4.   `usuario_clave` varchar(32) NOT NULL DEFAULT '',
  5.   `usuario_email` varchar(50) NOT NULL DEFAULT '',
  6.   `usuario_freg` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  7.   `tipo` enum('2','1') NOT NULL DEFAULT '2',
  8.   `facebook` varchar(250) NOT NULL,
  9.   `twitter` varchar(250) NOT NULL,
  10.   `avatar` varchar(500) NOT NULL,
  11.   PRIMARY KEY (`usuario_id`)
  12.  
  13.  
  14. CREATE TABLE IF NOT EXISTS `datos imagenes` (
  15. `usuario_id` int(11) NOT NULL AUTO_INCREMENT,
  16. `ruta` varchar(100) NOT NULL,
  17. `descripcion` text,
  18. PRIMARY KEY (`usuario_id`)
  19.  
  20. --
  21. -- esta es la relacion de las tablas
  22. --
  23. ALTER TABLE `datos`
  24.   ADD CONSTRAINT `datos_ibfk_1` FOREIGN KEY (`Usuario_ID`) REFERENCES `usuarios` (`usuario_ID`) ON DELETE CASCADE ON UPDATE CASCADE;
Está preparado prara dar soporte a una única imagen por usuario, y de todos modos está mal definida proque la tabla de imagenes no puede tener el USER_ID como autoincremental. Eso está MAL.
Más alla de lo que puedas tener incorrecto en PHP, tienes un modelo de datos que no sirve para el propósito que planteas. El asunto en medio OFF TOPIC en este foro y deberías verlo en el de MySQL.

Por lo pronto, si quieres poner mas de una la segunda tabla requiere otra estructura, por ejemplo:
Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `datos imagenes` (
  2. `usuario_id` int(11) NOT NULL,
  3. `nro_imagen`INT NOT NULL,
  4. `ruta` varchar(100) NOT NULL,
  5. `descripcion` text,
  6. PRIMARY KEY (`usuario_id`, nro_imagen)
  7.  
  8. --
  9. -- esta es la relacion de las tablas
  10. --
  11. ALTER TABLE `datos`
  12.   ADD CONSTRAINT `datos_ibfk_1` FOREIGN KEY (`Usuario_ID`) REFERENCES `usuarios` (`usuario_ID`) ON DELETE CASCADE ON UPDATE CASCADE;
  13.  
  14. -- Hacer unica la imagen para la tabla.
  15. CREATE UNIQUE INDEX rutas_imagenes_usuarios ON  `datos imagenes`(ruta);

En este caso el campo "nro_imagen" deberás ingresarlo "manualmente" en el mismo INSERT de la imagen, realizando preferentemente una consulta previa de la cantidad de imágenes del usuario, o bien creando ese campo como auto_increment.
tu eliges, pero la opción de autoincremental no es buena para ese tipo de relaciones.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)