Foros del Web » Programando para Internet » PHP »

Ingresar varias imagenes a un registro

Estas en el tema de Ingresar varias imagenes a un registro en el foro de PHP en Foros del Web. Buenas noches a todos. Mi consulta es la siguiente: yo tengo dos tablas, una llamada PROYECTOS y otra IMAGENES. Ambas tablas se relacionan entre si ...
  #1 (permalink)  
Antiguo 28/10/2008, 18:08
 
Fecha de Ingreso: septiembre-2008
Ubicación: Nuñez, Capital Federal
Mensajes: 423
Antigüedad: 15 años, 8 meses
Puntos: 1
Ingresar varias imagenes a un registro

Buenas noches a todos.

Mi consulta es la siguiente: yo tengo dos tablas, una llamada PROYECTOS y otra IMAGENES. Ambas tablas se relacionan entre si mediante el ID del proyecto, esto quiere decir, que las imagenes corresponder a registros de la tabla proyectos.

Ahora bien: yo ingreso registros mediante un formulario. Supongamos que cada usuario puede ingresar la cantidad de imaganes que quiera para su proyecto, es decir, podra ingresar tantos registros en la tabla IMAGENES como quiera el.

El problema es que yo no se cuantas fotos querrá ingresar el usuario, y por lo tanto, cuantos campos de envio de archivo tendré que poner el formulario, no se si se entiende. Y la idea es que el registro de la tabla PROYECTOS se ingrese al mismo tiempo que el de la tabla IMAGENES.

Se entiende? O di muchas vueltas? Cualquier cosa, no duden en preguntar.. tratere de explicar mejor sin dar tantas vueltas...

Un saludo para todos!

Pablo.
  #2 (permalink)  
Antiguo 28/10/2008, 18:17
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ingresar varias imagenes a un registro

Lo que yo haría es ponerle únicamente 3 columnas a la tabla imágenes, un id, el nombre del archivo de imagen y la referencia al id del proyecto. Al crear un nuevo proyecto, inserto tantos registros como imágenes tenga el proyecto. Osea, si tengo N imágenes creo N filas y todas tienen el id del proyecto asignado a la columna correspondiente en la tabla.

Para extraerlas, busco en la tabla de imagenes los registros cuya referencia de proyecto coincida con el id del proyecto.

Sigue esa lógica, es más práctico hacerlo así.

Saludos,
  #3 (permalink)  
Antiguo 28/10/2008, 18:23
 
Fecha de Ingreso: septiembre-2008
Ubicación: Nuñez, Capital Federal
Mensajes: 423
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Ingresar varias imagenes a un registro

claro.. la idea es esa.

Crear tantos registros con el id del proeycto como imagenes tenga el proyecto.

La cuestion es: ¿como hago eso con un formulario? Es decir, ingresar todas de una vez? O es más facil ingresar un registro por vez (en la tabla imagenes)? Es lo más lógico?

Desde ya, nuevamente, MUCHAS GRACIAS!!

A todos, un saludo.

Pablo.
  #4 (permalink)  
Antiguo 28/10/2008, 18:33
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ingresar varias imagenes a un registro

Hay mucha maneras. Mira este link donde explican cómo subir múltiples archivos:

http://www.buayacorp.com/archivos/en...-estilo-gmail/

En la parte del código PHP que procesao la subida, verás que hay un ciclo. Usa ese ciclo para insertar cada imagen a la base de datos.

Saludos,
  #5 (permalink)  
Antiguo 28/10/2008, 18:38
 
Fecha de Ingreso: septiembre-2008
Ubicación: Nuñez, Capital Federal
Mensajes: 423
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Ingresar varias imagenes a un registro

Esto es lo que buscaba....!!

Ahora supongo que solo resta modificarlo con mis necesidades, pero es basicamente esto...

Muchas gracias por la ayuda!!!

Pablo.
  #6 (permalink)  
Antiguo 29/10/2008, 11:43
 
Fecha de Ingreso: septiembre-2008
Ubicación: Nuñez, Capital Federal
Mensajes: 423
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Ingresar varias imagenes a un registro

Preguntita!!!

Ya logro aplicar el codigo para que aparezcan o desaparezcan los input del formulario.... ahora, lo que se me complica, es hacer el move_upload_file en la pagina que recibe los datos del formulario.

La cosa es que, en un formulario con un solo campo, lo hacia de la siguiente manera:

Código PHP:
$nombre=$_FILES['img']['name'];

$id md5(uniqid(rand(), true));

$extsubstr(strrchr($nombre"."),1);

$nvo$id.".".$ext;

$ruta"imagenes/".$nvo
move_uploaded_file($_FILES['img']['tmp_name'], $ruta); 
Lo que no logro hacer, es con es manera... trate de hacerlo con un foreach, pero como no conozco bien como funciona esta funcion, desgraciadamente no me salio. Alguna recomendacion!?

Dede ya, muchas gracias a todos!! Un saludo

Pablo.
  #7 (permalink)  
Antiguo 29/10/2008, 14:14
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: Ingresar varias imagenes a un registro

Fijate que en el ejemplo tenes el foreach sobre los $_FILES. cito de la página que puso okram:

Código PHP:
if (isset ($_FILES["archivos"])) {
            
$msg .= "<ul>";
            foreach (
$_FILES["archivos"]["error"] as $key => $error) {
                if (
$error == UPLOAD_ERR_OK) {
                    
$tmp_name $_FILES["archivos"]["tmp_name"][$key];
                    
$name $_FILES["archivos"]["name"][$key];
                    
$msg .= "<li>$name</li>";
                    
$name uniqid('bc') . '_' $name# Generar un nombre �nico para el archivo
                    
$mail -> AddAttachment ($tmp_name$name);
                    
/*
                    Si se van a guardar los archivos en un directorio, deber�an descomentarse
                    las siguientes l�neas, si se van a guardar los nombres 
                    de los archivos en una base de datos, aqu� deber�a realizarse algo...                    
                       
                    move_uploaded_file($tmp_name, "ruta/directorio/$name"); # Guardar el archivo en una ubicaci�n, debe tener los permisos necesarios
                    */
                
#if
               
# foreach
            
$msg .= '</ul>';
        } 
# if 
__________________
Mi punto de partida es Que Bueno Lo Nuevo
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 18:59.