Rechercher : dans
Par :

PHP [COUNT]

Dernière réponse le 6 nov 2009 à 02:27:38 Terraforgeur, le 21 aoû 2007 à 16:16:47 
 Signaler ce message aux modérateurs

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

1

Pi_Xi, le 21 aoû 2007 à 16:23:44

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);

Répondre à Pi_Xi

2

Alain42, le 21 aoû 2007 à 16:34:58
  • +2

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() ;

?>

Répondre à Alain42

3

Terraforgeur, le 21 aoû 2007 à 16:42:14

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

Répondre à Terraforgeur

4

Pi_Xi, le 21 aoû 2007 à 16:48:04
  • +1

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: http://www.siteduzero.com/

Répondre à Pi_Xi

5

Terraforgeur, le 29 déc 2007 à 15:40:55

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() ;

?>

Répondre à Terraforgeur

6

Tiller, le 29 déc 2007 à 15:46:54

<?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 :/
On dit que les oiseaux sont libres dans le ciel,
Mais la vraie liberté n'est pas celle d'avoir un endroit où se poser ?

Répondre à Tiller

7

Pi_Xi, le 29 déc 2007 à 15:49:11

Clair, mais on passe tous par là ...
GoOgle est ton ami ;o)

Répondre à Pi_Xi

8

Ozimandias, le 29 jui 2009 à 12:07:20

Ça c'est super constructif comme remarque...
Deux intellectuels assis vont moins loin qu'une brute qui ma­rche.
!!! Vous avez obtenu une réponse ... Pensez à marquer vos su­jets comme résolus !!!

Répondre à Ozimandias

9

 MOLL, le 6 nov 2009 à 02:27:38
  • +1

Merci 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

Répondre à MOLL