Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/04/2017, 14:00
Avatar de aviweb2015
aviweb2015
 
Fecha de Ingreso: abril-2016
Ubicación: venezuela
Mensajes: 215
Antigüedad: 8 años
Puntos: 1
Respuesta: insertar multiples imagenes un un mismo input PDO

Cita:
Iniciado por sonystar_17 Ver Mensaje
a ver los problemas te los marca claramente




le estas pasando un array , que es el del input type file, cierto ?
y el segundo error es por el primero.

ya que :
Código PHP:
Ver original
  1. $extensión = end($temp);
  2. espera la variable de $temp.

recorre el array del input file como recorres otro array while , for , foreach y dentro hacer las validaciones correspondientes.



gracias amigo por tu respuesta, he modificado todo el código y he conseguido que trabaje pero el único problema es que me repite los registros en la tabla detalles_categorias cuando solo debería insertar 1 registro porque en la tabla detalles_img guardo el id del registro detalles_categorias conjuntamente con las imagenes


anexo codigo

Código PHP:
Ver original
  1. <?php
  2.  
  3.   //error_reporting( ~E_NOTICE ); // avoid notice
  4.  
  5.  include '../conexion/conexion.php';
  6.  
  7.   if(isset($_POST['guardar'])){
  8.  
  9.  
  10.     foreach($_FILES['imagen']['tmp_name'] as $key => $tmp_name ){
  11.    
  12.     $fk_categorias = $_POST['fk_categorias'];
  13.     $precio = $_POST['precio'];
  14.     $descripcion = $_POST['descripcion'];
  15.     $detalles = $_POST['detalles'];
  16.  
  17.     $imgFile = $key.$_FILES['imagen']['name'][$key];
  18.     $tmp_dir = $_FILES['imagen']['tmp_name'][$key];
  19.     $imgSize = $_FILES['imagen']['size'][$key];
  20.    
  21.    
  22.     if(empty($_POST["fk_categorias"])){
  23.       $errMSG = "Por favor ingrese la categoria.";
  24.     }
  25.     else if(empty($precio)){
  26.       $errMSG = "Por favor ingrese el precio.";
  27.     }
  28.     else if(empty($descripcion)){
  29.       $errMSG = "Por favor ingrese la descripcion del articulo.";
  30.     }
  31.     else if(empty($detalles)){
  32.       $errMSG = "Por favor ingrese algun detalle para el articulo.";
  33.     }
  34.  
  35.     else if(empty($imgFile)){
  36.       $errMSG = "Por favor Seleccione los Archivo de imagen.";
  37.     }
  38.     else
  39.     {
  40.       $upload_dir = '../galerias/'; // upload directory
  41.  
  42.       $imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension
  43.    
  44.       // valid image extensions
  45.       $valid_extensions = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions
  46.    
  47.       // rename uploading image
  48.       $imagen = rand(1000,1000000).".".$imgExt;
  49.        
  50.       // allow valid image file formats
  51.       if(in_array($imgExt, $valid_extensions)){    
  52.         // Check file size '5MB'
  53.         if($imgSize < 10000000)        {
  54.  
  55.           move_uploaded_file($tmp_dir,$upload_dir.$imagen);
  56.         }
  57.  
  58.         else{
  59.              $errMSG = "¡ Ups Aviso: Lo siento, su archivo es demasiado grande !";
  60.              //header("refresh:5;registrar_multiple.php");
  61.  
  62.         }
  63.       }
  64.          else{
  65.               $errMSG = "¡ Ups Aviso: Lo sentimos, sólo se permiten archivos JPG, JPEG, PNG y GIF !";
  66.               header("refresh:5;registrar_multiple.php");
  67.         }
  68.     }
  69.    
  70.    
  71.     // si no hay errores continuo...
  72.     if(!isset($errMSG))
  73.     {
  74.  
  75.       $sql=$DB_con->prepare("INSERT INTO detalles_categorias (fk_categorias, precio, descripcion, detalles) VALUES
  76.      (:fk_categorias, :precio, :descripcion ,:detalles)");
  77.       $sql->bindParam(':fk_categorias',$_POST['fk_categorias']);
  78.       $sql->bindParam(':precio',$_POST['precio']);
  79.       $sql->bindParam(':descripcion',$_POST['descripcion']);
  80.       $sql->bindParam(':detalles',$_POST['detalles']);
  81.       $sql->execute();
  82.       $last_id = $DB_con->lastInsertId();
  83.  
  84.  
  85.  
  86.       $sql2=$DB_con->prepare("INSERT INTO detalles_img (id, imagen) VALUES (:id, :imagen)");
  87.       $sql2->bindParam(':id',$last_id);
  88.       $sql2->bindParam(':imagen',$imagen);
  89.      
  90.  
  91.       if($sql2->execute())
  92.       {
  93.        
  94.         $successMSG = "¡ Bien Hecho: Registro Insertado Correctamente !";
  95.         //header("refresh:5;registrar_multiple.php");
  96.  
  97.       }
  98.       else
  99.       {
  100.  
  101.               $errMSG = "¡ Ups Aviso: Hubo un error al insertar el registro !";
  102.               header("refresh:5;registrar_multiple.php");
  103.              
  104.  
  105.       }
  106.     }
  107.   }
  108. }
  109. ?>
__________________
yoclens avilan