1

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.

10
  • throws an error on mysql query. ERROR?? Commented Feb 22, 2016 at 5:57
  • Thank You devpro : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 Commented Feb 22, 2016 at 6:00
  • @SamRamSan, where is your for loop closing ? Commented Feb 22, 2016 at 6:03
  • thanks for sharing this error, now u have to many solutions, did u checked? Commented Feb 22, 2016 at 6:11
  • Yes... for the MySQL part it was a typo... but the images script only uploads one image... One problem solved one to go... Commented Feb 22, 2016 at 6:13

6 Answers 6

2

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));
Sign up to request clarification or add additional context in comments.

1 Comment

Thank's for the MySQL problem solving... but the script only upload one image... but it does save the whole array of names in the SQL DB
2

try this

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

Comments

2

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));

1 Comment

@PathikVejani: fixed typo.. bro
2

sql should be

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

Comments

2

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));

Comments

0

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))

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.