Я работаю над 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), а такжетот же идентификатор из таблицы фотографий.Мне нужно выбрать имя и расширение из таблицы фотографий, а затем подключиться к main_photo_id с помощью запроса, но когда я пишу запрос, я не получаю результата на странице, и когда я изменяю переменную vardump, он говорит, что bool (false), но в базе данных он правильно меняет main_photo_id.Любая помощь приветствуется.Вот мой код:
AdModel:
public function showMainPhoto($id)
{
$this->db->query('SELECT p.id, p.name, p.extension FROM photos AS p
RIGHT JOIN property_photo AS pp ON pp.photo_id = p.id
RIGHT JOIN properties AS pro ON pro.main_photo_id = pp.photo_id
WHERE pro.main_photo_id = :main_photo_id');
$this->db->bind(':main_photo_id', $id);
$row = $this->db->single();
return $row;
}
AdsController:
public function viewAction()
{
if (!isset($_GET['id'])) {
$ad_id = $_SESSION['ad_id'];
} else {
$ad_id = $_GET['id'];
}
$ad_data = $this->AdModel->adData1($ad_id);
$data = $this->AdModel->getPhotoForPropertyView($ad_id);
$data1 = $this->AdModel->showMainPhoto($ad_id);
var_dump($data1);
$data2 = $this->AdModel->getPhotosForProperty($ad_id);
$this->view->render('ads/view', $data, $ad_data, $data1, $data2);
}
view.php:
<picture>
<h1>Main Photo</h1>
<img src="<?php echo '/public/photos/'.$data1->name.'.'.$data1->extension ?>" class="img-fluid img-thumbnail" width="350" height="350">
</picture>