上传多个图像并将名称保存在数据库PHP MySQL中

时间:2016-02-22 05:55:42

标签: php mysql gallery

在查看同一个问题的不同解决方案之后,我在这里提出了一个新的方案,Mis cript只上传了通过HTML表单发送的各种图像之一,并在mysql查询时抛出错误。

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

有人可以指出我失败了吗?

提前致谢。

6 个答案:

答案 0 :(得分:2)

您缺少 mysqli_query()

的结尾括号

:此:

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

应该是:

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

答案 1 :(得分:2)

试试这个

bitbucket.org

答案 2 :(得分:2)

尝试编辑您的查询:

function _(str) {
    return d.getElementById(str);
}
function get_announcement_data(ele) {

    var type, answer = _("announce-msg");
    switch (ele) {
        case "general":
            type = "G";
            break;
        case "social":
            type = "S";
            break;
        case "world":
            type = "W";
            break;
        case "maint":
            type = "M";
            break;
        default:
            type = "G";
            break;
    }

    $.ajax({
        url: "/profile_scripts/announcements.php?u=get",
        type: "POST",
        data: {type: type, CSRF_TOKEN: _("CSRF_TOKEN_VALUE").value},
        success: function (data) {
            data = JSON.parse(data);
            answer.innerHTML = "";
            for (var i = 0; i < data.length; i++) {
                if (data[i].response == 1) {
                    answer.innerHTML += data[i].msg + "<small> Written By: " + data[i].author + " on " + data[i].date + "</small>"
                } else {
                    answer.innerHTML = data[i].msg;
                }
            }

        }
    })

}
function add_announcement() { //THIS FUNCTION RUNS TWICE!

    var announcement = CKEDITOR.instances.announcetxtbox.getData();
    var type = _("announce-type").value;
    var code;
    switch (type) {
        case "general":
            code = "G";
            break;
        case "social":
            code = "S";
            break;
        case "world":
            code = "W";
            break;
        case "maint":
            code = "M";
            break;
        default:
            code = "G";
            break;
    }

    $.ajax({
        url: "/profile_scripts/announcements.php?u=post",
        type: "POST",
        data: {type: code, CSRF_TOKEN: _("CSRF_TOKEN_VALUE").value, msg: announcement},
        success: function (data) {
            data = JSON.parse(data);
            if (data.response == 1) {
                alert("ran");
                get_announcement_data(type);

            } else {

                alert("Something went wrong!");

            }

        }
    });

}
d.addEventListener("DOMContentLoaded", function () {

    _("quick-actions-go").addEventListener("click", quick_action_search)

    _("manual-data-pull").addEventListener("click", pull_data);


    _("announce-submit").addEventListener("click", function (e) {

        add_announcement(); <--- Event Listener
        e.preventDefault();
        e.stopPropagation();
    });

    var tab_elements = d.querySelectorAll("[id=ann-tab]");

    for (var i = 0; i < tab_elements.length; i++) {
        tab_elements[i].addEventListener("click", function (e) {
            e.preventDefault();
            get_announcement_data(this.dataset.modeval)
        });
    }


});

有了这个:

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

答案 3 :(得分:2)

sql应该是

import java.util.Scanner;

public class homework4 {
public static void main(String[] args) {
//Scanner
    Scanner keyBd = new Scanner(System.in);
    System.out.println("Enter a sentence ");
    String userIn = keyBd.nextLine();
    int count = 0;
    String empty = "";
    //Code
    for (int i = 0; i < userIn.length(); i++) {
        char ch = userIn.charAt(i);

        if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u' || ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U') {
            count++;
            empty += ch + " ";

        }
    }

    if(count == 0){
        System.out.println("There are no vowels in the input string");
    }else {
        System.out.println("There are " + count + " vowels in this string");
        System.out.println("The vowels are: " + empty);
    }


}

答案 4 :(得分:2)

插入查询语法错误:替换为以下内容:

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

答案 5 :(得分:0)

您将错过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))