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 :

Récupérer les valeurs définies dans un champ ENUM [Sources] [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 402
    Points
    402
    Par défaut Récupérer les valeurs définies dans un champ ENUM
    Bonjour,

    ça fait un ptit moment déjà que je cherche ça que ce soit sur le net ou sur ce même forum mais en vain. Je suis tombée que sur des soluces un peu bizarres avec des variables qui viennent de nul part... bref

    Donc !

    Exemple : J'ai un champ sociétés de type ENUM qui peut prendre pour valeur EDF, Total, SNCF, CCF, Framatom....

    Ce que j'aimerais c'est pouvoir lister dans une liste déroulante, toutes ces sociétés, plutôt que de le faire en dur... ce qui permettrait de rajouter des valeurs sans trop me prendre la tête en reprenant mon code.

    Merci à tous ceux qui auront la gentillesse de m'aider, et surtout excusez-moi si ce post est un doublon c'est pourtant pas faute d'avoir cherché... oui oui j'ai aussi utilisé le champ de recherche...

    Règle n°1 du forum francophone : Parler le français...
    Pas de question technique par MP, le forum est fait pour çà, merci.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    Je comprends moyennement. Tu n'as pas de base de données? Si tu en as une je vois pas le problème : tu fais une table qui contient toutes tes sociétés.

  3. #3
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Salut, et bienvenue sur le forum de developpez.com

    regarde du côté de SHOW FIELDS FROM `nom de la table`...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  4. #4
    Membre averti Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 402
    Points
    402
    Par défaut Récupérer les valeurs définies dans un champ ENUM
    Oui oui, j'ai bien une base, et justement je voudrais éviter de passer par une table qui ne contiendrait que les sociétés. Je sais que c'est possible, mais maintenant la solution je vois pas....

    A priori, il faudrait se servir de ce genre de requête :
    SHOW COLUMNS FROM table LIKE champ

    Reste à l'exploiter en PHP... une idée :

    Règle n°1 du forum francophone : Parler le français...
    Pas de question technique par MP, le forum est fait pour çà, merci.

  5. #5
    Membre averti Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 402
    Points
    402
    Par défaut Récupérer les valeurs définies dans un champ ENUM
    Wooww ça va vite ici, à peine le temps de répondre

    merci Swoög je vais aller voir ça tout de suite

    Règle n°1 du forum francophone : Parler le français...
    Pas de question technique par MP, le forum est fait pour çà, merci.

  6. #6
    Membre averti Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 402
    Points
    402
    Par défaut Récupérer les valeurs définies dans un champ ENUM
    Re-bonjour,

    voilà j'suis toute contente je viens d'en finir avec ce problème, j'ai mis mon code au propre, pour en faire profiter ceux qui en auraient besoin

    merci à tous

    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
     
    <?php
     
    // Connexion
    mysql_connect("localhost", "user", "pwd") or die("Connexion impossible");
    mysql_select_db("base") or die("Impossible de se connecter à la base");
     
    // Je filtre le champ sur lequel je souhaite travailler.
    $requete = "SHOW COLUMNS FROM contacts LIKE 'societes'";
     
    // Exécution de la requête.
    $resultat = mysql_query($requete) or die(mysql_error());
     
    $ligne = mysql_fetch_row($resultat);
     
    // La colonne 1 correspond au type du champ.
    $chaine = $ligne[1];
     
    // $chaine donne : enum('EDF','Total','CCF','Framatom')
     
    // Ici avec le paramètre "5" je retire le début de la chaîne -> enum( 
    // Et avec le paramètre "-1" je retire la fin de la chaîne    -> )
    $chaine = substr($chaine, 5, -1);
     
    // $chaine donne : 'EDF','Total','CCF','Framatom'
     
    // Je coupe la chaîne chaque fois que je rencontre une virgule.
    $chaine = explode(",", $chaine);
     
    // $chaine[0] donne : 'EDF'
    // $chaine[1] donne : 'Total'
    // $chaine[2] donne : 'CCF'
    // $chaine[3] donne : 'Framatom'
     
    // Je parcours le tableau $chaine.
    for($i=0; $i<count($chaine); $i++) {
           $ma_chaine = $chaine[$i];
           // Ici je retire le premier et le dernier caractère de la chaine 
           // que je rencontre -> 'EDF' devient EDF
           $ma_chaine = substr($ma_chaine, 1, -1);
           echo($ma_chaine."<br />");
    }
     
    ?>

    Règle n°1 du forum francophone : Parler le français...
    Pas de question technique par MP, le forum est fait pour çà, merci.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    309
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 309
    Points : 148
    Points
    148
    Par défaut
    Je me permets de poster mon code qui simplifie une étape dans le traitement du résultat de la requête.
    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
     
    // récupération des types d'équipement
    $query = 'SHOW COLUMNS FROM Materiel LIKE \'type\';';
    $res = mysql_query($query, $db) or die($db_message);
    $tab = mysql_fetch_object($res);
    $type = substr( $tab->Type, 6, -2);
    $liste_type = explode( "','", $type );
     
    //affichage de la liste
    echo '<select name="list_type" size="1" />';
    echo '<option value="NULL">Type</option>';
    for( $i=0; $i<count($liste_type); $i++ ){
    	echo '<option value=\"'.$i.'\">'.$liste_type[$i].'</option>';
    }
    echo '</select>';
    La modification consiste à supprimer les 6 premiers et les 2 derniers caractères puis d'utiliser ',' (quotes inclus) comme séparateur pour l'explode.

    Merci pour la source d'inspiration.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/05/2008, 13h43
  2. Récupérer la valeur saisie dans un champ caché
    Par sheira dans le forum Langage
    Réponses: 14
    Dernier message: 03/04/2007, 17h06
  3. Réponses: 2
    Dernier message: 08/01/2007, 09h01
  4. Récupérer les valeurs possibles d'un champ
    Par setsuko dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 17/08/2006, 16h15
  5. Récupérer les valeurs passées dans l'URL
    Par bogsy15 dans le forum Langage
    Réponses: 40
    Dernier message: 14/08/2006, 08h24

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