Page 1 sur 1

Comment compter les éléments d'un tableau ?

Posté : 10 sept. 2008, 19:18
par dogmongo
Bonjour,

Comment puis-je compter les éléments d'un tableau ?

Mon tableau $Groupe[] que j'ai récupéré en sortie de requête et je voudrai récupérer le nombre éléments

je me suis orienté sur count mais je pense que ma méthode est mauvaise

$nbc_gp =  count($Groupe[$lazone]); 
je me casse la tête dessus, j'ai jamais utilisé cette fonction si quelqu'un pourrai me donner un peu plus d'explication dessus je lui en serais reconnaissant :?

merci d'avance

Re: Comment compter les éléments d'un tableau ?

Posté : 10 sept. 2008, 19:40
par Berzemus
ben..
$nbc_gp =  count($Groupe); 
Sauf si $Groupe[$lazone] est en lui-même un tableau, mais je vois pas trop ce qui coince..

Posté : 10 sept. 2008, 19:58
par dogmongo
oui j'ai essayé mais sans succès !

la seule méthode que j'ai trouvé c'est de créer un autre tableau associatif en sortie de requete mais si je pouvais faire mieu :? j'aimerai autant.
//requete 
$Groupe[$DB_case] ="ma chaine de car... $DB_case ";
$Nb[$DB_case] ++;
} // fin while

echo $Groupe[$lazone]."<br>";
echo "il y a ".$Groupe[$lazone]." éléments ";
merci Berzemus

Posté : 10 sept. 2008, 21:54
par Berzemus
Il affiche des erreurs, quand même ? Ce serait bizarre sinon..

Posté : 11 sept. 2008, 00:24
par dogmongo
non aucune erreur je passe par AJAX

Posté : 11 sept. 2008, 10:21
par Berzemus
non aucune erreur je passe par AJAX
Oui mais tu peux quand même voire ce que te retourne ton script, non ?

Posté : 11 sept. 2008, 11:16
par dogmongo
voici le test suivant que j'ai fais
$test =  count($Groupe);
echo "test =".$test;
donne

Code : Tout sélectionner

test =8
8 semble être le nombre d'enregistrement groupés de ma base de donnée, mais j'avance rien c'est peu etre qu'un hasard

Posté : 11 sept. 2008, 12:02
par Berzemus
Euh.. ben 8, c'est la taille du tableau $Groupe..

Je crois qu'on se comprend mal, tu cherches à faire quoi, au juste ? Si c'est le nombre de rangées dans une DB que tu veux, c'est par une requête SQL (genre 'SELECT count(*) FROM ma_table') qu'il faut passer.

Posté : 11 sept. 2008, 13:08
par phoeniix07
Tu veux compter le nombre de caractères de ta chaine ?

dans ce cas
strlen($Groupe[$lazone]);
sinon essaye d'être un poil plus clair.

Posté : 11 sept. 2008, 18:03
par dogmongo
c'est vraiment pas simple à expliquer !

j'ai développé un jeu en ligne, php ajax html, sur ce jeu il y a une map avec 15 zones

sur chaque zone il y a des pions, mais il peut y en avoir plusieurs par zone

afin de connaître le nombre de pions dans chaque zone , j'exécute une requête sur une base de données où est indexé la position de mes pions.
$query = mysql_query("SELECT * FROM `matablepion` WHERE wolf_id_game=\"$idjeu\"  ");
	while($row = mysql_fetch_array($query)) {
	$DB_wolf_id_pion = $row['wolf_id_pion'];
	$DB_wolf_case = $row['wolf_case'];
	$DB_wolf_color = $row['wolf_color'];
	$DB_wolf_name = $row['wolf_name'];

$Gourpe_wolf_dog_name = $row['wolf_name'];
$Groupe[$DB_wolf_case].= "<img src=\"templade/".$DB_wolf_color."/4m.jpg\" width=\"25\" hspace=\"5\" border=\"0\"  align=\"absmiddle\" style=\"border: 1px solid #FFFFFF;\">".$Gourpe_wolf_name." <input type=\"radio\" name=\"pion\" id=\"pion\" value=\"$DB_wolf_id_pion\"><br>";
}
ensuite après une sélection de zones je génère un formulaire via Ajax, seulement il y a une condition sur le nombre de pions de la zone voulue, si je veux déplacer un seul pion un formulaire doit apparaître, sinon il apparaît différemment.

cette condition se vérifie par la variable que j'essaie de créer

la seule chose que j'ai réussie à faire pour l'instant s'est créé un autre tableau associatif, ça ne me gêne pas du moment où ça marche, mais si il y a une solution bien plus simple j'aimerais beaucoup la connaître.
$nb_pion_groupe[$DB_wolf_case] ++;

Posté : 11 sept. 2008, 18:58
par phoeniix07
tu peut utiliser

mysql_num_rows si tu ah une requête ne sélectionnant que les pions d'une case mais la apparemment tu sélectionne tout les pions de l'aire de jeux, donc soit utiliser un nombre que tu incremente (comme actuelement) soit une requête pour chaque case soit un count avec group by par case.

perso j'utiliserais le count je pense mais bon on a pas tout ton code et juste un apercu de ta bd!

Posté : 12 sept. 2008, 00:28
par dogmongo
donc finalement je me suis pas trop mal débrouillé, merci pour le temps que vous m'avez accordé :wink: