Zapytanie wyszło kolosalne, a błąd wyskoczył taki:
Kod
This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
Kod
$rekord = mysql_query("(SELECT
prod_translations.pid ,
prod_translations.product_name ,
prod_translations.lang AS jezyk ,
prod_translations.description ,
prod_translations.active,
prod_translations.isdefault ,
products.product_id,
products.category_id,
products.producer_id,
products.in_stock,
products.gfx,
products.file,
products.add_date,
products.edit_date,
products.price,
products.promo,
products.weight,
products.views,
products.category2,
products.category3,
products.sort,
products.products_related,
products.other_price,
products.product_code,
gfx.gfx_id ,
gfx.prod_id,
gfx.name AS nazwapliku ,
gfx.main_gfx ,
gfx.unic_name ,
gfx.gfx_sort ,
manufacturers.producent_id ,
manufacturers.name AS autor ,
manufacturers.info ,
manufacturers.info_eng ,
manufacturers.web
FROM `manufacturers`
LEFT JOIN `products` ON manufacturers.producent_id = products.producer_id
LEFT JOIN `prod_translations` ON products.product_id = prod_translations.pid
LEFT JOIN `gfx` ON products.product_id = gfx.prod_id
WHERE manufacturers.isdefault LIKE '%$art%'
AND prod_translations.lang = 'en'
AND gfx.main_gfx = 1
AND products.in_stock > 0
ORDER BY products.add_date DESC LIMIT ".($pagz*$ilez).", $ilez)
UNION
(SELECT
prod_translations.pid ,
prod_translations.product_name ,
prod_translations.lang AS jezyk ,
prod_translations.description ,
prod_translations.active,
prod_translations.isdefault ,
products.product_id,
products.category_id,
products.producer_id,
products.in_stock,
products.gfx,
products.file,
products.add_date,
products.edit_date,
products.price,
products.promo,
products.weight,
products.views,
products.category2,
products.category3,
products.sort,
products.products_related,
products.other_price,
products.product_code,
gfx.gfx_id ,
gfx.prod_id,
gfx.name AS nazwapliku ,
gfx.main_gfx ,
gfx.unic_name ,
gfx.gfx_sort ,
manufacturers.producent_id ,
manufacturers.name AS autor ,
manufacturers.info ,
manufacturers.info_eng ,
manufacturers.web
FROM `manufacturers`
LEFT JOIN `products` ON manufacturers.producent_id = products.producer_id
LEFT JOIN `prod_translations` ON products.product_id = prod_translations.pid
LEFT JOIN `gfx` ON products.product_id = gfx.prod_id
WHERE manufacturers.isdefault LIKE '%$art%'
AND prod_translations.lang = 'pl'
AND gfx.main_gfx = 1
AND products.in_stock > 0
AND products.product_id NOT IN
(SELECT products.product_id FROM `manufacturers` LEFT JOIN `products` ON manufacturers.producent_id = products.producer_id LEFT JOIN `prod_translations` ON products.product_id = prod_translations.pid LEFT JOIN `gfx` ON products.product_id = gfx.prod_id WHERE manufacturers.isdefault LIKE '%$art%' AND prod_translations.lang = 'en' AND gfx.main_gfx = 1 AND products.in_stock > 0 ORDER BY products.add_date DESC LIMIT ".($pagz*$ilez).", $ilez)
ORDER BY products.add_date DESC LIMIT ".($pagz*$ilez).", $ilez)") or die(mysql_error());
Tak myślę, że gdyby jednak zabrać się do tego przez przefiltrowanie wyników to może nadawać się będzie
array_filter. Funkcja do której by się odwoływała musiałaby szukac w kluczu $w['id'] duplikatów i spośród nich usuwać elementy, które mają w kluczu $w['lang'] pl ... ? Help