Faire abstraction des espaces dans une requet

Fermé
christophe - 26 févr. 2006 à 08:59
 christophe - 26 févr. 2006 à 18:18
Bonjour,
je voudrais trouver une solution pour ne pas etre bloqué par les espaces dans une requete mysql.
Je m'explique: sur ma page "recherche.php", je rentre par exemple dans un champ de formulaire "ma recherche".
Dans ma page "resultat.php", j'ai 2 variables:
$recherche= $_POST['recherche'];
$recherche2=str_replace(" ", "", "$recherche");
Ainsi, avec ma requete qui utilise "WHERE $nomtable.commentaire LIKE '%$recherche%' OR $nomtable.commentaire LIKE '%$recherche2%'"
le resultat s'affiche même si il n'y a pas d'espace entre ma et recherche.
Maintenant je n'arrive pas à resoudre le contraire, à savoir que l'utilisateur rentre "marecherche" alors que dans la base la chaine de cararteres est "ma recherche".
J'espère avoir bien exposé mon soucis, et merci d'avance à ceux qui pourront m'aider.

2 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
26 févr. 2006 à 15:31
Pour le 1er cas si j'ai bien compris

dans la base tu as ma recherche ou marecherche

recherche = ma recherche
recherche2 = marecherche

Donc tu vas trouver l'occurence grâce à OR dans ta requête

Pour le 2ème cas

dans la base tu as ma recherche mais la variable sera

recherche = marecherche

Je pense que pour resoudre ce genre de problèmes les expressions régulières peuvent t'aider

http://www.google.fr/search?client=firefox-a&rls=org.mozilla%3Afr%3Aofficial_s&hl=fr&q=expressions+r%C3%A9guli%C3%A8res+en+php&meta=&btnG=Recherche+Google
0
Merci de ta contribution; si cela interesse quelqu'un voici la solution:
WHERE REPLACE($nomtable.commentaire,' ','') LIKE '%$recherche%' OR $nomtable.commentaire LIKE '%$recherche2%'"
0