SQL many to many select
It's a straightforward inner join of the tables:
SELECT m.name, cp.id_category
FROM manufacturer as m
INNER JOIN product as p
ON m.id_manufacturer = p.id_manufacturer
INNER JOIN category_product as cp
ON p.id_product = cp.id_product
WHERE cp.id_category = 'some value'
Select M.name
From manufacturer M
Where M.id_manufacturer in ( Select P.id_manufacturer
From product P
Where P.id_product in ( Select C.id_product
From category_product C
Where C.id_category = ?))
Query without joins will look like following :
SELECT m.name
FROM manufacturer as m, product as p, category_product as cp
WHERE cp.id_category = <your value>
AND cp.id_product = p.id_product
AND p.id_manufacturer = m.id_manufacturer