Regroupement / Calcul nombre d’occurrences
Posté : 08 oct. 2013, 19:48
Bonjour,
Je travaille actuellement sur une solution en PHP afin de réaliser un taux de retour dynamique.
Dans une BDD phpMyAdmin, voici le décor :
Il y a un champs "Segments" qui peut avoir un nombre et un type de valeur indéfini. Comme par exemple : A, B, C, AAA, ABC, A1H ...
Il y a un champs "Completed" qui a pour valeur 1 ou 0, suivant qu'une action ait été complétée ou pas (0 = incomplète / 1 = complète)
Ce qui équivaut par exemple, à avoir un tableau de la sorte :

J'aimerai afficher pour chacun des segments, le nombre total d’occurrences ainsi que le nombre de tag Completed égal à 1 et enfin calculer le taux de retour.
Comme ceci :

Pourriez vous m'aiguiller à savoir comment il faut faire s'il vous plait pour générer ce tableau s'il vous plait ?
J'ai créé une double boucle pour ce faire, mais les résultats ne s'affichent pas correctement :
Voici mon code :

Le nombre de tag à 1 par segment ce situe sous les segments A, B, C.
Merci d'avance pour votre aide !
N'hésitez pas à revenir vers moi si je ne suis pas clair.
Alexandre
Je travaille actuellement sur une solution en PHP afin de réaliser un taux de retour dynamique.
Dans une BDD phpMyAdmin, voici le décor :
Il y a un champs "Segments" qui peut avoir un nombre et un type de valeur indéfini. Comme par exemple : A, B, C, AAA, ABC, A1H ...
Il y a un champs "Completed" qui a pour valeur 1 ou 0, suivant qu'une action ait été complétée ou pas (0 = incomplète / 1 = complète)
Ce qui équivaut par exemple, à avoir un tableau de la sorte :

J'aimerai afficher pour chacun des segments, le nombre total d’occurrences ainsi que le nombre de tag Completed égal à 1 et enfin calculer le taux de retour.
Comme ceci :

Pourriez vous m'aiguiller à savoir comment il faut faire s'il vous plait pour générer ce tableau s'il vous plait ?
J'ai créé une double boucle pour ce faire, mais les résultats ne s'affichent pas correctement :
Voici mon code :
<?php
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
//Requete de selection
$tableau_segment = $bdd->query('SELECT Segment, COUNT(*) FROM return_rate_2 GROUP BY Segment');
while ($Group_Segment = $tableau_segment ->fetch())
{
?>
<div>
<?php
echo $Group_Segment['Segment']; ?> -
<?php
echo $Group_Segment['COUNT(*)']; ?> -
</div>
<?php
}
$tableau_segment->closeCursor();
$tableau_segment_1 = $bdd->query('SELECT COUNT(Completed) FROM return_rate_2 where Completed= 1 GROUP BY Segment');
while ($Group_Segment_1 = $tableau_segment_1 ->fetch())
{
?>
<div>
<?php
echo $Group_Segment_1['COUNT(Completed)']; ?> -
</div>
<?php
}
$tableau_segment_1->closeCursor();
?>
Et voici le résultat de mon code :
Le nombre de tag à 1 par segment ce situe sous les segments A, B, C.
Merci d'avance pour votre aide !
N'hésitez pas à revenir vers moi si je ne suis pas clair.
Alexandre