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 :

Sensibilité à l'accentuation [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 469
    Points : 525
    Points
    525
    Par défaut Sensibilité à l'accentuation
    Bonjour,

    Lorsque je fais des requêtes basiques en interrogeant ma base, le résultat reste sensible à l'accentuation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT titre FROM articles WHERE titre LIKE '%$q%'
    Pourtant ma base est : ENGINE=MyISAM DEFAULT CHARSET=utf8 et la colonne requêtée est utf8_general_ci ce qui en théorie devrait fonctionner.

    J'ai bien sur parcouru le forum à la recherche d'une solution sans réussite.

    mysql_query("SET NAMES 'utf8'"); réencode les caractères, etc... rien.

    Quelqu'un pourrait il m'apporter une solution ?

    Merci à vous.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Le reste de ton application est bien UTF-8 ? (fichiers, pages html...)
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 469
    Points : 525
    Points
    525
    Par défaut
    Merci pour ta réponse.

    Même si ça ne devrait pas impacter le résultat de ma requête, le charset Apache est en UTF-8 tout comme l'encodage des pages bien sur.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as fait le test depuis phpmyadmin ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 469
    Points : 525
    Points
    525
    Par défaut
    Je n'ai pas Phpmyadmin sur ce serveur malheureusement.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ba mets le
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 469
    Points : 525
    Points
    525
    Par défaut
    Je ne peux pas c'est un dédié chrooté, verrouillé de partout

    Test fait avec Navicat : même résultat

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    PHPMyadmin est un script PHP donc je vois mal comment il ne serait pas possible de l'installer.

    Tu peux nous fournir un dump de la table ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 469
    Points : 525
    Points
    525
    Par défaut
    Merci pour ton / votre aide.
    Bien sur voilà pour tests :


    Code sql : 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
    CREATE TABLE `articles` (
      `articleID` int(11) NOT NULL DEFAULT '0',
      `rubID` tinyint(3) unsigned NOT NULL DEFAULT '0',
      `cat_mb` varchar(50) NOT NULL,
      `sscat_mb` varchar(124) NOT NULL,
      `xsscat_mb` varchar(50) NOT NULL,
      `trad` enum('0','1','2','3') NOT NULL DEFAULT '0',
      `titre` varchar(255) NOT NULL DEFAULT '',
      `qte` int(10) unsigned NOT NULL,
      `pv` decimal(15,2) NOT NULL DEFAULT '0.00',
      `dateentree` date NOT NULL DEFAULT '0000-00-00',
      `dateupdt` date NOT NULL DEFAULT '0000-00-00',
      `datefinsold` date NOT NULL DEFAULT '0000-00-00',
      `datefinrup` date NOT NULL,
      `dispo` enum('0','1','2') NOT NULL DEFAULT '1',
      `RANG_1` tinyint(3) unsigned DEFAULT NULL,
      `RANG_2` varchar(3) NOT NULL,
      `RANG_3` tinyint(3) unsigned NOT NULL,
      `RANG_ORDRE` int(10) unsigned NOT NULL,
      PRIMARY KEY (`articleID`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8


    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO `articles` VALUES (1, 0, '', '', '', '0', 'été', 0, 0.00, '0000-0-0', '0000-0-0', '0000-0-0', '0000-0-0', '1', NULL, '', 0, 0);
    INSERT INTO `articles` VALUES (2, 0, '', '', '', '0', 'Eté', 0, 0.00, '0000-0-0', '0000-0-0', '0000-0-0', '0000-0-0', '1', NULL, '', 0, 0);
    INSERT INTO `articles` VALUES (3, 0, '', '', '', '0', 'ete', 0, 0.00, '0000-0-0', '0000-0-0', '0000-0-0', '0000-0-0', '1', NULL, '', 0, 0);
    INSERT INTO `articles` VALUES (4, 0, '', '', '', '0', 'Ete', 0, 0.00, '0000-0-0', '0000-0-0', '0000-0-0', '0000-0-0', '1', NULL, '', 0, 0);

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tes données ne sont pas en UTF8 dans la colonne.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 469
    Points : 525
    Points
    525
    Par défaut
    C'est à dire ?

    Nom : sql.jpg
Affichages : 89
Taille : 57,8 Ko

    Collation : utf8_general_ci

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    été ce n'est pas de l'utf8, c'est de l'utf8 écrit en ANSI.
    Tu as un problème d'encodage dans un des éléments (fichier .php, document HTML, connexion Mysql) quand tu fais l'insertion.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 469
    Points : 525
    Points
    525
    Par défaut
    Erf... ok
    Merci beaucoup.

    Il y a une astuce pour corriger la base sans faire de dégât ?

    Mes fichiers sont pourtant enregistrés au format UTF8
    Ma base est utf8 -- UTF-8 Unicode / collation utf8_general_ci

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux faire un export de la base en SQL, réencoder le résultat dans un editeur de texte et ré-importer la totalité.

    Pour corriger le problème, veille à faire le SET NAMES avant de faire l'insertion.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 469
    Points : 525
    Points
    525
    Par défaut
    Ouille, c'est la réponse à laquelle je m'attendais et que je ne voulais voir
    Presque 800 Go de db ;(

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    tu peux faire un traitement ligne par ligne en PHP aussi.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 469
    Points : 525
    Points
    525
    Par défaut
    Oui je faire faire du script...
    Merci pour ton aide.

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

Discussions similaires

  1. Caractère accentué
    Par rbaby23 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 24/12/2004, 19h16
  2. Problème avec les caractères accentues
    Par newnew dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 15/10/2004, 13h58
  3. Accentuation - pages html générées par Java
    Par phoebe dans le forum Linux
    Réponses: 4
    Dernier message: 28/05/2004, 12h49
  4. Comment entrer des lettres accentuées sous postgresql ?
    Par Chihuahua dans le forum Requêtes
    Réponses: 11
    Dernier message: 28/08/2003, 08h04
  5. Bulk insert et caractère accentué
    Par slc dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/04/2003, 12h52

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