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

lovedirt -  
 lovedirt -
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. drantd Messages postés 102 Statut Membre 20
     
    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
  2. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    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
  3. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    <?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
  4. drantd Messages postés 102 Statut Membre 20
     
    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
    1. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
       
      Oui, le problème vient de là.
      Bête erreur
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lovedirt
     
    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
    0
  7. lovedirt
     
    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.
    0
  8. lovedirt
     
    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
    0