8791 sujets

Développement web côté serveur, CMS

Bonjour à toutes et à tous,

Mon problème peut vous paraitre simple, mais j'ai cherché comme pas possible, sans rien trouver..

J'ai une variable que j'acquiers par MySQL, contenant une chaine de caractère
$donnees3['MobCarte'])
contenant un ou plusieurs chiffres délimitées par un tiret (-), qui donne cela : 1-2 ou 2-4 ou 1-10.

J'ai un une variable $Carte2 :
$Carte2 = $Monde0['CarteID'];
qui comme vous le voyez, conteint une autre variable, qui elle contient un chiffre, allant de 1 à 11.

J'ai une EXPREG PCRE, qui recherche si le chiffre de $Carte2 est contenu dans la chaine $donnees3['MobCarte'].

Donc $Carte2 devient :
$Carte2 = "#" . $Monde0['CarteID'] . "#";


Et la recherche est :
preg_match($Carte2, $donnees3['MobCarte'])


Le problème : Ça fonctionne en effet, mais si $Carte2 vaut "1", et que $donnees3['MobCarte'] vaut "10" ou "11", il va les considérer comme TRUE, alors que je ne veux pas, vu que 1 n'est pas 10 ni 11.

J'ai donc utilisé des symboles pour dire que je ne veux que ça, en disant que ça commence par ça et finit par ça :
$Carte2 = "#^" . $Monde0['CarteID'] . "$#";


Et bah là figurez-vous qu'il ne trouve plus rien lorsque $donnees3['MobCarte'] contient plus d'un chiffre, et qu'il est donc sous la forme "2-3" ou "4-7-10" !!

Que faire...? Ya-t-il un symbole précis pour ce type de situation ? Je suis sûr que quelqu'un as déjà du la rencontrer.. Mais que faire.. Smiley decu Merci de bien vouloir m'aider..
Mon cerveau est à bout. Smiley ohwell

Bonne journée.