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 :

accents oracle requête sql/php [Oracle]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 391
    Points : 124
    Points
    124
    Par défaut accents oracle requête sql/php
    Bonjour,
    j'ai dans la base oracle des caractères accentués. Pour le même prénom par exemple on trouvera jerome, jérôme, JEROME et JEROME (avec accents).

    Je dois effectuer une requête pour touver tous les jerome.

    J'ai fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function strip_Accents($string){
      return strtr($string,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ','aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
    }
     
    puis 
    if ($_SESSION[edPrenom] !="")
          {
              $where=" WHERE UPPER(prenom) LIKE '".strtoupper(str_replace("'","''",$_SESSION[edPrenom]))."%'\n";
              $where.=" OR  UPPER(prenom) LIKE '".strtoupper(str_replace("'","''",strip_Accents($_SESSION[edPrenom])))."%'\n";
     
          }
    ceci donne jerome ou Jérôme si on tape dans le formulaire de recherche jérôme !
    Mais si je tape jerome j'obtiens que les jerome !

    Comment faire ?

    Formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <tr>
        <td class="uportal-channel-label">Prénom :&nbsp;</td>
        <td><input class="uportal-input-text" type="text" name="edPrenom" onchange="majuscule(this)"></td>
      </tr>
      <tr>
     
    et 
    ceci j'ai pas encore compris à quoi ça sert !
    <a href="DetailsPerso.php?id_personne=<?= $result[ID_INDIVIDU] ?>">
                <?php echo str_replace(" ","&nbsp;",ucwords(mb_convert_case($result[NOM]." ".$result[PRENOM],MB_CASE_TITLE,"ISO-8859-15"))); ?>
            </a>

    Merci.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 391
    Points : 124
    Points
    124
    Par défaut Suite information
    Bonsoir,
    en fait je ne sais pas si j'ai été clair :
    j'ai dans la base oracle des caractères accentués. Pour le même prénom par exemple on trouvera jerome, jérôme, JEROME et JEROME (avec accents).

    je désire obtenir tous les types de jerome en entrant jerome ou jérôme dans le formulaire de recherche !

    Merci.

  3. #3
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 376
    Points : 15 728
    Points
    15 728
    Par défaut
    pour ça tu peux rajouter dans ta table une colonne où tu stockes le nom sans accents
    ensuite tu auras juste besoin de faire une recherche sur cette colonne

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 391
    Points : 124
    Points
    124
    Par défaut accents dans base oracle
    Bonjour,
    oui mais je ne peux pas ajouter un second champs dans la base !

    On trouve en effet toutes sortes d'écritures pour par exemple jerome avec même des caractères majuscules accentués !

    Comment faire ?

    ça fonctionne bien dans un sens jérôme donne tous les jerome.

    Comment donc en saisissant jerome je peux rechercher tous les :
    JEROME,
    Jerome,
    jérôme,
    Jérôme,
    JEROME (avec accents)

    Merci.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 391
    Points : 124
    Points
    124
    Par défaut Suite
    Bonjour,
    oui en effet la seule solution est d'avoir un champ sans accents dans la base ou d'avoir à disposition une fonction oracle qui les élimine (utilisée dans le where)
    Merci.

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

Discussions similaires

  1. [Oracle] Requête SQL PHP Oracle
    Par julien0709 dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 16/06/2008, 13h51
  2. [SQL] Problème requêtes SQL / php
    Par laulau37 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 02/07/2007, 15h48
  3. [SQL] Problème construction requête SQL - PHP
    Par laulau37 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 18/06/2007, 16h50
  4. [SQL-Server] Problème d'accents sur requête SQL, de php à SQLServer
    Par pontos dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/04/2007, 14h58
  5. [ORACLE] Requête SQL
    Par pier* dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/05/2006, 11h55

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