2015-11-19 2 views
2

Моя цель - выбрать все элементы, относящиеся к определенной категории из базы данных с PHP и MySQL. Используя приведенный ниже сценарий, я могу выбрать все категории с соответствующими элементами.MySQL/PHP: как отображать только одну категорию со связанными объектами

$sql = query("SELECT bike AS 'cat_name', c.image AS 'image', p.title AS 'product_name' 
       FROM products p 
       INNER JOIN categories c 
       ON p.category_id = c.id"); 

while($row = mysqli_fetch_array($sql)) { 
echo $row['cat_name'].'<br />'; 
echo $row['product_name'].'<br />'; 
echo $row['image']; 
} 

Это результат:

велосипед
пункт 1
пункт 2
пункт 3
...

велосипед
пункт 1
пункт 2
пункт 3
...

Результат выше не отражает желаемого результата. Я хотел бы иметь только одну категорию, выбранную с соответствующими пунктов, как это:

велосипед
пункт 1
пункт 2
пункт 3
...

+1

Вам нужно использовать 'Group_concat' –

+0

попытаться выполнить запрос в консоли msql и посмотреть результат –

+0

Я использовал следующий скрипт: «SELECT bike AS 'cat_name', c.image AS 'image', GROUP_CONCAT (p.title) AS 'product_name' ОТ продуктов p ВХОДНЫЕ СТАТИСТИКИ категории c ON p.category_id = c .id GROUP BY p.category_id " – user4265789

ответ

0

Попробуйте это:

$sql = query("SELECT bike AS 'c.cat_name', c.image AS 'image', p.title AS 'product_name' 
FROM products p, categories c 
WHERE p.categroy_id = c.id 
AND p.id = THE_ID_OF_THE_CATEGORY "); 
Смежные вопросы