Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/11/2011, 11h22   #1
GYK
Membre du Club
 
Inscription : mai 2004
Messages : 317
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 317
Points : 44
Points : 44
Par défaut Comptage d'enregistrement incomplet.

Bonjour,

J'ai un truc tout bête à faire, c'est compter des enregistrements dans une table sur un critère.
Code :
1
2
 
SELECT  Mon_critére, COUNT(*) FROM Ma_table GROUP BY Mon_critére;
Quand je fais un :
Code :
1
2
3
4
 
echo ('<pre>');
print_r(Mon_tableau);
echo ('</pre>');
Mon tableau étant le résultat de ma requête SELECT :
Code php :
1
2
 
Mon_tableau = mysql_fetch_row(Ma_requette);
Je n'ai malheureusement que le comptage correspondant au premier critère style:
Code :
1
2
3
4
5
6
 
Array
(
    [0] => 1
    [1] => 5
)
alors que dans ma table, j'ai des enregistrements dans 3 critères différents.
Quelqu'un a-t-il une idée ?

Merci
GYK est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 11h37   #2
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Saluton,
Vu que mysql_fetch_row(), comme son nom l'indique, parcours le résultat ligne par ligne, je ne vois rien d'anormal au résultat affiché.
Tu ne lui faiS lire qu'une ligne, il n'affiche que le résultat de cette lecture.
C'est donc un problème PHP et non MySQL.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 11h47   #3
GYK
Membre du Club
 
Inscription : mai 2004
Messages : 317
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 317
Points : 44
Points : 44
Bonjour Maljuna Kris,

J'ai également essayé avec mysql_fetch_array et c'est pareil.

Je pensais que dans le cas de count() il balayait la table et générait un tableau correspondant à son regroupement!
GYK est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 15/11/2011, 13h45   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 327
Points : 18 327
Envoyer un message via MSN à CinePhil
Il faut faire une boucle pour lire tout le jeu de résultats de la requête !
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
$sql = "
	SELECT Mon_critere, COUNT(*) AS nombre 
	FROM Ma_table 
	GROUP BY Mon_critere
";
$result = mysql_query($sql);
 
if(mysql_num_rows($result) > 0)
{
<h1>Nombre par critère</h1>
<table>
	<th>
		<td>Critère</td>
		<td>Nombre</td>
	</th>
<?php
	while($row = mysql_fetch_array($result))
	{
?>
	<tr>
		<td><?php echo $row['Mon_critere']; ?></td>
		<td><?php echo $row['nombre']; ?></td>
	</tr>
<?php
	} // Fin while($row = mysql_fetch_array($result))
</table>
} // Fin if(mysql_num_rows($result) > 0)
else
{
?>
	<h1>Pas de résultat !</h1>
<?php
} // Fin du else de if(mysql_num_rows($result) > 0)
?>
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 10h31   #5
GYK
Membre du Club
 
Inscription : mai 2004
Messages : 317
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 317
Points : 44
Points : 44
Merci CinePhil,

Avec du retard, mais j'avais fini par trouver la solution.

Bonne journée
GYK est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h18.


 
 
 
 
Partenaires

Hébergement Web