Recherche chaine dans champs MYSQL

Rechercher

Recherche chaine dans champs MYSQL

Par paintbox  -  5 reponses  -  Le 18/11/2010 12:31  -  Editer  - 

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

Par paintbox  -  Le 18/11/2010 13:44  -  Haut de page  - 

J'ai trouvé une partie de ma réponse utiliser _ et %. Mais ça ne fonctionne pas.

 
Par Cyrano  -  Le 18/11/2010 15:19  -  Haut de page  - 

Regarde du coté des expressions régulières ded MySQL

 

 
Par paintbox  -  Le 19/11/2010 16:48  -  Haut de page  - 

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"

 
Par paintbox  -  Le 20/11/2010 11:12  -  Haut de page  - 

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.

 
Par paintbox  -  Le 21/11/2010 11:55  -  Haut de page  - 

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}'");
 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |