MySQL-запрос для получения данных из таблицы продуктов и всех связанных фотографий из другой таблицыPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 MySQL-запрос для получения данных из таблицы продуктов и всех связанных фотографий из другой таблицы

Сообщение Anonymous »

Я прошу вас о помощи, пожалуйста.
У меня есть запрос, который я использовал для получения всех продуктов из основной таблицы, а при объединении он также извлекал соответствующие фотографии из другой таблицы. Проблема с этим запросом заключается в том, что он дублирует результат, когда я печатаю его на экране (насколько я понял, так и происходит, потому что для каждого продукта есть две фотографии). Я хотел бы распечатать каждый товар только один раз, но со всеми двумя фотографиями. Поискав в Интернете, я понял, что мне нужно как-то сгруппировать данные, но, честно говоря, я не так хорош. Как мне изменить этот запрос, чтобы достичь этой цели? Можете ли вы мне помочь, пожалуйста?
"SELECT tbl_prodotti.id AS id,
tbl_prodotti.nome AS nome,
tbl_prodotti.kg AS kg,
tbl_prodotti.tipologia_prodotto AS tipologia_prodotto,
tbl_prodotti.s_pc AS s_pc,
tbl_prodotti.potere_calorico AS potere_calorico,
tbl_prodotti.s_ceneri AS s_ceneri,
tbl_prodotti.ceneri AS ceneri,
tbl_prodotti.certificazione AS certificazione,
tbl_prodotti.rif_certificazione AS rif_certificazione,
tbl_prodotti.essenze AS essenze,
tbl_prodotti.s_diametro AS s_diametro,
tbl_prodotti.diametro AS diametro,
tbl_prodotti.diametro2 AS diametro2,
tbl_prodotti.s_lung AS s_lung,
tbl_prodotti.lunghezza AS lunghezza,
tbl_prodotti.s_larghezza AS s_larghezza,
tbl_prodotti.larghezza AS larghezza,
tbl_prodotti.s_umidita AS s_umidita,
tbl_prodotti.umidita AS umidita,
tbl_prodotti.s_durabilita AS s_durabilita,
tbl_prodotti.durabilita AS durabilita,
tbl_prodotti.s_pf AS s_pf,
tbl_prodotti.polveri_fini AS polveri_fini,
tbl_prodotti.s_add AS s_add,
tbl_prodotti.additivi AS additivi,
tbl_prodotti.disponibilita AS disponibilita,
tbl_imgs.foto AS foto,
tbl_imgs.posizione AS posizione,
tbl_certificazione.nome AS riferimento_certificazione
FROM tbl_prodotti
LEFT JOIN tbl_imgs
ON tbl_imgs.id_prodotto = tbl_prodotti.id
LEFT JOIN tbl_certificazione
ON tbl_certificazione.id = tbl_prodotti.rif_certificazione
WHERE tbl_prodotti.tipologia_prodotto = :tipologia_prodotto
ORDER BY tbl_prodotti.id ASC"

Изменить: ниже обновлен запрос и часть моего PHP-кода для разбивки результата и его циклического просмотра.
SELECT tbl_prodotti.id AS id,
tbl_prodotti.nome AS nome,
tbl_prodotti.kg AS kg,
tbl_prodotti.tipologia_prodotto AS tipologia_prodotto,
tbl_prodotti.s_pc AS s_pc,
tbl_prodotti.potere_calorico AS potere_calorico,
tbl_prodotti.s_ceneri AS s_ceneri,
tbl_prodotti.ceneri AS ceneri,
tbl_prodotti.certificazione AS certificazione,
tbl_prodotti.rif_certificazione AS rif_certificazione,
tbl_prodotti.essenze AS essenze,
tbl_prodotti.s_diametro AS s_diametro,
tbl_prodotti.diametro AS diametro,
tbl_prodotti.diametro2 AS diametro2,
tbl_prodotti.s_lung AS s_lung,
tbl_prodotti.lunghezza AS lunghezza,
tbl_prodotti.s_larghezza AS s_larghezza,
tbl_prodotti.larghezza AS larghezza,
tbl_prodotti.s_umidita AS s_umidita,
tbl_prodotti.umidita AS umidita,
tbl_prodotti.s_durabilita AS s_durabilita,
tbl_prodotti.durabilita AS durabilita,
tbl_prodotti.s_pf AS s_pf,
tbl_prodotti.polveri_fini AS polveri_fini,
tbl_prodotti.s_add AS s_add,
tbl_prodotti.additivi AS additivi,
tbl_prodotti.disponibilita AS disponibilita,
tbl_imgs.posizione AS posizione,
tbl_certificazione.nome AS riferimento_certificazione,
group_concat(tbl_imgs.foto ORDER BY posizione) as immagini
FROM tbl_prodotti
LEFT JOIN tbl_imgs
ON tbl_imgs.id_prodotto = tbl_prodotti.id
LEFT JOIN tbl_certificazione
ON tbl_certificazione.id = tbl_prodotti.rif_certificazione
WHERE tbl_prodotti.tipologia_prodotto = :tipologia_prodotto
AND disponibilita :disponibilita
GROUP BY tbl_prodotti.id
ORDER BY tbl_prodotti.id ASC"

Вот часть моего PHP-кода для разложения результата и его циклического просмотра:
$i = 0;
$totale = '';
$immagini = array();
$immagini = explode(',', $row['immagini']);
$totale = count($immagini);
while($i < $totale){
$html .= "";
$i++;
}


Подробнее здесь: https://stackoverflow.com/questions/781 ... s-from-ano
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»