Samuel Ramzan
Samuel Ramzan

Reputation: 1856

Upload multiple images and save names in database PHP MySQL

After reviewing different solutions to one same question, here I come with a new scenario, Mis cript only uploads one of the various images sent via HTML form and throws an error on mysql query.

    $imgn = $_FILES['imgn']['name'];     # Definimnos los valores
    $galnom = $_POST['galnom'];  # para extracción

    for($i =0; $i < count($_FILES['imgn']['name']); $i++){  # creamos el loop inicial utilizado la variable $i
    # Procesar la imagen ---------------------------------------------------------------------




    #  Propiedad de Samuel Ramírez S...
    #  smctotal.com
    #  Este script no puede redistribuirse sin una constancia de autorización por parte de Samuel Ramírez S. RASS650104P35
    $imaggen = $_FILES['imgn']['name'][$i];       # Archivo original
    $tempral = $_FILES["imgn"]["tmp_name"][$i];   # Archivo en la carpeta temporal
    $formato = $_FILES["imgn"]["type"][$i];       # Analizamos el tipo de archivo image/jpeg
    $tamanio = $_FILES["imgn"]["size"][$i];       # Tamaño de la imagen


    $divisor = explode(".",$imaggen);           # Separamos el nombre de la extensión
    $xtnsion = end($divisor);                   # Extensión también se puede imprimir $divisor[1];
    $nombbre = $divisor[0];                     # Nombre del archivo
    round(($tamanio/1000),0).' Kilobytes';      # Formateo del peso del archivo
    $imgn = round(microtime(true)).'.'.$xtnsion; # Se establece el nuevo nombre del archivo
    move_uploaded_file($tempral, "../../img/sect/".$imgn); # Se guarda el archivo con su nuevo nombre.
    # Hasta aquí ya subimos el archivo
    # Enseguida lo abrimos para proceso ------------------------------------------------------
    $img = imagecreatefromjpeg("../../img/sect/".$imgn);   # Abrimos la imagen para proceso
    $anchoActual = imagesx($img);               # Obtenemos el ancho original
    $alttoActual = imagesy($img);               # Obtenemos la altura original

    # --- CD Imagen grande -------------------------------------------------------------------
    $nuevo_ancho = 600;
    $factor = $nuevo_ancho / $anchoActual; # Proporción alto anterior y el nuevo, aplicar el factor a la altura
    $nuevo_allto = $alttoActual * $factor;
    # --- FD Imagen grande

    # --- CD Thumbnail -----------------------------------------------------------------------
    $thumb_ancho = 100;
    $facthmb = $thumb_ancho / $anchoActual; # Proporción alto anterior y el nuevo, aplicar el factor a la altura
    $alto_thumb = $alttoActual * $facthmb;
    # --- FD Thumbnail -----------------------------------------------------------------------

    # --- CD Imagen grande -------------------------------------------------------------------
    $imagenFinal = imagecreatetruecolor($nuevo_ancho,$nuevo_allto);
    imagecopyresampled($imagenFinal, $img, 0, 0, 0, 1, $nuevo_ancho, $nuevo_allto, $anchoActual, $alttoActual);
    imagejpeg($imagenFinal, "../../gal/grnd/".$imgn, 85);          # Comprimimos y salvamos la imagen
    # --- FD Imagen grande -------------------------------------------------------------------

    # --- CD Imagen grande -------------------------------------------------------------------
    $thumbFinal = imagecreatetruecolor($thumb_ancho,$alto_thumb);
    imagecopyresampled($thumbFinal, $img, 0, 0, 0, 1, $thumb_ancho, $alto_thumb, $anchoActual, $alttoActual);
    imagejpeg($thumbFinal, "../../gal/thmb/".$imgn, 85);          # Comprimimos y salvamos la imagen
    # --- FD Imagen grande -------------------------------------------------------------------

    # Fin del proceso de la imagen -----------------------------------------------------------

    $q1[$i]= mysqli_query($cnxn,"INSERT INTO galerias (galnom,imgn) VALUES ('$galnom[$i]','$imgn[$i]'") or die(mysqli_error($cnxn));

Can someone please point me where is it that I'm failing?

Thanks in advance.

Upvotes: 1

Views: 113

Answers (6)

Panda
Panda

Reputation: 6896

You'll missing the brackets for mysqli_query:

$q1[$i]= mysqli_query($cnxn,"INSERT INTO galerias (galnom,imgn) VALUES ('$galnom[$i]','$imgn[$i]')") or die(mysqli_error($cnxn));

1st Part:

mysqli_query($cnxn,"INSERT INTO galerias (galnom,imgn) VALUES ('$galnom[$i]','$imgn[$i]')")

2nd Part:

or die(mysqli_error($cnxn))

Upvotes: 0

Pathik Vejani
Pathik Vejani

Reputation: 4501

Insert query syntax is wrong: Replace with below:

$q1[$i]= mysqli_query($cnxn,"INSERT INTO galerias (galnom,imgn) VALUES ('$galnom[$i]','$imgn[$i]')") or die(mysqli_error($cnxn));

Upvotes: 2

Arslan Bilal
Arslan Bilal

Reputation: 625

sql should be

$q1[$i]= mysqli_query($cnxn,"INSERT INTO galerias (galnom,imgn) VALUES ('".$galnom[$i]."','".$imgn[$i]."')") or die(mysqli_error($cnxn));

Upvotes: 2

Nehal
Nehal

Reputation: 1523

Try to edit your query :

$q1[$i]= mysqli_query($cnxn,"INSERT INTO galerias (galnom,imgn) VALUES ('$galnom[$i]','$imgn[$i]'") or die(mysqli_error($cnxn));

With this :

$q1= mysqli_query($cnxn,"INSERT INTO galerias (galnom,imgn) VALUES ('$galnom[$i]','$imgn[$i]')") or die(mysqli_error($cnxn));

Upvotes: 2

devpro
devpro

Reputation: 16117

You are missing the ending bracket of mysqli_query()

This:

$q1[$i]= mysqli_query($cnxn,"
INSERT INTO galerias (galnom,imgn) 
VALUES ('$galnom[$i]','$imgn[$i]'") // error in this line
or die(mysqli_error($cnxn));

Should be:

$q1[$i]= mysqli_query($cnxn,"
INSERT INTO galerias (galnom,imgn) 
VALUES ('$galnom[$i]','$imgn[$i]')") 
or die(mysqli_error($cnxn));

Upvotes: 2

naseeba c
naseeba c

Reputation: 1050

try this

$q1[$i]= mysqli_query($cnxn,"INSERT INTO galerias (galnom,imgn) VALUES ('$galnom[$i]','$imgn[$i]')") or die(mysqli_error($cnxn));

Upvotes: 2

Related Questions