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. <?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
  3. 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. 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);