Foros del Web » Programando para Internet » PHP »

Multi upload de imagenes (logica)

Estas en el tema de Multi upload de imagenes (logica) en el foro de PHP en Foros del Web. Buenas, al parece tengo una cuenta en este foro. Les comento brevemente, espero ser claro. Tengo un script para subir varias imagenes en un mismo ...
  #1 (permalink)  
Antiguo 23/09/2013, 12:28
 
Fecha de Ingreso: febrero-2011
Mensajes: 23
Antigüedad: 7 años, 8 meses
Puntos: 0
Multi upload de imagenes (logica)

Buenas, al parece tengo una cuenta en este foro.

Les comento brevemente, espero ser claro.
Tengo un script para subir varias imagenes en un mismo form, funciona bien, me crea la carpeta y sube las imagenes. Lo que no entiendo es que hacer con la base de datos, es decir, yo lo que quiero hacer es que cualquiera pueda registar un comercio y en el form pueda poner el nombre, ciudad, localidad, descripcion, y varias fotos del mismo.

Esto sube toda la descripcion del comercio, sin la ruta de las fotos:
Código:
$mysqli->query("INSERT INTO comercio (nombre, titulo, localidad, tipo, direccion, descripcion)
VALUES ('$name', '$title', '$city', '$type', '$dir ', '$desc')");
Yo lo que pense es que la ruta de las fotos las tengo que subir a otra tabla ya que van a ser varias y no podria hacerlo en una sola celda, no se si estoy en lo correcto? El tema es, como lo puedo vincular? no voy a tener el futuro ID del comercio ya que el mismo form lo crea, y el titulo del comercio tranquilamente se puede repetir por lo que no me sirve.
Que me recomiendan? no estoy entendiendo la logica de esto y no se que es lo que se acostumbra.
Gracias
  #2 (permalink)  
Antiguo 23/09/2013, 12:40
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 10 años, 5 meses
Puntos: 528
Respuesta: Multi upload de imagenes (logica)

Pues a menos que ese "registro de comercio" no se vuelva a usar o sólo se trate como información tipo log (registro histórico) debes tener un ID.

Ahora, un form no "crea" un registro, un form captura datos para pasarlos a algún código que los procese.

Hay quien decide almacenar el nombre de las imágenes en una tabla, obviamente ligando dicha tabla por el id del registro principal, en este caso, el id del comercio registrado. En estos casos, además se requiere que las imágenes se renombren para que su nombre de archivo no se repita.

Otra alternativa es una vez registrado el objeto (el comercio en tu caso) y teniendo su id, crear una carpeta con dicho id y colocando ahí todas las imágenes que hayan subido.

Y otra alternativa más que no se suele recomendar mucho es guardar las imágenes en la base de datos directamente, con campos de tipo blob.
  #3 (permalink)  
Antiguo 23/09/2013, 12:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 12 años, 4 meses
Puntos: 2126
Respuesta: Multi upload de imagenes (logica)

Tienes que resolver el problema por partes, primero el guardar, lo que tienes que hacer se conoce como una relación uno a muchos, o 1:n.

Lo que necesitas es dos tablas, donde la segunda tabla este vinculada a la primera usando el PK (o algún otro valor).

Al final tienes que tener dos tablas mas o menos así:
Código:
ID, dato1, dato2, dato3
1,  foo, bar, baz
2,  asd, def, ghi
Código:
ID, FK, dato1, dato2, dato3
1, 1, adss, adsa, adad
2, 1, asda, asd, ads
3, 2, ads, asd, asda
Así a simple vista puedes ver que el FK es tu dato con el que vinculas a la tabla1, ahora al diseñar tus tablas, tienes que usar los nombres descriptivos correctos.

Del lado de PHP, puedes rescatar fácilmente el ID al insertar, y justamente es lo que tienes que hacer, en el paso 1, insertas en la tabla principal, rescatas el ID generado, y luego por cada "m" cantidad de fotos, vas a tener que realizar una inserción en la tabla2, usando el ID generado de la tabla1.

Saludos.
  #4 (permalink)  
Antiguo 23/09/2013, 12:47
 
Fecha de Ingreso: febrero-2011
Mensajes: 23
Antigüedad: 7 años, 8 meses
Puntos: 0
Respuesta: Multi upload de imagenes (logica)

Lo que no estoy entendiendo es , como saber el ID que se va a crear? Porque estaria creando la carpeta a partir del futuro ID
  #5 (permalink)  
Antiguo 23/09/2013, 13:11
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 10 años, 5 meses
Puntos: 528
Respuesta: Multi upload de imagenes (logica)

Puedes saber cuál fue el último id insertado, con $mysqli->insert_id así una vez insertado el registro mueves las imágenes de la carpeta temporal a donde requieras.
  #6 (permalink)  
Antiguo 23/09/2013, 13:26
 
Fecha de Ingreso: febrero-2011
Mensajes: 23
Antigüedad: 7 años, 8 meses
Puntos: 0
Respuesta: Multi upload de imagenes (logica)

Genial . Me quedo todo claro, muchas gracias!

Etiquetas: imagenes, multi, mysql, tabla, upload
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 13:41.