Отобразить несколько фото для конкретной записи из БД PHP

118
21 апреля 2022, 08:00

не могу разобраться, как вывести несколько фотографий для конкретной записи. Выводится только одно изображение. Есть две таблицы: products со списком товаров и gallery со списком изображений.

<?php
require $_SERVER['DOCUMENT_ROOT'].'/config/safemysql.class.php';
$db = new safeMysql();
$id = isset($_GET['id']) ? $_GET['id'] : false;
$sql  = "SELECT products.*, gallery.* FROM products INNER JOIN gallery on products.id=gallery.id_products WHERE id_products=$id ";
$data = $db->getAll($sql);
$rows = $db->getOne("SELECT FOUND_ROWS()");
?>
  <? foreach ($data as $row): ?>
  
      <div class="product__thumb  product__thumb--active">
        <img class="product__thumb-image" src="content/products/<?=$row['img']?>" width="71" height="47" alt="" />
      </div>
      
  <? endforeach ?>

Answer 1

В первую очередь, safeMysql используется неправильно Да и вообще ошибки на каждой строчке

а список картинок можно получить функцией group_concat

if (!isset($_GET['id']) ||  !ctype_digit($_GET['id']) {
    die('invalid request');
}
$db = new safeMysql();
$sql  = "SELECT p.*, group_concat(g.img) 
         FROM products p INNER JOIN gallery g on p.id=g.id_products 
         WHERE id_products=?i GROUP BY p.id";
$row = $db->getRow($sql, $_GET['id']);
?>

<?php foreach (explode(",",$row['img']) as $img): ?>
  <div class="product__thumb  product__thumb--active">
    <img class="product__thumb-image" src="content/products/<?=$img>" width="71" height="47" alt="" />
  </div>
<?php endforeach ?>

Либо, если это очень сложно для понимания, то просто запросить картинки отдельным запросом

READ ALSO
Как правильно добавить агрегатную колонку к сущности в cycle orm?

Как правильно добавить агрегатную колонку к сущности в cycle orm?

Есть две сущности: Игра и Разработчик, между которыми есть свзять типа многие ко многим, как описать схему для орм так, что бы сущность Developer...

208
Как настроить валидацию на yii2?

Как настроить валидацию на yii2?

Дело в том, что у меня есть чекбокс, который отключает поле ввода, но несмотря на это, поля продолжает проверяется на валдиациюКак правильно...

116
Вывод сообщений об ошибках через JS и Request-ов

Вывод сообщений об ошибках через JS и Request-ов

есть форма уже созданная на сайте, нужно было приделать на ту же страницу уже другую форму, по функционалу они выполняют одно и то же, отправка...

272
Как обновить версию php на Ubuntu 16.04

Как обновить версию php на Ubuntu 16.04

Пытался обновить версию php на сервере Ubuntu 1604 до 7

152