Не получается связать id загружаемого фото и id заранее созданного альбома
Всех приветствую! Возникла задачка, решить которую собственными силами не получается. Пишу приложение - коллекцию альбомов, где можно создавать, изменять, удалять, просматривать альбомы. Зайдя на страницу созданного альбома (id альбома получаю через foreach), можно увидеть форму загрузки фото (вводится название, описание и выбирается само фото) и форму для загруженных фотографий.
Вопрос в следующем - как связать id загружаемой картинки с id уже созданного альбома? Чтобы зайдя по id выбранного мной альбома я мог видеть только те фото, которые я загрузил в БД и которые относятся только к данному альбому.
Поступали разные идеи как решить проблему. Например, обратить внимание на БД - создать дополнительное поле (albums_id), куда будет загружаться id альбома. Это я добавил, но до ума так довести и не получилось. Может уже кто сталкивался с подобным?
Это форма для загрузки фото
<div class="panel-container show">
<div class="panel-content">
<div class="form-group">
<form action="/upload.php" method="post" autocomplete="off" enctype="multipart/form-data">
<div class="form-group">
<label class="form-control">Название фото*</label>
<input type="text" name="name_image" id="name_image" placeholder="Укажите название фото" required value="">
<label class="form-control">Описание фото*</label>
<input type="text" name="description_image" id="description_image" placeholder="Укажите описание фото" required value="">
<label class="form-control">Фото*</label>
<input type="file" name="image" id="image" accept=".jpeg, .jpg, .png" placeholder="Выберите фото">
</div>
<button class="btn btn-success mt-3" type="submit" name="submit" value="add">Загрузить</button>
<a href="index.php" class="btn btn-success mt-3">Вернуться ко всем альбомам</a><br>
<label class="form mt-3">*Максимальный размер фото - 3,5 Мб.<br>*Допустимый формат файла - jpeg, jpg, png.</label>
</form>
</div>
</div>
</div>
Это форма, выгружающая фото на страницу
<div class="panel-container show">
<div class="panel-content">
<div class="container">
<table class="table table-bordered">
<thead>
<tr>
<th>#</th>
<th>Загруженное фото</th>
<th>Название фото</th>
<th>Описание фото</th>
<th>Возможные действия</th>
</tr>
</thead>
<tbody>
<?php foreach ($images as $image):?>
<tr>
<td><?php echo $i++;?></td>
<td><a href="img_bd/<?php echo $image['image'];?>" data-lightbox="img_lightbox" data-title="<?php echo $image['name_image'];?>">
<img src="img_bd/<?php echo $image['image'];?>" width = 150 title="<?php echo $image['image'];?>"></td>
<td><?php echo $image['name_image'];?></td>
<td><?php echo $image['description_image'];?>
<td>
<a href="edit.photo.php?id=<?php echo $image['id'];?>" class="btn btn-warning mb-3" onclick="return confirm('Вы уверены, что хотите изменить фото?')">Изменить фото</a>
<a href="delete.image.php?id=<?php echo $image['id'];?>" class="btn btn-danger mb-3" onclick="return confirm('Вы уверены, что хотите удалить фото?')">Удалить фото</a><br>
<a href="comments/index.php?id="<?php echo $image['id'];?> class="btn btn-info">Посмотреть комментарии</a>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
</div>
</div>
</div>
Страница, загружающая фото и другие данные в БД и выводящая данные на страницу. Тут, кстати, и пытался решить вопрос привязывания id альбома к id картинки.
<?php
require_once "connect_db_mysqli.php";
require_once "index.view.php";
require_once "view.album.php";
// Параметры загрузки фото в БД
if(isset($_POST['submit']))
{
$name_image = $_POST['name_image'];
$description_image = $_POST['description_image'];
// Функция привязки id альбома к id фото
function bindAlbumToPhoto($albumId, $photoId)
{
$albumId = $all_album['id']; // через foreach на странице index.view.php получаю id альбома
$photoId = $image['id']; // через foreach на странице view.album.php получаю id фото
$result = bindAlbumToPhoto($albumId, $photoId); // пытаюсь их связать
if ($result) {
echo "Привязка альбома и фотографии выполнена успешно";
} else {
echo "Ошибка при привязке альбома и фотографии";
}
}
if($_FILES['image']['error'] === 4)
{
echo "<script> alert('Файл не был выбран');
document.location.href = 'view.album.php';
</script>";
}
else {
$fileName = $_FILES['image']['name'];
$fileSize = $_FILES['image']['size'];
$tmpName = $_FILES['image']['tmp_name'];
$validImageExtension = ['jpg', 'jpeg', 'png'];
$imageExtension = explode('.', $fileName);
$imageExtension = strtolower(end($imageExtension));
if (!in_array($imageExtension, $validImageExtension))
{
echo "<script> alert('Недопустимое расширение изображения! Выберите файл с расширением jpg, jpeg, png');
document.location.href = 'view.album.php';
</script>";
} else {
if ($fileSize > 3500000)
{
echo "<script> alert('Размер изображения слишком большой');
document.location.href = 'view.album.php';
</script>";
} else {
$newImageName = uniqid();
$newImageName .= '.' . $imageExtension;
move_uploaded_file($tmpName, 'img_bd/' . $newImageName);
$query = "INSERT INTO images (name_image, description_image, image) VALUES ('$name_image', '$description_image', '$newImageName')";
mysqli_query($conn, $query);
echo
"<script>
alert('Фотография успешно добавлена!');
document.location.href = 'view.album.php';
</script>";
}
}
}
}
Первое фото - таблица images (для загрузки фото)
второе фото - таблица albums (для загрузки альбомов)