Показать одиночное изображение из базы данных
Я добавляю продукты в базу данных, и у нее есть 3 таблицы, которые products
, product_images
а также categories
, Теперь я использую соединение, чтобы показать на передней и задней стороны, а также. Я использую один запрос, и он работает нормально, пока в таблице нет только одного изображения для каждого продукта. Но теперь у меня есть несколько изображений для одного продукта, так как я могу изменить мой запрос на любое предложение, спасибо.
$sql = "SELECT p.id,p.product_title,p.product_price,p.product_quantity,p.status,
pi.product_img,
c.cat_name
FROM product p
LEFT JOIN product_images pi ON pi.product_id = p.id
LEFT JOIN categories c ON c.id = p.category_id
";
Если я использую этот запрос, он показывает несколько раз продукт в зависимости от количества изображений в product_images
Таблица. Теперь я хочу 2 different queries
один для задней стороны, где я должен отображать только одно изображение, и один для внешнего интерфейса, где я должен отображать все изображения. Еще раз спасибо.
1 ответ
Для отображения всех изображений с помощью GROUP_CONCAT
...
$sql = "SELECT p.id,p.product_title,p.product_price,p.product_quantity,p.status,
GROUP_CONCAT(pi.product_img SEPARATOR ', '),
c.cat_name
FROM product p
LEFT JOIN product_images pi ON pi.product_id = p.id
LEFT JOIN categories c ON c.id = p.category_id
GROUP BY p.id,p.product_title,p.product_price,p.product_quantity,p.status, c.cat_name
";
Чтобы отобразить одно изображение, вы можете использовать MIN
или же MAX
$sql = "SELECT p.id,p.product_title,p.product_price,p.product_quantity,p.status,
MIN(pi.product_img),
c.cat_name
FROM product p
LEFT JOIN product_images pi ON pi.product_id = p.id
LEFT JOIN categories c ON c.id = p.category_id
GROUP BY p.id,p.product_title,p.product_price,p.product_quantity,p.status, c.cat_name
";