IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Prise en compte accents dans moteur de recherche


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut Prise en compte accents dans moteur de recherche
    Bonjour tout le monde,

    J'espère que quelqu'un aura la réponse, j'ai un moteur de recherche qui me récupère ce que j'ai dans ma bdd pour me ressortir les lignes voulus. Mais mon soucis c'est qu'il trouve rien dès que je mets un accents sur un mot.
    Exemple :
    Je tapes dans ma recherche : telephone il va bien me ressortir les lignes avec le mot telephone mais si je tapes téléphone : il me trouve rien, pourtant dans ma bdd j'ai les deux !

    Ma question est la suivante comment faire pour que mon moteur de recherche supporte les accents et me ressorte les mots qui on des accents ? (Tout les accents é/à/è/ù)

    Merci

    Voici mon code qui me permet de faire ma recherche si ca peut aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
     
    <?php
     
    	if(isset($_GET['submit'])){
    		$mot1 = htmlspecialchars(trim($_GET['mot1']));
    		$mot2 = htmlspecialchars(trim($_GET['mot2']));
     
    //code pour le 1er champs de recherche
    		if(empty($mot1)){
    			echo"<span class='errors'>Veuillez remplir tous les champs</span>";
    		}else if(strlen($mot1)==1){
    			echo"<span class='errors'>Votre mot cl&eacute de recherche est trop court</span>";
    		}else{
     
    			$Keyword = ' ';
    			$mot1 = preg_split('/[\s\-\ ]/', $mot1);
    			$count_keywords = count($mot1);
     
    			foreach ($mot1 as $key => $mot1mots) {
    				$Keyword .= "champs_de_la_table_qui_correspond_a_mot1 LIKE '%$mot1mots%'";
    				if($key != ($count_keywords-1)){
    					$Keyword .= " AND ";
    				}
    			}
    // code pour le le deuxième champs de recherche
    		if(empty($mot2)){
    			echo"<span class='errors'>Veuillez remplir tous les champs</span>";
    		}else if(strlen($mot2)==1){ 
    			echo"<span class='errors'>Votre mot cl&eacute de recherche est trop court</span>";
    		}else{
     
    			$Keywor = ' ';
    			$mot2 = preg_split('/[\s\-\ ]/', $mot2);
    			$count_keywords = count($mot2);
     
    			foreach ($mot2 as $key => $mot2mots) {
    				$Keywor .= "[champs_de_la_table_qui_correspond_a_mot2] LIKE '%$mot2mots%'";
    				if($key != ($count_keywords-1)){
    					$Keywor .= " AND ";
    				}
    			}
     
    //requête qui lie les tables entre elles et qui permet de chercher dans les tables par un mot clé mais également trié les résultats par date de la plus récente à la plus ancienne. 
    		$maRequete = ("SELECT * FROM dbo.[table1] 
    			LEFT OUTER JOIN dbo.[table2] 
    			ON dbo.[table1].[Champs_communs1] = dbo.[table2].Champs_communs1 
    			LEFT OUTER JOIN dbo.[table3] 
                ON dbo.[table1].[ champs_communs2] = dbo.[table3].[champs_communs2] 
    			WHERE $Keyword AND $Keywor
    			ORDER BY dbo.[table1_ou_table2_ou_table3].champs_d'une_table DESC");
     
     
    		$query=sqlsrv_query($conn, $maRequete);
    		$rows = sqlsrv_num_rows($query);
     
    		if($rows === false){
     
    			$Champs0 = false;
    			$champs1 = '';
    			$champs2 = '';
    			$champs3 = '';
    			$champs4 = ''; 
    			while($search = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC)){
    				if ($Champs0 === false) {	// Initialisation
    					$Champs0 = $search['Nom du champs dans la table qui correspond'];
    					$champs1 = $search['Nom du champs dans la table qui correspond'];
    					$champs2 = $search['Nom du champs dans la table qui correspond'];
    					$champs3 = $search['Nom du champs dans la table qui correspond'];
    					$champs4 = $search['Nom du champs dans la table qui correspond'];
    				}
    				elseif ($Champs0 == $search['Nom du champs dans la table qui correspond']) {
    					// On reste sur le même champs. On se contente de rajouter le nouveau morceau.
    					$champs3 .= ' ' . $search['Nom du champs dans la table qui correspond'];
    				}
    				else {
    					// Changement et On affiche les données courantes...
    					$n = str_ireplace($mot1mots,'<span class="surlign">'.$mot1mots.'</span>', $champs1);//Met en gras le mot rechercher dans la colonne "champs1" 
    					$cc = str_ireplace($mot2mots,'<span class="surlign">'.$mot2mots.'</span>', $champs2);//Met en gras le mot rechercher dans la colonne "champs2"
    					$d = str_ireplace($mot1mots,'<span class="surlign">'.$mot1mots.'</span>', $champs3);//Met en gras le mot rechercher dans la colonne "champs3"
    					$c = str_ireplace($mot1mots,'<span class="surlign">'.$mot1mots.'</span>', $champs4);//Met en gras le mot rechercher dans la colonne "champs4"
    					echo"<p class='carre'><strong>Nom du champs1: </strong> $n";
    					echo"<br /> <strong>Nom du champs2 : </strong> $cc";
    					echo"<br /> <strong>Nom du champs3 : </strong> $d";
    					echo"<br /> <strong>Nom du champs4 : </strong> $c <br /></p><br />";
     
     
    					// ... et on les change 
    					$champs0 = $search['Nom du champs dans la table qui correspond'];
    					$champs1 = $search['Nom du champs dans la table qui correspond'];
    					$champs2 = $search['Nom du champs dans la table qui correspond'];
    					$champs3 = $search['Nom du champs dans la table qui correspond'];
    					$champs4 = $search['Nom du champs dans la table qui correspond'];
    				}
    			}
    			// Et on n'oublie pas le tout dernier 
    			$n = str_ireplace($mot1mots,'<span class="surlign">'.$mot1mots.'</span>', $champs1);
    			$cc = str_ireplace($mot2mots,'<span class="surlign">'.$mot2mots.'</span>', $champs2);
    			$d = str_ireplace($mot1mots,'<span class="surlign">'.$mot1mots.'</span>', $champs3);
    			$c = str_ireplace($mot1mots,'<span class="surlign">'.$mot1mots.'</span>', $champs4);
    			echo"<br /> <strong>Nom du champs2  : </strong> $cc";
    			echo"<br /> <strong>Nom du champs3  : </strong> $d";
    			echo"<br /> <strong>Nom du champs4 : </strong> $c <br /></p><br />";
    		}		
    	} 
        }
    }
     
    ?>

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    salut,
    si ton volume de données est acceptable, tu peux creer une ajouter une version sans majuscule ni accents de ta donnée (via une fonction par ex) et rechercher sur cette colonne.

    Autrement sur oracle par exemple, tu fais un index sur "fonction(colonne)" et tu lances une recherche sur "fonction(query)" et ça marchera tant que l'optimiseur choisi de passer par l'index, sur un autre SGBD, je n'ai jamais étudié la question.

    merci
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Bonjour,

    pourquoi faire un htmlspeciachars() sur tes paramètres de recherche ?
    A aucun moment tes paramètres ne sont protégé contre une injection SQL.

    En ce qui concerne les accents.
    Est ce que tu veux qu'en tapant "téléphone" ca ne retourne que "téléphone" ou alors "téléphone" et "telephone" ?

    Si tu veux ne pas prendre en compte les accents (retourner les résultats avec et sans) il faut appliquer une collation accent insensitive (AI) à ta requête
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LIKE '%telephone%' COLLATE Latin1_General_CI_AI
    La collation à utiliser dépend de celle déjà utilisé dans ta base et ne sera pas forcément "Latin1_General_CI_AI".

    Si elle es déjà accent insensitive tu as peut être un problème d'encodage entre l'encodage utilisé coté PHP et celui de ta base sql server

    Est ce qu'une recherche via un autre outil que PHP, du genre SQL Server Management Studio te donne les bons résultats ?

    Ceci étant dit comme tu semble faire une recherche sur plusieurs mots , il serait sans doute plus efficace de faire une recherche full-text qu'une recherche à base de LIKE
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par gene69 Voir le message
    salut,
    si ton volume de données est acceptable, tu peux creer une ajouter une version sans majuscule ni accents de ta donnée (via une fonction par ex) et rechercher sur cette colonne.

    Autrement sur oracle par exemple, tu fais un index sur "fonction(colonne)" et tu lances une recherche sur "fonction(query)" et ça marchera tant que l'optimiseur choisi de passer par l'index, sur un autre SGBD, je n'ai jamais étudié la question.

    merci
    Merci pour ta réponse

    Je vais essayer mais j'avais déjà essayé avec une fonction qui fonctionnait pas du coup !

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par grunk Voir le message
    Bonjour,

    pourquoi faire un htmlspeciachars() sur tes paramètres de recherche ?
    A aucun moment tes paramètres ne sont protégé contre une injection SQL.

    En ce qui concerne les accents.
    Est ce que tu veux qu'en tapant "téléphone" ca ne retourne que "téléphone" ou alors "téléphone" et "telephone" ?

    Si tu veux ne pas prendre en compte les accents (retourner les résultats avec et sans) il faut appliquer une collation accent insensitive (AI) à ta requête
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LIKE '%telephone%' COLLATE Latin1_General_CI_AI
    La collation à utiliser dépend de celle déjà utilisé dans ta base et ne sera pas forcément "Latin1_General_CI_AI".

    Si elle es déjà accent insensitive tu as peut être un problème d'encodage entre l'encodage utilisé coté PHP et celui de ta base sql server

    Est ce qu'une recherche via un autre outil que PHP, du genre SQL Server Management Studio te donne les bons résultats ?

    Ceci étant dit comme tu semble faire une recherche sur plusieurs mots , il serait sans doute plus efficace de faire une recherche full-text qu'une recherche à base de LIKE
    Bonjour, merci de ta réponse,
    En effet, au moment de ma recherche j'aimerai que sa me retourne "téléphone" et "telephone".

    J'avais vu des choses sur une collation mais je n'ai pas bien compris le fonctionnement, pourrais-tu m'expliquer le fonctionnement général?

    J'utilise un LIKE car lorsque j'ai essayé une recherche full-text je n'y était pas arrivé et je dois avoir finis ça mercredi prochain! Donc je n'ai pas trop trop de temps. Alors j'ai fait avec ce que je comprenais et ce qui fonctionnais.

    Merci

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Une collation en sql c'est un ensemble de règles qui définissent comment sont traités les caractères et en particulier comme sont effectué les comparaisons et les tris.
    Par exemple sur une collation case insensitive A==a vaut true alors que ca vaudra false sur une collation case sensitive.

    Par défaut la base et les tables on une collation. Mais tu peux l'altérer lors d'une requête pour en utiliser une autre.

    Voir http://sqlpro.developpez.com/cours/s...er/collations/ pour plus d'infos sur le sujet.

    Donc dans ton cas tu va vouloir utiliser une collation "accent insensitive" pour que é == e et donc qu'une recherche te retourne tous les résultats possible.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut
    Merci pour l'explication car sur le net j'avais du mal a comprendre ce qu'il disait sur ca...
    En effet c'est bien ca que je veux

    Je vais lire la doc que tu m'a envoyé et voir si j'y arrive.

    Merci

  8. #8
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par grunk Voir le message
    Une collation en sql c'est un ensemble de règles qui définissent comment sont traités les caractères et en particulier comme sont effectué les comparaisons et les tris.
    Par exemple sur une collation case insensitive A==a vaut true alors que ca vaudra false sur une collation case sensitive.

    Par défaut la base et les tables on une collation. Mais tu peux l'altérer lors d'une requête pour en utiliser une autre.

    Voir http://sqlpro.developpez.com/cours/s...er/collations/ pour plus d'infos sur le sujet.

    Donc dans ton cas tu va vouloir utiliser une collation "accent insensitive" pour que é == e et donc qu'une recherche te retourne tous les résultats possible.

    Bonjour,

    J'ai lu la doc que tu m'as donnée et essayer de comprendre.
    Puis j'ai fait comme il disait et sa ne fonctionne pas...

    Je n'arrive pas à rechercher avec des accents...


    Quelqu'un aurait une idée?

    Merci

  9. #9
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Quel est l'encodage de ta base ?
    Quel est l'encodage des données que tu envois à la base ?
    Quel est la collation utilisée dans ta base ?
    As tu comme je te l'ai dit dans mon message précédent essayé ta requête de recherche sur un autre outil ? Le but étant de savoir si le pb vient de la base ou de ton code

    Ca sert à rien d'y aller à taton si on ne connait pas les infos de base.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut
    Alors pour l'encodage de ma base elle est en utf8 mais ca je ne suis pas sur et je ne sais pas comment vérifier que c'est bien comme ca dans ma bdd. Serais-tu comment je peux voir dans ma bdd quel est l'encodage de ma base?
    Donc je renvois bien en UTF8.
    Pour la collation j'ai essayé plein de chose SQL_Latin1_General_CP1253_CI_AI / SQL_Latin1_General_CP850_CI_AI / SQL_Latin1_General_CP437_CI_AI / SQL_AltDiction_CP850_CI_AI

    J'ai fait lire ma requête dans mon sql server directement et me ressort bien ce qu'il faut.

    merci

  11. #11
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    J'ai fait lire ma requête dans mon sql server directement et me ressort bien ce qu'il faut.
    Donc il n'ya rien à faire coté SQL Server mais uniquement coté PHP.

    J'ai des doutes sur le fait que SQL Server stock le texte en utf8 , je penserais plus à un CPC1252 ou autre truc du genre ...

    As tu essayer de faire un utf8_decode() sur les paramètres que tu envois à ta requête ?
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par grunk Voir le message
    Donc il n'ya rien à faire coté SQL Server mais uniquement coté PHP.

    J'ai des doutes sur le fait que SQL Server stock le texte en utf8 , je penserais plus à un CPC1252 ou autre truc du genre ...

    As tu essayer de faire un utf8_decode() sur les paramètres que tu envois à ta requête ?
    J'ai des doute aussi car en cherchant j'ai lu a de nombreuse reprise que sql server n'était pas compatible avec ut8.

    Et nan je n'ai pas essayez je ne connais même pas la structure de ceci...

    EDIT :

    J'ai mis juste après ma requête en mettant utf8_decode($maRequete) et j'ai rien qui sort...

  13. #13
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    C'est tes paramètres qu'il faut décoder par la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Keywor .= "[champs_de_la_table_qui_correspond_a_mot2] LIKE '%".utf8_decode($mot2mots)."%'";
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par grunk Voir le message
    C'est tes paramètres qu'il faut décoder par la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Keywor .= "[champs_de_la_table_qui_correspond_a_mot2] LIKE '%".utf8_decode($mot2mots)."%'";
    Merci pour ta réponse.

    Malheureusement sa ne fonctionne pas..

    Cordialement

  15. #15
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut
    Merci pour ton aide Grunk

    J'ai trouvé la solution !
    Je fait une fonction puis le nom de cette fonction je le met directement quand je définis mon mot de recherche

    Ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function sans_accent($chaine)
    	{
    	   $accent  ="ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ";
    	   $noaccent="aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyyby";
    	   return strtr(trim($chaine),$accent,$noaccent);
    	}

    Dans cette partie la du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(isset($_GET['submit'])){
    		$mot1 = sans_accent(trim($_GET['mot1']));
    		$mot2 = sans_accent(trim($_GET['mot2']));

    Voilà

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Récupération selection sur alphabet dans moteur de recherche
    Par LiliValerie dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/10/2012, 10h48
  2. Prise en compte underscore dans LIKE
    Par benn13 dans le forum Bases de données
    Réponses: 4
    Dernier message: 14/05/2012, 10h59
  3. Gestion des accents dans moteur de recherche
    Par karpe dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/07/2011, 15h17
  4. Rubriques dans moteur de recherche
    Par dominos dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 28/01/2011, 12h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo