Я работаю над cms для свойств в oop php в учебных целях.У меня есть галерея с изображениями для каждого отдельного объекта.Теперь я пытаюсь получить одно из этих изображений в качестве основного изображения для этого конкретного свойства.У меня есть три стола.
properties (id, location, price, main_photo_id)
property_photo (id, property_id, photo_id)
photos (id, name, extension)
У меня возникли проблемы при написании запроса, который обновит столбец main_photo_id (таблица свойств) с идентификатором из таблицы фотографий (или photo_id из таблицы property_photo, в принципе это то же самое).Я знаю, что запрос не очень хороший, потому что он всегда записывает 0 в столбце main_photo_id, но я относительно неопытен в sql и, похоже, не могу найти проблему.Любая помощь приветствуется.
AdModel:
public function MainPhotoInsert($photoid)
{
$this->db->query('UPDATE properties INNER JOIN photos ON photos.id = properties.id SET properties.main_photo_id = :main_photo_id');
$this->db->bind(':main_photo_id', $photoid);
$this->db->execute();
}
AdsController:
public function galleryAction()
{
if (!isset($_GET['id'])) {
$photo_id = $_SESSION['photo_id'];
} else {
$photo_id = $_GET['id'];
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
if(isset($_POST['radio']))
{
$this->AdModel->MainPhotoInsert($photoid);
redirect('ads/index');
}
}
$data = $this->AdModel->getPhotosForProperty($photo_id);
$data1 = $this->AdModel->MainPhotoData($photo_id);
$this->view->render('ads/gallery', $data, $data1);
}
gallery.php
<form action="/ads/gallery?id=<?php echo $_GET['id']; ?>" method="POST">
<?php foreach ($data as $key => $value) : ?>
<img src="<?php echo '/public/photos/'.$value->name.'.'.$value->extension ?>" class="img-fluid img-thumbnail" width="250" height="250">
<input type="radio" name="radio" value="<?php echo $value->photo_id; ?>" >Make main
<br>
<?php endforeach; ?>
<br>
<br>
<button type="submit" name="submit" value="submit" class="btn btn-success form-control">Submit</button>
</form>