setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Les noms complets des priorités
$priorities = [
'prop1_priority' => 'Se loger dignement',
'prop2_priority' => 'Se nourrir sainement',
'prop3_priority' => 'Vivre dignement',
'prop4_priority' => 'Accès aux soins',
'prop5_priority' => 'Accès à l’éducation'
];
// Préparer une requête pour compter les occurrences de chaque valeur par priorité
$counts = [];
$totalResponses = 0;
foreach ($priorities as $column => $label) {
$stmt = $pdo->prepare("SELECT $column AS priority, COUNT(*) AS count FROM besoinsPrimaire2 WHERE valide = 1 GROUP BY $column");
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($results as $row) {
$priorityValue = (int) $row['priority'];
$count = (int) $row['count'];
$counts[$column][$priorityValue] = $count;
$totalResponses += $count;
}
}
// Calculer les pourcentages et trier les données par priorité 1
$summary = [];
foreach ($priorities as $column => $label) {
$priority1Count = $counts[$column][1] ?? 0;
$totalForColumn = array_sum($counts[$column] ?? []);
$percentage = $totalForColumn > 0 ? round(($priority1Count / $totalResponses) * 100, 2) : 0;
$summary[] = [
'label' => $label,
'priority1Count' => $priority1Count,
'percentage' => $percentage
];
}
usort($summary, function ($a, $b) {
return $b['priority1Count'] <=> $a['priority1Count'];
});
// Affichage du tableau
echo "";
echo "
";
} catch (PDOException $e) {
echo "Erreur : " . $e->getMessage();
}
?>
Résultats pour les besoins primaires
"; echo "Nom | Nombre de fois nommé en priorité 1 | Pourcentage | Graphique |
---|---|---|---|
{$row['label']} | "; echo "{$row['priority1Count']} | "; echo "{$row['percentage']}% | "; echo ""; echo " |