Comment récupérer le nombre de ligne dans une table de donnée SQL ?

Ce topic a été résolu
Le_Futuriste

Le_Futuriste Le 17 juillet 2016 à 16:43 (Édité le 25 janvier 2019 à 17:51)

Salut,

Tout est dans le titre, je recherche pour mon système de blog en php une méthode permetant d'afficher le nombre de lignes que j'ai dans mon tableau sql.
En gros sur ma table nommé "articles" il y a la liste des articles avec le titre, le texte ect.. Je veux pouvoir récupérer le nombre d'articles et l'afficher ensuite.
J'ai rechercher sur internet mais je n'ai pas réussi à trouver la solution malgré tout. 😦

Voila pour le problème.
Merci de votre aide ! 😀
twinny

twinny Le 17 juillet 2016 à 17:47 (Édité le 17 juillet 2016 à 17:51)

salut, j'ai fais un truc pour afficher le nombre de personne inscrite dans une base, si sa peut t'aider  :
                         <?php
                          $db = new PDO('mysql:host=******;dbname=*****', '******', '*****'); ?>
                          $select=$db->prepare("SELECT COUNT(*) AS nb FROM ta_table");
                          $select->execute();
                          $s=$select->fetch(PDO::FETCH_OBJ);
                          ?>



et ensuite pour afficher :
<?php  echo $s->nb; ?>
TheFlameflo

TheFlameflo Le 17 juillet 2016 à 18:17

Salut !

Ce que tu peux faire, c'est une query SELECT * FROM articles et ensuite faire un rowcount() sur le résultat.

Bonne  chance à toi ! 😀
Le_Futuriste

Le_Futuriste Le 18 juillet 2016 à 08:43

Voila, merci pour vos réponse voici le code que j'ai utilisé pris depuis [url=http://php.net/manual/fr/mysqli-result.num-rows.php]http://php.net/manual/fr/mysqli-result.num-rows.php
[/url]Vachement plus sécurisé que http://php.net/manual/fr/function.mysql-num-rows.php

<?php
                    }
                    $link = mysqli_connect("localhost", "root", "", "blog");

                    
                    /*Code permetant d'affiher le nombre de ligne d'une table*/
                    /* Vérification de la connexion */
                    if (mysqli_connect_errno()) {
                        printf("Échec de la connexion : %s\n", mysqli_connect_error());
                        exit();
                    }

                    if ($result = mysqli_query($link, "SELECT * FROM articles")) {

                        /* Détermine le nombre de lignes du jeu de résultats */
                        $row_cnt = mysqli_num_rows($result);
                        
                        /*Affichage*/
                        printf("Le jeu de résultats a %d lignes.\n", $row_cnt);

                        /* Ferme le jeu de résultats */
                        mysqli_free_result($result);
                    }

                    /* Ferme la connexion */
                    mysqli_close($link);
                    ?>
lecteursdb

lecteursdb Le 18 juillet 2016 à 09:24

salut 'Le_Futuriste'

un code t'a déjà été donné, tu peux l'exploiter. J'aimerais tout de même apporter mon avis sur cela. J'aurais à la place de 'twinny' utiliser query au lieu d'une requête préparée. on fait des requêtes préparées pour pouvoir éviter des injections sql, alors que avec query aucune information provient de l'utilisateur, tout ce qui est tapé c'est toi même qui le tape je suppose. j'espère t'avoir aussi donné un coup de pouce ;)
TheOldNoob

TheOldNoob Le 22 juillet 2016 à 23:14

Salut l'ami,

Compliquer tout ca, comme dis lecteursdb, avec un query, tout tes plus facile 😉

<?php 
                        $req = $pdo->query('SELECT COUNT(*) AS nb FROM contact WHERE message_state = "unread"');
                        $req->execute();
                        $data = $req->fetch();
                         
                        ?>
                        <li style="color: red;"><?php echo $data['nb']; ?> nouveaux message</li>
Voilà, le code que j'utilise pour afficher le nombre de  nouveau message sur une barre de navigation.
Tu retir tout ce qu'il y a après contact et dans l'echo tu va avoir le nombre de ligne dans ta table (la ma table c'est "contact")
Le_Futuriste

Le_Futuriste Le 24 juillet 2016 à 15:37

Ok, merci pour toutes vos réponses, je cherche en fait un code utra simple.
TheOldNoob

TheOldNoob Le 24 juillet 2016 à 19:22

<?php
$req = $pdo->query('SELECT COUNT(*) AS nb FROM table_name');               
$req->execute();       
$data = $req->fetch();                         
echo $data['nb'];
?>

Je peu pas faire plus simple 😀
TheOldNoob

TheOldNoob Le 24 juillet 2016 à 19:23

Mais très honetement, c'est dommage que tu cherche pas a apprendre par toi même, je t'es donné les 3/4 de la réponse dans ma précédentes réponses....
Tu évolura pas si tu cherche pas 😀
TheFlameflo

TheFlameflo Le 24 juillet 2016 à 23:56

Salut !

Si tu cherches à le faire en une ligne, il te suffit de faire une fonction, c'est ce qu'il y a de plus court :
// Création de la fonction
function countRow($table_name)
{
   $req = $db->query("SELECT * FROM $table_name"); 
   // J'ai pas protégé contre les injections SQL, mais vu que rien n'est demandé à l'utilisateur, il devrait pas y avoir de problèmes graves.
   $nb = $req->rowCount();
   return $nb;
}
// Utilisation de la fonction
echo countRow("articles"); // Tu mets le nom de la table
C'est ce qu'il y a de plus simple si tu comptes calculer le nombre de lignes plusieurs fois  sur ton site.
Je n'ai pas testé le code, il se peut qu'il y ait des erreurs...
Cependant, je dois t'avertir : ça ne marche qu'avec PDO.
De plus, c'est pas super super sécurisé à la requête, mais comme rien n'est saisi pas l'utilisateur, il y a peu de chances qu'il y ait un problème.
Tu peux toujours arranger le tout en utilisant prepare() et execute().

J'espère t'avoir aidé ! 😉
Nobodief

Nobodief Le 25 juillet 2016 à 03:07 (Édité le 25 juillet 2016 à 03:41)

Salut, méthode pour comparer des données :
       function GetCount($table, $where, $value) {
         global $bdd;
          $req = $bdd->prepare('SELECT * FROM '.$table.' WHERE '.$where.' = ?');
          $req->execute(array($value));
          $req = $req->rowCount(); 
         return $req;
       }
//Utile pour les conditions
if(GetCount('users', 'name', $_POST['username']) == 0) {
} else { 

}
Méthode pour calculer :
       function GetAmount($table) {
            global $bdd;
            $req = $bdd->prepare('SELECT COUNT(*) AS nb FROM '.$table.'');
            $req->execute(); 
            $req = $req->fetch(); 
            return $req['nb'];
        }
echo GetAmount('users');

Comme la dit notre chers amis @TheHoldNoob , tu dois apprendre par toi même, c'est pas comme si les ressources et la documentation sur la programmation n'existé pas.

Tu as juste à taper la fonction que tu recherche et tu devrais trouver.

Pour terminer, prend l'habitude de passer ce genre de requête en "Fonction", car pour une interface administrative tu va devoir faire ce code pour la plupart de tes tables.

Cela t'évite de ré-écrire ton code.
Le_Futuriste

Le_Futuriste Le 25 juillet 2016 à 11:28

Merci pour toute vos réponse 😀
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte