Проблема с отображением фотографии на странице из сводной таблицы - PullRequest
0 голосов
/ 20 июня 2019

Я работаю над 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...