Bon dernier du jour mais cela me turlupine classe search



  • Je dois faire des modifications dans la classe search
    je regarde la function find(qui nous interesse). si je la symbolise j'ai un truc comme ça.

    recherche sur ref { //add by eolia
         select ... blabla where ref(s) = blabla
         // une seule ref sinon ça marche pas mais bon 
         ==> total et ids des produits
    }
    si total{
       si ajax {
              select ... blablabla 
              where p.id in (ids des produits) //  ok normal
             and reférence.... <=== inutil car déjà discriminées dans rechercher sur ref
               }
        sinon {
              select ... blablabla 
              where   blabla <== on ne récupère pas les ids déjà trouvés, 
                             la recherche n'aura pas le même résultats que l'ajax
             and reference = blablabla  //et encore la référence.....
                  }
    
    } // fin de si total
    
    puis recherche sur les mots
    

    je pense qu'on pourrait supprimer les références dans les clauses where dans le if ($total) et qu'on devrait ajouter
    p.id in (ids des produits)
    dans le where de la requête pas ajax.



  • Tout dépend si vous avez mis cette option à oui ou pas dans les préférences de recherche
    548b00fe-3c5d-402d-8718-6a945c99fa6f-image.png
    Cette option a été ajoutée pour les commerçants qui ont des clients qui connaissent les références (pièces auto ou autre par exemple)



  • j'ai bien vu le if, je me disais que l'on pouvait supprimer la clause and reférence.... dans les 2 requêtes suivantes puisqu'elle ne sortent déjà QUE les produits pré-triés dans $eligible_products

    $eligible_products = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql, true, false);
    
    et dans la reqête qui suis
    
        WHERE p.`id_product` IN('.implode(',', $product_pool).')
    AND (p.`reference` LIKE "%'.pSQL($expr).'%"
                                OR pa.`reference` LIKE "%'.pSQL($expr).'%")
    

    D'ailleurs je pense même qu'on peut déjà sur alléger cette requête car plein de choses ont déjà été discriminées



  • @herve_02

    Maintenant peut être qu'on gagnerais pas grand chose, Mariadb a peut être un système de cache..


Se connecter pour répondre