Autor | Zpráva | ||
---|---|---|---|
Monkeys Profil * |
#1 · Zasláno: 2. 2. 2015, 15:23:08
TB PRODUKT_ATRIBUTY
id_atributu | id_produktu | cena_dph | cena_bez_dph 3 | 80 | .... 8 | 80 | ... 7 | 80 | ... 9 | 80 | ... 3 | 81 | ... 8 | 81 | ... 7 | 81 | ... 9 | 81 | ... Problem je ze ak mam viac produktov s rovnakym id_atributu tak to vyberie aj tie atributy ktore patria inemu produktu. Napr vstup: Array ( [80] => Array ( [mnozstvo] => 1 [atribut] => 7 ) [81] => Array ( [mnozstvo] => 1 [atribut] => 8 ) ) a sql je "SELECT p.id_produktu, p.produkt, p.url_produktu, p.predajna_cena, p.cena_bez_dph AS cena_no_dph, p.obrazok, a.hodnota_atributu, pa.cena_dph AS atribut_cena, pa.cena_bez_dph AS atribut_no_dph FROM produkty p LEFT JOIN produkt_atributy pa ON pa.id_produktu=p.id_produktu LEFT JOIN atributy a ON a.id_atributu=pa.id_atributu WHERE ".((count($attr) > 0) ? ' IF(pa.id_atributu IS NULL, p.id_produktu IN ('.implode(",", array_map("intval",array_keys($session))).'), pa.id_produktu IN ('.implode(",", array_map("intval",array_keys($session))).') AND pa.id_atributu IN ('.implode(",", array_map("intval",$attr)).') ' : 'p.id_produktu IN ('.implode(",", array_map("intval",array_keys($session))) ).") ORDER BY p.produkt DESC"; vybere to 80 => 7 80 =>8 81 => 7 81 =>8 Neviem ako to osetrit aby to vybralo len 2 produkty s rozdielnym id:atributu vdaka M. |
||
juriad Profil |
změň:
'... pa.id_produktu IN ('.implode(",", array_map("intval",array_keys($session))).') AND pa.id_atributu IN ('.implode(",", array_map("intval",$attr)).') ...' '... (pa.id_produktu, pa.id_atributu) IN ((80, 7), (81, 8)) ...' |
||
monkeys Profil * |
#3 · Zasláno: 2. 2. 2015, 15:54:40
juriad:
Ok dakujem pekne |
||
Časová prodleva: 10 let
|
0