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 :

Compteur de données d'une table Mysql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2020
    Messages : 32
    Par défaut Compteur de données d'une table Mysql
    Bonjour,

    Je cherche un petit script tout simple, qui permet juste de compter le nombre d'articles dans une base de données Mysql. Ce que je voudrai faire c'est obtenir un chiffre des articles, que je place ensuite sur un lien qui va vers les articles. Du genre :

    Lien articles du journal (45)

    45 étant le nombre d'article qui se trouve dans la base.

    Merci

  2. #2
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2020
    Messages : 32
    Par défaut
    Voici un petit script qui permet de récupérer les données que l'on veut :

    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
    <?php
     
    //$connect_db = connect_dbase();
    $connect_db = mysql_connect("localhost","root","monpassword");
     
     
    if (!$connect_db)
      {
      die('Echec connection: ' . mysql_error());
      }
    else  {
              mysql_select_db("my_db", $connect_db);
              $result=mysql_query("SELCT * FROM my_tb");
     
              while($row=mysql_fetch_array($result))
            {
               echo $row['NOM'] . " " . $row['PRENOM'];
               echo "<br />";
            } 
      }
      mysql_close($connect_db);
    ?>
    Mais ce qui m'intéresse, c'est de juste avoir le nombre d'entrées... Merci si vous avez une réponse

  3. #3
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 448
    Par défaut
    Bonjour,
    Au lieu de faire un select * from my_rb dans la requête (ce qui en passant est une mauvaise chose), un simple select count(*) from my_tb te renvoie directement le nombre de ligne dans la table en question.

    Tatayo.

  4. #4
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2020
    Messages : 32
    Par défaut
    Merci Tatayo pour ta réponse J'ai remplacé SELECT par COUNT, mais je n'ai aucun chiffre qui apparaît ? Qu'est-ce que je dois mettre en echo ?

  5. #5
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 448
    Par défaut
    J'avoue que je ne connais pas PHP, donc je ne sais pas ce qu'il faut faire dans ton code.
    Mais en lisant ta réponse j'ai comme un petit doute :il ne faut pas remplacer SELECT par COUNT, mais SELECT * par SELECT COUNT(*).

    Tatayo.

  6. #6
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2020
    Messages : 32
    Par défaut
    En ajoutant le code ci-dessous, j'obtiens bien le nombre d'entrées, mais il me l'affiche sous cette forme :

    111111111111, alors que ce que je souhaiterai obtenir, le total, donc 12. Comment obtenir 12, plutôt que ces 1 représentant chaque entrée ? Merci de votre aide

    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
    <?php
     
    //$connect_db = connect_dbase();
    include ("settings_sql.php");
     
    		           // Connexion au serveur
                       $mysql_link = mysql_connect($CONF['sql_host'], $CONF['sql_username'], $CONF['sql_password']);
                       mysql_select_db($CONF['sql_database']);
     
                       $sql=("SELECT COUNT(*) as username FROM {$CONF['sql_prefix']}_sites GROUP BY username");
    				   $result = mysql_query($sql, $mysql_link) or die($sql.'<br/>'.mysql_error());
     
                       while($row=mysql_fetch_array($result))
     
                       echo $row['username'];
     
      mysql_close();
    ?>

  7. #7
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 628
    Billets dans le blog
    10
    Par défaut
    Bonjour

    Il faut utiliser une "host variable" et, tant qu'à faire, nommer la variable en cohérence avec leur contenu.

    Donc remplacer

    SELECT COUNT(*) as username from _SITES.

    Par

    SELECT COUNT(*) into @nb_articles from _SITES.

    Puisqu'on ne récupère que le compteur, la clause GROUP BY est inutile

  8. #8
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2020
    Messages : 32
    Par défaut
    Merci escartefigue pour ta réponse. J'ai fait ce que tu dis, mais rien n'apparait. J'attendais le chiffre 12, mais je n'ai rien ?

  9. #9
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2020
    Messages : 32
    Par défaut
    Il me semble que je dois remplacé cette ligne :

    while($row=mysql_fetch_array($result))

    par une autre ligne qui n'affiche pas une liste, mais juste le count demandé. Je pense qu'on n'est pas loin de la solution. Donc au lieu d'avoir un WHILE, il faut juste une seule réponse...

  10. #10
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2020
    Messages : 32
    Par défaut
    Bon j'ai trouvé ! Je vous mets le code qui me permet de récupérer le nombre d'entrées dans une colonne par catégorie. Ici pour exemple la colonne est "statut" et la catégorie "philosophie". Et ça marche, j'ai bien le nombre d'entrées en fonction de la catégorie Donc si cela est utile à d'autres... L'idée était de mettre le nombre d'articles sur un bouton de lien. Pour chaque bouton de thème, à coté se trouve (4), le nombre d'articles sur le bouton conduisant à la page des articles...

    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
    <?php
     
    include ("settings_sql.php");
     
    		           // Connexion au serveur
                       $mysql_link = mysql_connect($CONF['sql_host'], $CONF['sql_username'], $CONF['sql_password']);
                       mysql_select_db($CONF['sql_database']);
     
                       $sql=("SELECT COUNT(*) as philosophie FROM {$CONF['sql_prefix']}_article WHERE statut='philosophie'");
    				   $result = mysql_query($sql, $mysql_link) or die($sql.'<br/>'.mysql_error());
     
                       while($row=mysql_fetch_array($result))
     
                       echo $row['philosophie'];
     
      mysql_close();
    ?>
    Merci à ceux qui m'ont approché de la solution

  11. #11
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    juste une remarque en passant : depuis PHP7, les fonctions mysql_xxx n'existent plus...Privilégie plutôt PDO...

  12. #12
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2020
    Messages : 32
    Par défaut
    Oui tu as raison Laurent ! Je vais devoir m'y mettre !

  13. #13
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Je viens de relire ton code : $row=mysql_fetch_array($result) : fetch_array n'existe pas en PDO ; il faut utiliser fetch ; j'ai découvert ça en convertissant du code mysqli en PDO...

    un tuto bien fait pour PDO : https://www.developpez.net/forums/bl...pdo-soupe-lit/

  14. #14
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2020
    Messages : 32
    Par défaut
    Merci Laurent pour le lien. Je l'enregistre dans mes tâches à faire

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

Discussions similaires

  1. [MySQL] modification données d'une table MySql
    Par ludobabs dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 10/04/2008, 17h03
  2. [MySQL] afficher les données d'une table mysql
    Par faamugol dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/09/2007, 19h04
  3. Réponses: 2
    Dernier message: 15/12/2006, 10h31
  4. Réponses: 11
    Dernier message: 25/07/2006, 21h46
  5. Problème de récupérations de données dans une table mysql
    Par Helpine dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 09/03/2006, 19h07

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