PHP [COUNT]

Résolu
Bonjour à tous,

Je suis actuellement en train de créer un site pour des collectionneurs. Malheureusement je débute en PHP et je galère un peu -_-.
Je vous expose donc mon problème. J'aimerai créer une page ou le nombre d'enrgistrements de ma table (ici la table "task") soient comptés. J'ai déja commencé à mettre mon petit bout de code mais ca ne fonctionne pas :

<?php 
$pseudo = $_SESSION[pseudo] ;

mysql_connect("localhost", "*****", "***")or die(mysql_error()) ;
mysql_select_db("terra")or die(mysql_error()) ;
echo mysql_query("SELECT count(id) FROM task WHERE pseudo ='$pseudo'")or die(mysql_error()) ;
mysql_close() ;

?>

Ce bout de code fonctionne mais il affiche systématiquement la valeur 1, quel que soit le nombre d'enrgistrements...
Auriez vous une solution ?

Merci d'avance,

Terra
Configuration: Windows XP
Internet Explorer 7.0

5 réponses

  1. C'est normal, il te manque qq trucs et mysql_query ne sort pas les enregistrements il faut faire un mysql_fetch........ ensuite

    <?php 
    $pseudo = $_SESSION[pseudo] ;
    $cnx=mysql_connect("localhost", "*****", "***")or die(mysql_error()) ;
    mysql_select_db("terra",$cnx)or die(mysql_error()) ;
     $reponse=mysql_query("SELECT count(id) FROM task WHERE pseudo ='$pseudo'")or die(mysql_error()) ;
    while($row=mysql_fetch_array($reponse)){
    	echo $row[0];
    }
     
     mysql_close() ;
    
    ?>
    


    ou comme tu n'auras qu'une seule ligne de réponse tu peux aussi faire: (sans le count(id))

    <?php 
    $pseudo = $_SESSION[pseudo] ;
    
    $cnx=mysql_connect("localhost", "*****", "***")or die(mysql_error()) ;
    mysql_select_db("terra",$cnx)or die(mysql_error()) ;
     $reponse=mysql_query("SELECT id FROM task WHERE pseudo ='$pseudo'")or die(mysql_error()) ;
    
    	echo "nombre d'id trouves: ".mysql_num_row($reponse);
    
     mysql_close() ;
    
    ?>
    
    1. Merci beaucoup !!!

      Etant novice avec php je vais m'enrgistrer ton code sur mon pocket pc et je vais le bosser toute la nuit lol !

      Juste une dernière question comment avez vous a programmer le php avec autant de facilité ?

      Merci beaucoup de votre aide maintenant ca marche nikel

      Cordialement,

      Terra
    2. Rq: le count() est plus rapide à l'éxecution que le mysql_num_row()

      J'ajouterais plutôt:
      $resultat=mysql_fetch_row($result);
      echo $resultat[0];

      Pour s'initier au php, je te conseille le site du Zero: https://openclassrooms.com/fr/
  2. Bonjour,

    tout d'abord, écris:
    $pseudo = $_SESSION['pseudo'] ;
    avec des côtes :)

    Puis
    $result = mysql_query("SELECT count(id) FROM task WHERE pseudo ='$pseudo'")or die(mysql_error()) ;
    echo "Result = ".$result;
    

    Ta syntaxe fonctionne peut-être, mais g toujours utilisé:
    $connect = mysql_connect("localhost", "*****", "***"); 
    mysql_select_db("terra", $connect);
    
    1. C'est normal, il te manque qq trucs et mysql_query ne sort pas les enregistrements il faut faire un mysql_fetch........ ensuite

      <?php
      $pseudo = $_SESSION[pseudo] ;
      $cnx=mysql_connect("localhost", "*****", "***")or die(mysql_error()) ;
      mysql_select_db("terra",$cnx)or die(mysql_error()) ;
      $reponse=mysql_query("SELECT count(id) FROM task WHERE pseudo ='$pseudo'")or die(mysql_error()) ;
      while($row=mysql_fetch_array($reponse)){
      echo $row[0];
      }

      mysql_close() ;

      ?>

      ou comme tu n'auras qu'une seule ligne de réponse tu peux aussi faire: (sans le count(id))

      <?php
      $pseudo = $_SESSION[pseudo] ;

      $cnx=mysql_connect("localhost", "*****", "***")or die(mysql_error()) ;
      mysql_select_db("terra",$cnx)or die(mysql_error()) ;
      $reponse=mysql_query("SELECT id FROM task WHERE pseudo ='$pseudo'")or die(mysql_error()) ;

      echo "nombre d'id trouves: ".mysql_num_row($reponse);

      mysql_close() ;

      ?>
      1. <?php
        session_start();
        
        $pseudo = $_SESSION['pseudo'] ;
        
        $cnx = mysql_connect('*', '*', '*') or die(mysql_error());
        mysql_select_db('terra', $cnx) or die(mysql_error());
        
        $sql = 'SELECT `id` FROM `task` WHERE `pseudo` = "'.$pseudo.'"';
        $reponse = mysql_query($sql) or die(mysql_error());
        
        echo 'Nombre d\'id trouves: '.mysql_num_row($reponse);
        
        mysql_close();
        
        ?>


        C'est moche la façon dont vous codez les mecs :/
        1. Clair, mais on passe tous par là ...
        2. Ça c'est super constructif comme remarque...
        3. @OzimandiasMerci la grosse faute surtout pour les débutants !
          Je rappel que mysql_num_row prend un S à la fin => mysql_num_rows
          Tchousss Merci les forums