[PHP] fonction count() et Group By
Résolu
comoriano
-
comoriano -
comoriano -
Bonjour à tous,
Je cherche avec compter le nombre de territoire possédant chaques équipe :
Le porbleme est que ca ne m'affiche qu'une équipe sur les 10 existante :( :
Merci pour l'aide que vous m'apporterez
Je cherche avec compter le nombre de territoire possédant chaques équipe :
Le porbleme est que ca ne m'affiche qu'une équipe sur les 10 existante :( :
$mafia1 = "SELECT *"
. "\n FROM #__wub_equipe"
;
$database->setQuery( $mafia1 );
if ( $database->loadResult() )
{
$mafia1 = $database->loadObjectList();
}
$n = 0;
foreach($mafia1 as $list )
{
echo $list->id;
$mafia = "SELECT *, COUNT(*) as compte"
. "\n FROM #__wub_carte_victoire"
. "\n WHERE equipe = '".$list->id."' GROUP BY equipe"
;
}
if ( $database->loadResult() )
{
$liste = $database->loadObjectList();
} ?>
<table class="tablesorter" border="0" cellpadding="0" cellspacing="1">
<thead>
<tr>
<th></th>
<th>Mafia</th>
<th>Nbr territoire</th>
</tr>
</thead>
<tbody>
<?php
$n = 0;
foreach($liste as $list )
{
$n++;
?>
<tr>
<td><?php echo $n; ?></td>
<td nowrap="nowrap"><span class="blocequipe" style="background-color:<?php echo $equipe->CouleurEquipe($list->equipe); ?>;"> </span> <?php echo $equipe->NomEquipe($list->equipe); ?></td>
<td><?php echo number_format($list->compte); ?> pts</td>
</tr>
<?php
}
?>
</tbody>
</table>
Merci pour l'aide que vous m'apporterez
Configuration: Windows XP Firefox 3.0.13
9 réponses
-
Bonjour,
Tu as mal placé une fermeture '}'
Ici :echo $list->id; $mafia = "SELECT *, COUNT(*) as compte" . "\n FROM #__wub_carte_victoire" . "\n WHERE equipe = '".$list->id."' GROUP BY equipe" ; }
Supprime cette fermeture et mets là à la fin.
-
Merci pour ta réponse.
Ca fonctionne mais il y a des doublons dans le tableau. Sais-tu comment faire pour ne pas en avoir ?
Merci d'avance. -
Mum... si tu place un "DISTINCT" juste après le "SELECT" dans ta seconde requête, ça supprime les doublons ?
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Quels sont les doublons exactement, peux tu mettre la liste des résultats histoire d'avoir un visu.
-
Oui je peux Voici le tableau :
Mafia Nbr territoire 1 La famille montana 0 pts 2 Les affranchis 0 pts 3 Les affranchis 0 pts 4 Tueur de flic 0 pts 5 Tueur de flic 0 pts 6 La main noire 0 pts 7 Les affranchis 0 pts 8 Habitant 0 pts 9 Habitant 0 pts 10 Habitant 0 pts 11 Les affranchis 0 pts 12 Les affranchis 0 pts 13 Habitant 0 pts 14 Habitant 0 pts 15 Habitant 0 pts 1 Habitant 39 pts 1 Tueur de flic 27 pts 1 Tueur de flic 27 pts 1 Tueur de flic 27 pts 1 La famille montana 62 pts 1 Les affranchis 39 pts
-
Bonjour à tous,
J'ai donc mis un HAVIS count(*) >= 1 aprés le ORDY by
mais il me sort pas toutes les valeurs comme il faut
Au lieu de me mettre :
A
B
C
D
E
Il va me mettre
A
A
A
C
C
E
:-/ si vous voiyez ce que je veux dire :(
merci de votre aide -
Re,
Pourrais tu me donner la structure exacte de ta table, ainsi qu'une liste de quelques enregistrement, de manière à créer la table en local chez moi pour tester des requetes SQL, ce sera plus pratique.
-
C'est bon j'ai réglé mon pb en faisant autrement : J'ai enlevé la verification de l'id de l'equipe et la 1ére requête. Utiliser un DISTINCT et voilà
Encore merci pour ton aide :)
Je peux pas mettre en résolu, j'ai posté en tant que invité
<table class="tablesorter" border="0" cellpadding="0" cellspacing="1"> <thead> <tr> <th></th> <th>Nom des equipes</th> <th>Nombre de territoire</th> </tr> </thead> <?php $mafia = "SELECT DISTINCT (equipe) as team, equipe, COUNT(*) as compte " . "\n FROM #__wub_carte_victoire" . "\n GROUP BY team ORDER by compte DESC" ; $database->setQuery( $mafia ); if ( $database->loadResult() ) { $clan = $database->loadObjectList(); } ?> <tbody> <?php $n = 0; foreach($clan as $como ) { $n++; ?> <tr> <td><?php echo $n; ?></td> <td nowrap="nowrap"><span class="blocequipe" style="background-color:<?php echo $equipe->CouleurEquipe($como->equipe); ?>;"> </span> <?php echo $equipe->NomEquipe($como->equipe); ?></td> <td><?php echo number_format($como->compte); ?> pts</td> </tr> <?php } ?> </tbody> </table>