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 :

Requête avec une variable contenant une chaine de caractères accentué non trouvé [Oracle]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 245
    Points : 164
    Points
    164
    Par défaut Requête avec une variable contenant une chaine de caractères accentué non trouvé
    Bonjour et bonne année,
    je viens ici car j'ai un souci d'accent.
    j'utilise une base de données oracle. Dans cette base j'ai certains attributs avec des accents ex: ménagères. Lorsque je fais une requête sql sous putty:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from ma_table where nom='ménagères';
    cela fonctionne et me retourne la ligne correspondante.
    Mais en php cela ne fonctionne pas:
    j'ai ma variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from ma_table where nom='$var';
    et la ça ne fonctionne plus. il ne trouve rien.
    Comment faire pour que la requête accepte les accents sans devoir changer le nom de ma variable?
    merci d'avance
    chris.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    t'as bien le même encodage de table et de fichier et d'en-tête php ?

  3. #3
    Membre habitué
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 245
    Points : 164
    Points
    164
    Par défaut
    merci pour votre réponse.
    ou trouver l'encodage d'une table?

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par chris0938 Voir le message
    merci pour votre réponse.
    ou trouver l'encodage d'une table?
    je pense que je soucis vient plutôt de ton php qui n'est pas en utf-8

  5. #5
    Membre habitué
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 245
    Points : 164
    Points
    164
    Par défaut
    ah!
    et comment résout-on cela?

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par chris0938 Voir le message
    ah!
    et comment résout-on cela?
    y'a plein de trucs sur le net sur ce sujet
    http://electron-libre.fassnet.net/utf8.php

  7. #7
    Membre habitué
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 245
    Points : 164
    Points
    164
    Par défaut
    je ne suis pas sous mysql mais Oracle mais j'ai des pistes maintenant.
    merci.

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par chris0938 Voir le message
    je ne suis pas sous mysql mais Oracle mais j'ai des pistes maintenant.
    merci.
    la partie mysql ne te conserne pas, oracle est même en utf-8 par default je crois (utf-16 même)

  9. #9
    Membre habitué
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 245
    Points : 164
    Points
    164
    Par défaut
    j'ai trouvé ceci:
    http://www.google.fr/url?sa=t&source...n2N-3w&cad=rja
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SQL>ALTER SESSION SET NLS_COMP=LINGUISTIC;	REM Mentionne à Oracle de se fier au paramètre NLS_SORT.
    SQL> ALTER SESSION SET NLS_SORT=BINARY_AI;
    pour être sur d'avoir compris en faisant cela je résoudrai mon problème?

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par chris0938 Voir le message
    j'ai trouvé ceci:
    http://www.google.fr/url?sa=t&source...n2N-3w&cad=rja
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SQL>ALTER SESSION SET NLS_COMP=LINGUISTIC;	REM Mentionne à Oracle de se fier au paramètre NLS_SORT.
    SQL> ALTER SESSION SET NLS_SORT=BINARY_AI;
    pour être sur d'avoir compris en faisant cela je résoudrai mon problème?
    ton probleme est plus du coté de serveur + php, est ce que les 2 sont en utf-8 ?

  11. #11
    Membre habitué
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 245
    Points : 164
    Points
    164
    Par défaut
    j'ai fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    select * from NLS_DATABASE_PARAMETERS ;
    PARAMETER                      VALUE
    ------------------------------ ----------------------------------------
    NLS_LANGUAGE                   AMERICAN
    NLS_TERRITORY                  AMERICA
    NLS_CURRENCY                   $
    NLS_ISO_CURRENCY               AMERICA
    NLS_NUMERIC_CHARACTERS         .,
    NLS_CHARACTERSET               WE8ISO8859P1
    [...]
    et php est en iso-8859-1

  12. #12
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    verfifie ta chaine entiere d'encodage

    sortie du serveur, encodage du fichier, de l'entête, du html, de la connexion du serveur, et de la table

  13. #13
    Membre habitué
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 245
    Points : 164
    Points
    164
    Par défaut
    honnêtement, je ne sais pas comment avoir ces informations!

  14. #14
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par chris0938 Voir le message
    honnêtement, je ne sais pas comment avoir ces informations!
    sortie du serveur : firefox -> clique droit -> information sur la page -> Encodage
    encodage du fichier : notepad++ -> encodage
    l'entête c'est la meme que la sortie du serveur
    du html : c'est ta balise <meta http-equiv="Content-Type">

    regarde au moins ceux la, normalement oracle est en utf-8 au niveau connexion

  15. #15
    Membre habitué
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 245
    Points : 164
    Points
    164
    Par défaut
    sortie du serveur: ISO-8859-1
    encodage du fichier: je travaille sous netbeans et l'encodage est aussi iso-8859-1
    html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

  16. #16
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    jusqu'ici tout va bien alors, manque plus que la connexion

  17. #17
    Membre habitué
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 245
    Points : 164
    Points
    164
    Par défaut
    je suis désolé mais je ne sais pas ou chercher l'encodage de la connexion oracle.
    désolé

  18. #18
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par chris0938 Voir le message
    je suis désolé mais je ne sais pas ou chercher l'encodage de la connexion oracle.
    désolé
    ca doit etre dans ton fichier de config, Unicode=true/false

  19. #19
    Membre habitué
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 245
    Points : 164
    Points
    164
    Par défaut
    Bonjour,
    je n'ai pas trouvé de "champs" unicode dans mon fichier de config.
    je ne sais pas si ça peut servir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NLS_NCHAR_CHARACTERSET         AL16UTF16

  20. #20
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from ma_table where nom='$var';
    C'est juste une simplification ou c'est comme ça dans le code php. Es tu bien sûr que la requête executer via php a bien remplacé $var par ménagère.
    Sinon le code devrait plutôt ressembler à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from ma_table where nom=:1;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from ma_table where nom=?;
    puis bind puis execute.

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

Discussions similaires

  1. [Débutant] Affecter une variable d'une classe C# à une variable Javascript
    Par SultanGeek dans le forum C#
    Réponses: 0
    Dernier message: 20/06/2015, 20h42
  2. Réponses: 6
    Dernier message: 01/05/2009, 16h35
  3. Réponses: 1
    Dernier message: 26/03/2009, 14h28
  4. Nom d'une table contenant une variable
    Par patsak dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 10/07/2008, 10h53
  5. Requête au sein d'une fonction contenant une variable
    Par hel22 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 11/07/2007, 13h03

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