Bonjour,
j'ai un petit soucis avec une requête. Elle marche à condition que le mot recherché ne porte pas d'accent. Si le mot comprte un accent, alors je n'ai aucun resultat.
Pour être precis, voici un exemple : Je fais une recherche sur les mots: Comptabilité/Finance
- Aucun resultat.
Comptabilite/Finance
- Résultat positif.
Je met le bout de cod qui me fatique :
$sql = "SELECT * FROM table
WHERE `secteur` LIKE " " .$_POST['option']. "%'" OR
`secteur` LIKE " " . strtolower($_POST['option']) . "%'" OR
`secteur` LIKE " " . strtoupper($_POST['option']) . "%'" OR
`secteur` LIKE " " . strtr($_POST['option'], "áéíóúàèìòùâêîôûäëïöü", "aeiouaeiouaeiouaeiou") . "%'" OR
`secteur` LIKE " " . strtoupper(strtr($_POST['option'], "áéíóúàèìòùâêîôûäëïöü", "aeiouaeiouaeiouaeiou")) . "%'" OR
`secteur` LIKE "" . strtolower(strtr($_POST['option'], "áéíóúàèìòùâêîôûäëïöü", "aeiouaeiouaeiouaeiou")) . "%'" OR
`secteur` LIKE " '%" .$_POST['option']. "%'" OR
`secteur` LIKE " '%" . strtolower($_POST['option']) . "" OR
`secteur` LIKE " '%" . strtoupper($_POST['option']) . "" OR
`secteur` LIKE " '%" . strtr($_POST['option'], "áéíóúàèìòùâêîôûäëïöü", "aeiouaeiouaeiouaeiou") . "" OR
`secteur` LIKE " '%" . strtoupper(strtr($_POST['option'], "áéíóúàèìòùâêîôûäëïöü", "aeiouaeiouaeiouaeiou")) . "" OR
`secteur` LIKE "'%" . strtolower(strtr($_POST['option'], "áéíóúàèìòùâêîôûäëïöü", "aeiouaeiouaeiouaeiou")) . ""
"; // Requête pour vérifier la casse et les accents
Si quelqu'un à une idée sur le problème.
Cordialement
Merci
Interclassement dans ta table si c'est exemple utf8
verifie que ton script qui poste est en utf8 le charset ...
et strtr($_POST['option'], "áéíóúàèìòùâêîôûäëïöü", "aeiouaeiouaeiouaeiou")
sera pas neccessaire
Ok, je l'essai de suite.
Mais j'ai oublié de signaler que ma recherche porte sur soit une chaine de caractère soir sur un seul mot. Mon formulaire est une liste déroulante.
echo $sql = "SELECT * FROM `".$table."` WHERE `choix` LIKE '%".$option."%'";
Je peux ajouter des OR pour trouver autres mots de la chaine?
Merci