Partage
  • Partager sur Facebook
  • Partager sur Twitter

Compter le nombre de client unique dans table SQL

Sujet résolu
    18 octobre 2018 à 22:12:15

    Bonjour,

    Je suis entrain de crée un site web regroupant les facture d'une future entreprise.

    J'ai donc une table Facture avec :

    Dans le champs nom je retrouve les nom des clients a qui revient la facture.

    Un client peux avoir plusieurs facture a sont nom.

    J'aimerais compter le nombre de client UNIQUE !

    Donc si dans ma table j'ai 3 facture au nom de :

    Robert

    Michel

    Robert

    J'aimerais pouvoir afficher 2, car même si robert a deux factures, je veux le compter une fois.

    J'ai essayer cela :

                                                        <?php
                                                            $recup_nombre_client = $bdd->query('SELECT nom, COUNT(*) as count FROM Facture GROUP BY nom');
                                                            $donnees_nombre_client = $recup_nombre_client->fetch();
                                                            $nombre_client = $donnees_nombre_client['nom']
                                                        ?>                                                      
                                                        <h2><?php echo $nombre_facture;?></h2>

    Sans résultat favorable

    Merci

    Bonne soirée



    -
    Edité par RocheCorentin 18 octobre 2018 à 22:12:38

    • Partager sur Facebook
    • Partager sur Twitter
      18 octobre 2018 à 23:17:32

      Salutation, Ta requête devrait être: SELECT DISTINCT nom, COUNT(*) as count FROM Facture

      je t'invite à visité se lien : https://sql.sh/cours/distinct

      -
      Edité par FrancDurotin 18 octobre 2018 à 23:20:08

      • Partager sur Facebook
      • Partager sur Twitter
        19 octobre 2018 à 13:26:07

        Salut tu peux aussi simplement conter les ID  de ceux qui ont une facture
        • Partager sur Facebook
        • Partager sur Twitter
          19 octobre 2018 à 13:34:57

          ManuH86 a écrit:

          Salut tu peux aussi simplement conter les ID  de ceux qui ont une facture


          Faux, si un user possède deux factures tu auras 2 identifiants => ce n'est pas ce qu'il veut
          • Partager sur Facebook
          • Partager sur Twitter
            19 octobre 2018 à 13:58:18

            Salut,

            Dans le cas où des clients différents ont le même nom, comment gères-tu ce cas ?

            • Partager sur Facebook
            • Partager sur Twitter
            le bienfait n'est jamais perdu
              19 octobre 2018 à 14:02:42

              WillyKouassi a écrit:

              Salut,

              Dans le cas où des clients différents ont le même nom, comment gères-tu ce cas ?


              Bonne question ça :p ... Moi je sais ;) bon après si le second champ est identique la seule solution valide est ce que le demandeur n'a pas implémenté, dommage...
              • Partager sur Facebook
              • Partager sur Twitter
                20 octobre 2018 à 9:21:20

                christouphe a écrit:

                ManuH86 a écrit:

                Salut tu peux aussi simplement conter les ID  de ceux qui ont une facture


                Faux, si un user possède deux factures tu auras 2 identifiants => ce n'est pas ce qu'il veut


                En effet, je n'avais compris le système de classement.

                Y'aurait pas moyen de mettre en place un système de numéro client pour chaque client unique dans une  colonne de bdd et ensuite faire un comptage , et aussi de faire ressortir le nom correspondant ?

                -
                Edité par MiNiMan.8.6 20 octobre 2018 à 9:23:13

                • Partager sur Facebook
                • Partager sur Twitter
                  20 octobre 2018 à 20:00:22

                  ManuH86 a écrit:

                  christouphe a écrit:

                  ManuH86 a écrit:

                  Salut tu peux aussi simplement conter les ID  de ceux qui ont une facture


                  Faux, si un user possède deux factures tu auras 2 identifiants => ce n'est pas ce qu'il veut


                  En effet, je n'avais compris le système de classement.

                  Y'aurait pas moyen de mettre en place un système de numéro client pour chaque client unique dans une  colonne de bdd et ensuite faire un comptage , et aussi de faire ressortir le nom correspondant ?

                  -
                  Edité par ManuH86 il y a environ 10 heures


                  SI une table client(id,nom...) et une référence à client.id dans facture.idclient ;) mais bon
                  • Partager sur Facebook
                  • Partager sur Twitter
                    21 octobre 2018 à 23:15:29

                    WillyKouassi a écrit:

                    Salut,

                    Dans le cas où des clients différents ont le même nom, comment gères-tu ce cas ?

                    Salut !
                    Très bonne question x) j'ai complétement oublier cette possibilité :o

                    -
                    Edité par RocheCorentin 21 octobre 2018 à 23:16:21

                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 octobre 2018 à 9:32:28

                      christouphe a écrit:

                      ManuH86 a écrit:

                      christouphe a écrit:

                      ManuH86 a écrit:

                      Salut tu peux aussi simplement conter les ID  de ceux qui ont une facture


                      Faux, si un user possède deux factures tu auras 2 identifiants => ce n'est pas ce qu'il veut


                      En effet, je n'avais compris le système de classement.

                      Y'aurait pas moyen de mettre en place un système de numéro client pour chaque client unique dans une  colonne de bdd et ensuite faire un comptage , et aussi de faire ressortir le nom correspondant ?

                      -
                      Edité par ManuH86 il y a environ 10 heures


                      SI une table client(id,nom...) et une référence à client.id dans facture.idclient ;) mais bon


                      hum hum .. :ninja:
                      • Partager sur Facebook
                      • Partager sur Twitter
                        22 octobre 2018 à 10:06:09

                        christouphe a écrit:

                        christouphe a écrit:

                        ManuH86 a écrit:

                        christouphe a écrit:

                        ManuH86 a écrit:

                        Salut tu peux aussi simplement conter les ID  de ceux qui ont une facture


                        Faux, si un user possède deux factures tu auras 2 identifiants => ce n'est pas ce qu'il veut


                        En effet, je n'avais compris le système de classement.

                        Y'aurait pas moyen de mettre en place un système de numéro client pour chaque client unique dans une  colonne de bdd et ensuite faire un comptage , et aussi de faire ressortir le nom correspondant ?

                        -
                        Edité par ManuH86 il y a environ 10 heures


                        SI une table client(id,nom...) et une référence à client.id dans facture.idclient ;) mais bon


                        hum hum .. :ninja:

                         c'était pour moi ?.

                        -
                        Edité par MiNiMan.8.6 22 octobre 2018 à 10:07:00

                        • Partager sur Facebook
                        • Partager sur Twitter
                          22 octobre 2018 à 11:08:03

                          D'abord pour le créateur du topic => erreur de conception initiale, pour toi et les autres, pour en apprendre plus ;)
                          • Partager sur Facebook
                          • Partager sur Twitter
                            22 octobre 2018 à 20:29:31

                            FrancDurotin a écrit:

                            Salutation, Ta requête devrait être: SELECT DISTINCT nom, COUNT(*) as count FROM Facture

                            je t'invite à visité se lien : https://sql.sh/cours/distinct

                            -
                            Edité par FrancDurotin 18 octobre 2018 à 23:20:08

                            Re bonsoir,
                            Je viens d"essayer tout ca, et pourtant la requête me retourne toujours trois, alors que dans la bdd j'ai 2 fois "toto" et une fois "tata"

                            Il devrais me ressortir 2 ?!

                            PHP:

                            <div class="text">
                                <?php
                                    $recup_nombre_client = $bdd->query('SELECT DISTINCT nom, COUNT(*) as count FROM Facture');
                                    $donnees_nombre_client = $recup_nombre_client->fetch();
                                    $nombre_client = $donnees_nombre_client['nom']
                                ?>                                                      
                                <h2><?php echo $nombre_facture;?></h2>
                                <span>Client</span>
                            </div>

                            De plus quand je lance la requête dans une fenêtre SQL de phpmyadmin 

                            SELECT DISTINCT nom, COUNT(*) as count FROM Facture

                            Il me retourne le toto 3



                            -
                            Edité par RocheCorentin 22 octobre 2018 à 20:35:21

                            • Partager sur Facebook
                            • Partager sur Twitter
                              23 octobre 2018 à 20:45:37

                              christouphe a écrit:

                              GROUP BY nom ;)


                              Désoler mais cela ne marche toujours pas x)

                              Je comprend pas trop la x)

                                  <div class="text">
                                      <?php
                                          $recup_nombre_client = $bdd->query('SELECT DISTINCT nom, COUNT(*) as count FROM Facture GROUP BY nom');
                                          $donnees_nombre_client = $recup_nombre_client->fetch();
                                          $nombre_client = $donnees_nombre_client['nom']
                                      ?>                                                      
                                      <h2><?php echo $nombre_facture;?></h2>
                                      <span>Client</span>
                                  </div>

                              Le PHP me répond 3



                              -
                              Edité par RocheCorentin 23 octobre 2018 à 21:35:04

                              • Partager sur Facebook
                              • Partager sur Twitter
                                23 octobre 2018 à 22:10:09

                                Forcément si tu ne parcours pas le résultat ;)
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  24 octobre 2018 à 20:40:59

                                  christouphe a écrit:

                                  Forcément si tu ne parcours pas le résultat ;)

                                  "Parcourir", je voie pas la ... o_O


                                  "Parcourir", je voie pas la...o_O

                                  J'ai essayer en rajoutant un COUNT pour compter le nombre de ligne de la réponse ...Marche pas :o

                                  EDIT j'ai trouver je pense :

                                  <div class="text">
                                      <?php
                                          $recup_nombre_client = $bdd->query('SELECT DISTINCT nom, COUNT(*) as count FROM Facture GROUP BY nom');
                                          $donnees_nombre_client = $recup_nombre_client->rowCount();
                                      ?>                                                      
                                      <h2><?php echo $donnees_nombre_client;?></h2>
                                      <span>Client</span>
                                  </div>



                                  -
                                  Edité par RocheCorentin 24 octobre 2018 à 21:00:17

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    24 octobre 2018 à 22:17:42

                                    SI tu as plus de 1 ligne dans ton résultat, tu dois la parcourir comme un tableau avec un while => go doc PDO pour un exemple simple, et lis bien, tout est dans les exemples ;)
                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    Compter le nombre de client unique dans table SQL

                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                    • Editeur
                                    • Markdown