Faire abstraction des espaces dans une requet

christophe -  
 christophe -
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

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  2. christophe
     
    Merci de ta contribution; si cela interesse quelqu'un voici la solution:
    WHERE REPLACE($nomtable.commentaire,' ','') LIKE '%$recherche%' OR $nomtable.commentaire LIKE '%$recherche2%'"
    0