Salut,
Le plus facile est peut etre simplement, après controle de ta chaine (car il faut quand meme prendre un minimum de précaution) d'utiliser tout simplement la fonction
chaine_finale=str_replace(chaine_recherchée,remplacer_par,chaine_dans_laquelle_chercher)
La première chose à faire est de s'assurer qu'il n'y a pas d'espace au début ni à la fin.
Cela se fait grace à la fonction chaine_finale=trim(chaine_a_verifier)
Par exemple
$variable=trim($variable);
(qui aura l'avantage de ne pas changer le nom de la variable)
La deuxième chose à faire, sera de s'assurer qu'il n'y a pas plusieurs espaces consécutifs du genre de "blabla truc"
Pour ce faire, on pourra utiliser une boucle qui vérifiera "récursivement" la présence de deux espaces successifs...
elle prendra une forme du genre de
while(stristr($variable,' ')
{
$variable=str_replace(' ',' ',$variable);
}
Une fois que nous serons rendus à ce stade, il sera facile de faire de manière à ce que ces espaces soit remplacés correctement dans la chaine...
un simple
$variable=str_replace(' ','%\\' or champstable like\\'%',$variable);
devrait faire l'affaire
pour la sécurité, il sera aussi utile de faire rajouter un % à la fin de la chaine avant le traitement[clindoeil]
Il ne restera plus qu'à créer la requete SQL avec cette chaine modifiée...
Cela se fera de manière classique, avec un code qui pourrait ressembler à
$sql=sprintf("SELECT champs FROM table where champs_cherche LIKE '%s',$variable);