Page 1 sur 1

expression regulière dans une requete?

Posté : 27 avr. 2005, 09:22
par BFH
Bonjour,
j'ai une selection dans ma base de données avec la requete qui suit :
$N =$row["Lieu"];
$query2="SELECT * FROM report WHERE
RHost=\"$N\" ";
$result2=mysql_query($query2)or die (mysql_error());
$row2=mysql_fetch_assoc($result2)
Cependant $N retourne des valeures de ville telles que Nevers et RHost fait lui reference à des valeures de villes telles que Nevers1

Comment faire pour que la selection se fasse correctement?
Je sais que en php "^debut" renvoi à une chaine qui commence par début mais RHost=\"^$N\" ne fonctionne pas...

D'avance merci.

Posté : 27 avr. 2005, 09:49
par heddicmi
RHost=\"$N%\"

Donnera toute ce qui commence par $N...

Mais sinon, cf. la doc...

Posté : 27 avr. 2005, 10:29
par BFH
:( Désolé mais ça marche pas :(

Ton exemple fonctionne surement lorsque l'on a du texte devant le % sauf que là dans mon cas j'ai une variable.

Merci quand même!

En fait c'était pas tout a fait faux!
La bonne réponse est :
$N=$row["Lieu"];
$query2="SELECT * FROM report WHERE
RHost=\"$N\"+\"%\" ";

Posté : 27 avr. 2005, 10:32
par heddicmi
Non tu n'as pas une variable... Tu as une chaine de caractère dans une variable...
"SELECT * FROM report WHERE RHost=\"$N%\" ";

ça te retourneras
SELECT * FROM report WHERE RHost="Nevers%"...

D'ailleurs plutôt que WHERE ...=..., essaye WHERE ... LIKE ...

Posté : 27 avr. 2005, 10:34
par BFH
DSL j'ai edité mon post le temps que tu repondait!

Posté : 27 avr. 2005, 11:02
par Cyrano
Je vous signale pour information que MySQL supprorte les expressions régulière et que la fonction REGEXP peut accélérer le traitement quelque peu, voir la doc

Posté : 27 avr. 2005, 11:04
par heddicmi
vi je sais, j'avais mis le lien sur la doc de nexen :wink:

Posté : 27 avr. 2005, 11:32
par flitox
Raaaaaaah Cyrano m'a grillé avec sa REGEXP pour MySQL

Tant pis... Image

Posté : 27 avr. 2005, 11:59
par Invité
J'ai lu cette doc mais j'y comprends rien (normal je debute) vous pouvez traduire a quoi sert REGEXP :?: