Изменение: решено! кредиты @kaylined и @uli. Я отредактировал код на случай, если кто-то в будущем столкнется с такой же проблемой при одновременном загрузке нескольких изображений и сохранении его в базе данных MYSQL.
Я пытаюсь создать загрузку нескольких изображений сразу скрипта с PHP и MYSQL. но сценарий работает неправильно. Я не знаю, где я делаю неправильно. возможно, вы, ребята, могли бы помочь. вот мой код:
PS: изображения загружаются успешно, имя файла также успешно сохраняется в базе данных. но переменная "slug" хранится в базе данных как "Array",
Форма ввода
<form method="POST" action="action-add-images.php" enctype="multipart/form-data">
<input type="hidden" name="slug" value="<?php echo $_GET['slug']; ?>">
<label>Upload Files</label>
<input required type="file" name="image[]" class="form-control-file" multiple>
<button type="submit" class="btn btn-block btn-primary my-3 ">Upload Images</button>
</form>
Файл действия
<?php
include "../connect.php";
foreach ($_FILES['image']['name'] as $key => $name){
$newFilename = date('YmdHis',time()).mt_rand().'.jpg';
move_uploaded_file($_FILES['image']['tmp_name'][$key], '../img/' . $newFilename);
$image = '../img/' . $newFilename;
$slug = $_POST['slug'];
mysqli_query($conn,"INSERT INTO product_image (slug,image) values ('$slug','$newFilename')");
}
header('location:product.php');
?>
Slug сохраняет как массив, потому что это массив.
$slug = $_POST['slug'];
должен решить вашу проблему, предполагая, что элементы slug добавлены в том же порядке, что и ваши файлы.
Согласно комментариям, указанный выше PHP был исправлен, а фиксированный HTML ниже - все, что я сделал, это удалить директиву массива из ввода:
<form method="POST" action="action-add-images.php" enctype="multipart/form-data">
<input type="hidden" name="slug" value="<?php echo $_GET['slug']; ?>">
<label>Upload Files</label>
<input required type="file" name="image[]" class="form-control-file" multiple>
<button type="submit" class="btn btn-block btn-primary my-3 ">Upload Images</button>