Foros del Web » Programando para Internet » PHP »

Guardar varias fotos en la BD

Estas en el tema de Guardar varias fotos en la BD en el foro de PHP en Foros del Web. Hola muy buenas, espero que me puedan ayudar... Tengo un formulario con hasta 5 campos para subir fotos, y en el php los recojo y ...
  #1 (permalink)  
Antiguo 18/02/2011, 10:13
 
Fecha de Ingreso: julio-2009
Mensajes: 111
Antigüedad: 14 años, 9 meses
Puntos: 0
Guardar varias fotos en la BD

Hola muy buenas, espero que me puedan ayudar...

Tengo un formulario con hasta 5 campos para subir fotos, y en el php los recojo y muevo las imagenes a una carpeta...

Código PHP:
// Varias Imagenes
if(sizeof($_FILES['uno']['tmp_name']) >=1){
        
$total=sizeof($_FILES['uno']['name']);
        for(
$i=0$i<$total$i++){
            if(
$_FILES['uno']['tmp_name'][$i] !=''){
            
$origen $_FILES['uno']['tmp_name'][$i];
            
$destino ='../img/'.$_FILES['uno']['name'][$i];
            
move_uploaded_file($origen,$destino);
            }
        }
    } 
Como puedo insertar estos datos en la base de datos, con mysql ??
La base de datos la tengo asi

Id_Fotos
id_fotos_productos
Foto

es decir el primer campo es un INT q se incrementa, el id_fotos_productos esta en otra tabla tmb y aqui haria una conexion y luego sacaria las fotos segun los productos... y Foto es la ruta de la imagen...

Muchisimas gracias de antemano :)
  #2 (permalink)  
Antiguo 18/02/2011, 10:39
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 2 meses
Puntos: 128
Respuesta: Guardar varias fotos en la BD

prueba colocando a los input donde subes las imagenes como [](array) despues las recibes, creo que debes estar usando un ciclo que permita ingresar imagene, onda un boton que diga agregar mas y se despliege un nuevo input para subir , si es asi , prueba de esta manera :

Código PHP:
Ver original
  1. <input type="text" value="<?php echo $nom_img;?>" name="imagen[]" >

despues en el lugar donde recibes el formulario podrias colocar algo como esto :

Código PHP:
Ver original
  1. $imagen         =   $_POST['imagen'];
  2. $total      =   count($imagen);

y por ultimo con un for puedes recorrer el array $imagen e insertar a tu bd :

Código PHP:
Ver original
  1. for($u=0;$u<count($imagen);$u++)
  2.  {
  3. $sql="INSERT INTO tabla (imagen) VALUES ('$imagen[$u]')";

esta demas decir que las rutas para tus imagenes debes crear el algoritmo antes de insertar espero te sirva.
  #3 (permalink)  
Antiguo 18/02/2011, 10:44
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Guardar varias fotos en la BD

si es una foto por producto

solo guardas esto:
---nombre de la imagen---
en un campo de tabla y nada mas
  #4 (permalink)  
Antiguo 18/02/2011, 11:14
 
Fecha de Ingreso: julio-2009
Mensajes: 111
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Guardar varias fotos en la BD

Es una foto por producto obligatoria, que la recojo con un $_FILE y la guardo y luego tengo otro $_FILE y pueden subir hasta 5 fotos...

En el Html, para sacar los campos de $_FILE utilizo javascript...

Asik, me pueden subir 5 fotos...

Las recojo y las muevo a una carpeta, hasta ahi bien.
Ahora para sacar el array y insertarlos en otra tabla con la id del producto... es lo que me falla...

Código PHP:
    $inser2=$db->Insert_Id(); // esto es la id que cojo del producto para luego si subo 5 fotos saber a q pertenece...

//hago un for y obtengo las imagenes que me han subido, hasta aqui bien
     
    
for($i=0$i<$total$i++){
            
$destino ='../img/'.$_FILES['uno']['name'][$i];
            echo 
$destino;
            
$db->debug=true;
            
//y aqui las envio a la base de datos, pero solo me coge la ultima foto y no todas... 
            
$envio3="INSERT INTO foto_producto (
            id_producto,
            foto
            )
             VALUES ($inser2, '$destino')"
;
        }
         
$db->execute($envio3); 
A ver si alguien sabe que es lo que estoy haciendo mal... muchisimas gracias :D
  #5 (permalink)  
Antiguo 18/02/2011, 11:31
 
Fecha de Ingreso: julio-2009
Mensajes: 111
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Guardar varias fotos en la BD

Vale, muchas gracias ya he dado con el error...

Simplemente era esto

Código PHP:
for($i=0$i<$total$i++){
            
$destino ='../img/'.$_FILES['uno']['name'][$i];
            echo 
$destino;
            
$db->debug=true;
            
//y aqui las envio a la base de datos, pero solo me coge la ultima foto y no todas... 
            
$envio3[$i]="INSERT INTO foto_producto ( // y ponerle [$i] para que no se sobreescriba
            id_producto,
            foto
            )
             VALUES ($inser2, '$destino')"

            
$db->execute($envio3);  // Meter el $envio3[$i] dentro del for
        

Muchas gracias :D, ya esta solucionado !!!!

Etiquetas: bd, fotos
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:17.