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 :

Connaitre le nombre et récupérer la liste de valeur d'un champ [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 532
    Par défaut Connaitre le nombre et récupérer la liste de valeur d'un champ
    Bonjour a toutes et tous,

    Je démarre dans la manipulation des bases de données avec le php (et dans la manipulation des basses de données en général) et je souhaiterai savoir si une idée que j'ai est réalisable. Pour cela je vais donner un exemple:
    Dans ma table, j'ai un champ que j'ai appelé "Couleur" (les autres champ de la table ne sont pas utile pour la compréhension). j'ai rentré 10 valeur dans ma table et dans le champ "Couleur" on aura:
    BLEU
    BLEU
    BLEU
    ROUGE
    VERT
    BLEU
    ROUGE
    ROUGE
    VERT
    BLEU

    Ce que je voudrais savoir c'est si il est possible de savoir le nombre de couleur différent présent dans le champ "Couleur" et d'en obtenir la liste (donc récupérer BLEU, ROUGE, VERT) et pas savoir combien de bleu, combien de rouge et combien de vert

    J'espère que j'ai réussi à être clair
    Dans l'attente de vos réponses,
    Cordialement

  2. #2
    Membre expérimenté
    Avatar de Deuzz
    Homme Profil pro
    curieux
    Inscrit en
    Septembre 2014
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : curieux
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 148
    Par défaut
    Citation Envoyé par clairetj Voir le message
    Ce que je voudrais savoir c'est si il est possible de savoir le nombre de couleur différent présent dans le champ "Couleur" et d'en obtenir la liste (donc récupérer BLEU, ROUGE, VERT)
    OUI c'est possible

    SELECT DISTINCT couleur FROM couleur

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 219
    Par défaut
    Bonjour.

    Citation Envoyé par clairetj Voir le message
    le nombre de couleur différent présent dans le champ "Couleur"
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT COUNT(DISTINCT couleur)
    FROM couleur
    GROUP BY couleur;

    Dans ce cas il y aurais 3 couleurs différentes, si j'ai bien compris.

    Cordialement.

  4. #4
    Membre expérimenté
    Avatar de Deuzz
    Homme Profil pro
    curieux
    Inscrit en
    Septembre 2014
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : curieux
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 148
    Par défaut
    Si tu utilises SELECT COUNT() tu obtiendras juste le nombre de couleur mais pas...

    Citation Envoyé par clairetj Voir le message
    et d'en obtenir la liste (donc récupérer BLEU, ROUGE, VERT)
    a moins que GROUP BY ne le fasse, mais j'en doute... Me trompe-je ?

  5. #5
    Membre éclairé

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 532
    Par défaut
    Merci pour vos réponses, je vais donc regarder la doc pour voir comment bien les utiliser.
    Par contre une autre question (mais là, je doute de la possibilité de réalisation): si j'arrive à obtenir ma liste de couleur, est-il possible d'utiliser cette liste dans un select d'un formulaire ???

  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
    Par défaut
    Oui tu construis ton HTML dynamiquement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo '<select name="couleur" >';
    while ($row = $sth->fetch(PDO:FETCH_ASSOC)) {
       echo '<option value="' . $row['couleur'] . '">' . htmlspecialchars($row['couleur']) . '</option>';
    }
    echo '</select>';
    }
    Attention sur la structure de ta base de données, tu devrais avoir une table "couleur" contenant les couleurs existantes et ton autre table ferrait reference à l'id de ces couleurs et non à leur nom.
    table couleur : couleur_id, couleur_nom
    1 BLEU
    2 ROUGE
    3 VERT

    table X : couleur_id, ....
    1, ....
    1, ....
    1, ....
    4, .....
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre éclairé

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 532
    Par défaut
    Ok merci pour toutes vos réponses, c'est à moi de jouer maintenant

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 219
    Par défaut
    Citation Envoyé par Deuzz Voir le message
    Si tu utilises SELECT COUNT() tu obtiendras juste le nombre de couleur mais pas...



    a moins que GROUP BY ne le fasse, mais j'en doute... Me trompe-je ?
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT couleur, COUNT(DISTINCT couleur) AS NBCOUL
    FROM COULEUR
    GROUP BY couleur

    Donnera quelque chose comme ceci :
    BLEU 4
    ROUGE 7
    VERT 3

    On aura donc le nombre de chaque couleur (et non le nombre total).

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

Discussions similaires

  1. Récupérer un liste de valeur, procédure ou fonction ?
    Par StringBuilder dans le forum Développement
    Réponses: 2
    Dernier message: 28/09/2012, 12h13
  2. Réponses: 1
    Dernier message: 18/06/2010, 13h50
  3. Réponses: 2
    Dernier message: 29/06/2007, 14h49
  4. comment récupérer le liste des tables et des champs
    Par sekaijin dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 26/07/2006, 16h26
  5. Récupérer la liste des items d'un champs
    Par korntex5 dans le forum Bases de données
    Réponses: 6
    Dernier message: 11/01/2006, 15h50

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