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

Administration MySQL Discussion :

lettres accentuées dans ENUM


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 66
    Par défaut lettres accentuées dans ENUM
    Bonjour,
    MySQL 3.5.6
    Lorsque je veux modifier une donnée dans un enregistrement, j'ai deux possibilités:
    - l'option "modifier" qui m'affiche tout l'enregistrement où je trouve le(s) menu déroulant qui me permet de choisir la valeur correcte
    - ou cliquer sur la donnée à modifier, ce qui m'ouvre le menu déroulant...
    Problème: dans le premier cas, le menu déroulant affiche correctement"épis, têtes...." et je peux valider la modification
    mais dans le deuxième cas, le menu affiché n'utilise pas le même codage, me propose des caractères bizarres à la place des accents et bien sûr la validation du choix n'est pas acceptée.
    Dommage car la deuxième solution est plus rapide et j'ai 500 enregistrements à revoir....
    Merci pour vos conseils
    alainL

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    ENUM est un mauvais type de colonne ; à éviter !

    Il vaut mieux utiliser une table de référence des valeurs possibles de la colonne et transformer cette colonne en clé étrangère.

    Que contient la table actuelle ?
    Que sont ces "épis", "têtes"... ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 66
    Par défaut
    Bonjour et merci pour l'intérêt.
    La table actuelle contient des noms, vignettes, images, et plusieurs caractères distinctifs de plantes. Notamment la disposition des fleurs: en tête, en épis, solitaires.... ( http://autourdalos.fr/herbier/choixcriteres1.htm ) Je la gère directement avec l'interface de MySQL compris dans la version de Wamp (qui a remplacé EasyPHP sur mon PC).
    Enum me convenait, vu mes connaissances ! Que lui reproche-t-on ? J'hésite à me lancer dans plus complexe

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Vu ton interface, il s'agit d'enregistrer la sélection de la première liste déroulante ?

    Comment est alimentée cette liste déroulante ? En dur dans le programme PHP ?

    Si tu constates qu'il manque une option dans la liste, tu vas devoir :
    1) Changer la structure de la table pour y ajouter la nouvelle option ;
    2) Changer le programme pour y ajouter la nouvelle option.

    Alors qu'avec une table de référence qui permet d'alimenter la liste déroulante, il suffit d'ajouter une ligne dans la table de référence sans toucher au programme PHP.

    Idem bien sûr pour les autres listes déroulantes du formulaire, et donc pour les autres caractéristiques des plantes.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 66
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    .....
    Comment est alimentée cette liste déroulante ? En dur dans le programme PHP ?
    Oui

    Si tu constates qu'il manque une option dans la liste, tu vas devoir :
    1) Changer la structure de la table pour y ajouter la nouvelle option ;
    2) Changer le programme pour y ajouter la nouvelle option.
    C'est ce qui m'est arrivé !

    Alors qu'avec une table de référence qui permet d'alimenter la liste déroulante, il suffit d'ajouter une ligne dans la table de référence sans toucher au programme PHP.
    Vu comme ça, évidemment, c'est tentant ! Il me reste à trouver un exemple de création d'une telle table et d'utilisation de celle-ci dans le formulaire

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Ta première liste contient donc des "disposition des fleurs".

    Crée une table pour ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TABLE disposition_fleur
    (
    	dfl_id TINYINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    	dfl_libelle VARCHAR(30) NOT NULL
    ) 
    ENGINE=InnoDB,
    DEFAULT CHARSET = UTF-8
    Pas sûr de la syntaxe des deux dernières lignes. Je crée plutôt les tables directement avec phpMyAdmin.

    Maintenant dans ta table des observations, il te faut une colonne qui référence cette table qui vient d'être créée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ALTER TABLE observation
    ADD COLUMN id_disposition_fleur TINYINT NOT NULL,
    ADD INDEX(id_disposition_fleur),
    ADD CONSTRAINT fk_id_disposition_fleur FOREIGN KEY(id_disposition_fleur) REFERENCES disposition_fleur(dfl_id);
    Là encore, pas sûr de la syntaxe, je fais ça avecphpMyAdmin d'habitude.

    Ensuite tu insères dans la table disposition_fleur toutes les options possibles puis pour alimenter ta liste déroulante, il suffit d'une requête SELECT sur cette table.

    Quand l'utilsiateur valide le formulaire, c'est l'identifiant de l'option choisie, et non pas son libellé, qui est enregistré dans la table des observations.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/11/2011, 23h35
  2. Supprimer les lettres accentuées dans un champ
    Par Cyril_PA dans le forum Requêtes
    Réponses: 4
    Dernier message: 26/05/2011, 11h38
  3. Problème de lettres accentuées dans un fichier inclus
    Par rahimk dans le forum Mise en forme
    Réponses: 10
    Dernier message: 01/01/2011, 16h40
  4. lettre accentuée dans url de IE
    Par yodark dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 07/02/2008, 15h49
  5. lettre accentuée dans mysql
    Par sam01 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 24/07/2006, 09h16

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