Я знаю, что этот код ниже работает отлично, я уже пробовал, и он работал нормально для одного типа ввода "файл", но что если у меня есть 7 типов ввода "файл"? Как проверить, является ли один из них пустым или все они пусты, чтобы не загружать пустые значения в базу данных? заранее спасибо.

if ((!($_FILES['image']['name']))) /* If there Is No file Selected*/ {

"Upload SQL status"

} else /* If file is  Selected*/ {

"Upload SQL status"

$image = $_FILES['image']['name'];
move_uploaded_file($img,"images/$image");
}

Например:

<input  type="file" accept="image/x-png,image/jpeg,image/jpg,image/png" 
 name="image1" />


<input  type="file" accept="image/x-png,image/jpeg,image/jpg,image/png" 
 name="image2" />


<input  type="file" accept="image/x-png,image/jpeg,image/jpg,image/png" 
 name="image3" />


<input  type="file" accept="image/x-png,image/jpeg,image/jpg,image/png" 
 name="image4" />


<input  type="file" accept="image/x-png,image/jpeg,image/jpg,image/png" 
 name="image5" />


<input  type="file" accept="image/x-png,image/jpeg,image/jpg,image/png" 
 name="image6" />


<input  type="file" accept="image/x-png,image/jpeg,image/jpg,image/png" 
 name="image7" />

Получение изображения с поля.

    //getting the image from the field
    $image1 = $_FILES['image1']['name'];


    //getting the image from the field
    $image2 = $_FILES['image2']['name'];


    //getting the image from the field
    $image3 = $_FILES['image3']['name'];


    //getting the image from the field
    $image4 = $_FILES['image4']['name'];


    //getting the image from the field
    $image5 = $_FILES['image5']['name'];

    //getting the image from the field
    $image6 = $_FILES['image6']['name'];

    //getting the image from the field
    $image7 = $_FILES['image7']['name'];

После нажатия кнопки "Обновить" я хочу, чтобы мои другие поля также обновлялись в базе данных следующим образом:

$update_restaurant = "update restaurants set 
restaurant_name='$name',restaurant_time='$time', 
area='$area',cuisine='$cuis',header='$header', 
Overview='$overview',Menu='$menu',website='$wb', 
facebook='$fb',meals='$meals',payment='$pay', phone='$phone' , 
map='$map_link', maptext='$map_des', img1='$image1', img2='$image2', 
img3='$image3', img4='$image4',img5='$image5', img6='$image6', 
img7='$image7', mapid='$map_id' where restaurant_id='$update_id'";

Спасибо.

php
0
Jukebox Music 13 Апр 2019 в 04:08

2 ответа

Лучший ответ

Используйте name="image[]" вместо name="image1", name="image2" и т. Д.

Затем вы можете перебрать поле следующим образом:

foreach($_FILES['image'] as $file) {
    if (is_uploaded_file($file)) {
        // file was uploaded - do something

    }
}
1
Silvio Delgado 13 Апр 2019 в 05:34

Вы обновляете одну строку в своей базе данных, вероятно, вам следует вставлять каждое изображение в виде строки new .

Например

$stmt = $pdo->prepare("insert into restaurants set restaurant_name=:name, filename=:name, ...");
$stmt->execute([$restaurantName, $img1]);

(применяется стандартное предупреждение о впрыске)

Каждый раз, когда у вас есть имена столбцов, такие как img1, img2, img3 ... вы, вероятно, делаете что-то не так. Даже два повторяющихся столбца, таких как phone1 и phone2, вероятно, рано или поздно вернутся, чтобы укусить вас, когда какой-то специальный клиент-снежинка решит, что им действительно очень нужен третий номер телефона.

1
mpen 13 Апр 2019 в 18:46