Recherche chaine dans champs MYSQL
Bonjour Cyrano,
me revoici déjà avec un nouveau post.
Toujours pour le même projet, je cherche à isoler des produits ayant une base référence identique.
J'ai fait une vue nommée 'v_gamme' qui reprend tous mes produits. Au passage je commence à apprécier et comprendre l'intérêt l'usage des vues !
La référence de mes produits se présente sous cette forme : PL1000 càd 2 lettres + un nombre à 4 chiffres (pour l'instant cela pourra évoluer). J'aimerais donc que pour 1 même produit (par ex le PL1000, il me sorte le PL1001, PL1002 PL100N). En fait, ce qui me permet de reconnaître les produits d'une même famille c'est le 10 de PL10000
Je fais donc d'abord un $gamme=substr($ref_stylo, 2,2); de mon article en cours.
Puis je fais une requete sur ma vue v_gamme pour trouver dans le champ sty_reference, les produits qui sont de même famille.
Ma requete est : $request_gamme=("SELECT g.sty_reference, g.ima_chemin FROM v_gamme g WHERE g.sty_reference LIKE '%".$gamme."%' ");
J'utilise un LIKE mais mon soucis c'est que je n'ai pas la possibilité de dire de recherche à partir de la position 2 et sur 2 caractères.
Existe t-il une autre solution? J'ai cherché mais je ne trouve rien.
Merci
Réponses apportées à cette discussion
J'ai trouvé une partie de ma réponse utiliser _ et %. Mais ça ne fonctionne pas.
Regarde du coté des expressions régulières ded MySQL
Hello,
j'ai donc regardé du côté des regex je pense avoir compris le principe, mais je rame pour intégrer ma variable dans ma requête. Je pense que mon regerx est bon (enfin j'espère ) mais c'est juste la variable qui coince.
voici mon code
$request_gamme=("SELECT g.sty_reference, g.ima_chemin FROM v_gamme g WHERE g.sty_reference REGEXP '[a-zA-Z]{2}'".$gamme."'[0-9]{2}'");
Pour info, j'ai également essayé avec ta technique de concaténation mais cela ne change rien. Soir il me répond accès impossible à la base soit $request_gamme "Undefined"
Je pense que mon regex est bon parce que quand je fais ma requete dans Sequel Pro, il me sort mon résultat. Si ma page il me met que ma variable (requete ) est "Undefined variable".
Je pense que mon erreur doit être dans l'usage de mes " ou ' mais je ne vois pas. J'ai essayé plusieurs solutions sans succès.
Mon problème est résolu, c'était bien un problème de ' et ".
La solution est donc :
$request_gamme=("SELECT g.sty_reference, g.ima_chemin FROM v_gamme g WHERE g.sty_reference REGEXP '[a-zA-Z]{2}".$gamme."[0-9]{2}'");