Affiche résultat d'une requête en php, help

Bonjour,

J'ai des enregistrement dans ma table et je souhaite afficher une ligne disant:
"il t a X enregistrements dans la catégorie Y au DATEDUJOURS"

J'ai commencé a écrire ma requête, cependant j'ai un résultat bizarre.

Voici mon code php
				<?php
				$base = mysql_connect ('sql.free.fr', '***', '***');
mysql_select_db ('cadre', $base);

$sql = 'SELECT * FROM cadre';


$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
echo 'Il y a '.$req.' enregistrement(s) dans la catégorie cadre.';
mysql_close ();
?>


Et voici ce qui s'affiche:
Il y a Resource id #2 enregistrement(s) dans la catégorie cadre.


Si quelqu'un peu m'éclairer (aussi pour la formule date!
Merci!

7 réponses

  1. Bonjour,
    Pour le mysql_query regarde le cours de ccm, je pense que ça devrait t'aider à comprendre comment utiliser la fonction : https://www.commentcamarche.net/contents/784-php-bases-de-donnees

    Et de la même manière pour afficher la date il faut utiliser la fonction date() qui est très bien expliquée ici : http://www.php.net/manual/fr/function.date.php
    1. Salut.

      Tu ne peux pas afficher le résultat d'un mysql_query (variable $req) car c'est une ressource. Tu dois l'exploiter avec des fonctions comme mysql_fetch.

      Pour compter le nombre d'entrées, tu peux utiliser mysql_num_rows() ou utiliser la fonction SQL COUNT()
      1. Et bien, après des heures cela ne marche toujours pas :(
        				<?php
        				$base = mysql_connect ('sql.free.fr', '***', '***');
        mysql_select_db (cadre, $base);
        $sql = "SELECT count(id) FROM  cadre";
        
        $result = mysql_query($sql);
        
        if (!$result) {
           echo "Impossible d'exécuter la requête ($sql) dans la base : " . mysql_error();
           exit;
        }
        
        if (mysql_num_rows($result) == 0) {
           echo "Aucune ligne trouvée, rien à afficher.";
           exit;
        }
        
        while ($row = mysql_fetch_array($result)) {
           echo $row["id"];
        }
        
        mysql_free_result($result);
        mysql_close ();
        ?>


        Rien ne s'affiche ;(
        Help?
        Merci a toi néanmoins
        1. <?php
          mysql_connect ('sql.free.fr', '***', '***');
          mysql_select_db ('cadre');
          
          $sql = "SELECT COUNT(*) as nb FROM cadre";
          $result = mysql_query($sql);
          
          if (!$result) {
             echo "Impossible d'exécuter la requête ($sql) dans la base : " . mysql_error();
             exit;
          }
          $row = mysql_fetch_array($result);
          $nb = $row['id'];
          
          echo 'Nombre de résultats: '.$nb;
          
          mysql_free_result($result);
          mysql_close ();
          ?>
          1. Salut avion-f16
            Merci de ton aide, mais cela ne marche toujours pas, pareil que moi, la phrase s'affiche mais c'est tout :(
            Le nombre d'enregistrement ne s'affiche pas, pourtant j'ai 5 enregistrements dans ma table.
            1. Il faut modifier
              $nb=row["id"];
              par
              $nb=row["nb"];

              dans le code de avion-f16

              Après ça devrait marcher sans problème
              1. Oui, le problème vient de là.
                Bête erreur
            2. Merci, c'est résolu :)

              Concernant la date, j'ai utilisé la fonction curdate()

              $sql = "SELECT COUNT(*) as nb FROM cadre WHERE date_signature= curdate()";

              Et ça marche bien, merci à vous