1.6.2.11 - Bug classe Carrier



  • Pour info, j'ai une erreur 500 en FO au moment de me connecter, ,je suis étonnée de ne pas avoir vu remonter le bug ?
    Cela vient de la classe Carrier, ligne 634, un problème de parenthèses mal placées. La requête était ok sur la version 1.6.2.9.

    ON(cz.id_zone = zz.id_zone) ON zz.`id_zone` = c.`id_zone`)
    

    j'ai remplacé par

    ON cz.id_zone = zz.id_zone) ON zz.`id_zone` = c.`id_zone`
    

    Je ne sais pas si c'est utile ou au contraire non souhaitable, mais j'ai ajouté un distinct dans le Select ?



  • Bonjour,
    Effectivement le bug a été remonté sur la 11.
    Il est corrigé dans la 12 qui sort incessamment sous peu

            $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
                SELECT cl.*,c.*, cl.`name` AS country, zz.`name` AS zone
                FROM `'._DB_PREFIX_.'country` c'.
                Shop::addSqlAssociation('country', 'c').'
                INNER JOIN `'._DB_PREFIX_.'country_lang` cl 
                    ON(c.`id_country` = cl.`id_country` 
                    AND cl.`id_lang` = '.(int)$id_lang.')
                INNER JOIN `'._DB_PREFIX_.'carrier_zone` cz 
                    ON(cz.id_zone = c.id_zone)
                INNER JOIN `'._DB_PREFIX_.'carrier` cr 
                    ON(cr.id_carrier = cz.id_carrier 
                    AND cr.deleted = 0 '.
                    ($active_carriers ? '
                        AND cr.active = 1) ' : ') ').'
                LEFT JOIN `'._DB_PREFIX_.'zone` zz 
                    ON(cz.id_zone = zz.id_zone 
                    AND zz.`id_zone` = c.`id_zone`)
                WHERE 1
                '.($active_countries ? '
                    AND c.active = 1' : '').'
                '.(!is_null($contain_states) ? '
                    AND c.`contains_states` = '.(int)$contain_states : '').'
                GROUP BY c.`id_country`
                ORDER BY cl.`name` ASC
            ');
    

    Et non, le distinct n'est plus utile.


Se connecter pour répondre