statistic more genric

This commit is contained in:
Walter Hupfeld
2026-07-09 18:38:26 +02:00
parent f3443bfd4d
commit 8e2d9fbcee
5 changed files with 81 additions and 95 deletions
+70 -92
View File
@@ -26,82 +26,83 @@
</style>
</head>
<body>
<?php
require("../config.php");
// Hilfsfunktionen
function jahresHeader($von, $bis, $mitRand = false) {
$html = "";
for ($y = $von; $y >= $bis; $y--) {
$class = ($y == $von && $mitRand) ? " class='l'" : "";
$html .= "<th{$class}>{$y}</th>";
}
return $html;
}
function jahresSpaltenSQL($prefix, $von, $bis, $bedingung = "") {
$cols = [];
for ($y = $von; $y >= $bis; $y--) {
$cond = $bedingung ? " AND {$bedingung}" : "";
$cols[] = "SUM(UJAHR={$y}{$cond}) as {$prefix}_{$y}";
}
return implode(",\n ", $cols);
}
function jahresZellen($row, $prefix, $von, $bis) {
$html = "";
for ($y = $von; $y >= $bis; $y--) {
$class = ($y == $von) ? " class='l'" : "";
$html .= "<td{$class}>" . $row["{$prefix}_{$y}"] . "</td>";
}
return $html;
}
?>
<?php include("navbar.php"); ?>
<div class="container-fluid" style="margin-top:4em;">
<div class="container-fluid" style="margin-top:4em;">
<h1>Fahrradunfälle in Nordrhein-Westfalen in Gemeinden</h2>
<table id="unfallzahlen" class="display">
<thead>
<tr><th></th>
<th colspan="7">Fahrradunfälle</th>
<th colspan="7">Todesfälle</th>
<th colspan="7">Schwerverletzte</th>
<th colspan="7">Leichtverletzte</th>
<th class='l'>Fäche</th>
<th>Einw.</th>
<th>Quote</th>
</tr>
<tr><th>Name</th>
<th class='l'>2025</th><th>2024</th><th>2023</th><th>2022</th><th>2021</th><th>2020</th><th>2019</th>
<th class='l'>2025</th><th>2024</th><th>2023</th><th>2022</th><th>2021</th><th>2020</th><th>2019</th>
<th class='l'>2025</th><th>2024</th><th>2023</th><th>2022</th><th>2021</th><th>2020</th><th>2019</th>
<th class='l'>2025</th><th>2024</th><th>2023</th><th>2022</th><th>2021</th><th>2020</th><th>2019</th>
<th class='l' colspan="2">in Tausend</th><th></th>
</tr>
</thead>
<thead>
<tr>
<th></th>
<th colspan="<?= $numLatestYear - $numStartYear + 1 ?>">Fahrradunfälle</th>
<th colspan="<?= $numLatestYear - $numStartYear + 1 ?>">Todesfälle</th>
<th colspan="<?= $numLatestYear - $numStartYear + 1 ?>">Schwerverletzte</th>
<th colspan="<?= $numLatestYear - $numStartYear + 1 ?>">Leichtverletzte</th>
<th class='l'>Fläche</th>
<th>Einw.</th>
<th>Quote</th>
</tr>
<tr>
<th>Name</th>
<?= jahresHeader($numLatestYear, $numStartYear, true) ?>
<?= jahresHeader($numLatestYear, $numStartYear, true) ?>
<?= jahresHeader($numLatestYear, $numStartYear, true) ?>
<?= jahresHeader($numLatestYear, $numStartYear, true) ?>
<th class='l' colspan="2">in Tausend</th>
<th></th>
</tr>
</thead>
<tbody>
<?php
require("../config.php");
$strSQL="SELECT d.Name as Gemeinde,
SUM(UJAHR=2025) as Jahr_2025,
SUM(UJAHR=2024) as Jahr_2024,
SUM(UJAHR=2023) as Jahr_2023,
SUM(UJAHR=2022) as Jahr_2022,
SUM(UJAHR=2021) as Jahr_2021,
SUM(UJAHR=2020) as Jahr_2020,
SUM(UJAHR=2019) as Jahr_2019,
SUM(UJAHR=2025 AND UKATEGORIE=1) as Tode_2025,
SUM(UJAHR=2024 AND UKATEGORIE=1) as Tode_2024,
SUM(UJAHR=2023 AND UKATEGORIE=1) as Tode_2023,
SUM(UJAHR=2022 AND UKATEGORIE=1) as Tode_2022,
SUM(UJAHR=2021 AND UKATEGORIE=1) as Tode_2021,
SUM(UJAHR=2020 AND UKATEGORIE=1) as Tode_2020,
SUM(UJAHR=2019 AND UKATEGORIE=1) as Tode_2019,
SUM(UJAHR=2025 AND UKATEGORIE=2) as Schwerverletzt_2025,
SUM(UJAHR=2024 AND UKATEGORIE=2) as Schwerverletzt_2024,
SUM(UJAHR=2023 AND UKATEGORIE=2) as Schwerverletzt_2023,
SUM(UJAHR=2022 AND UKATEGORIE=2) as Schwerverletzt_2022,
SUM(UJAHR=2021 AND UKATEGORIE=2) as Schwerverletzt_2021,
SUM(UJAHR=2020 AND UKATEGORIE=2) as Schwerverletzt_2020,
SUM(UJAHR=2019 AND UKATEGORIE=2) as Schwerverletzt_2019,
SUM(UJAHR=2025 AND UKATEGORIE=3) as Leichtverletzt_2025,
SUM(UJAHR=2024 AND UKATEGORIE=3) as Leichtverletzt_2024,
SUM(UJAHR=2023 AND UKATEGORIE=3) as Leichtverletzt_2023,
SUM(UJAHR=2022 AND UKATEGORIE=3) as Leichtverletzt_2022,
SUM(UJAHR=2021 AND UKATEGORIE=3) as Leichtverletzt_2021,
SUM(UJAHR=2020 AND UKATEGORIE=3) as Leichtverletzt_2020,
SUM(UJAHR=2019 AND UKATEGORIE=3) as Leichtverletzt_2019,
$strSQL = "SELECT d.Name as Gemeinde,
" . jahresSpaltenSQL('Jahr', $numLatestYear, $numStartYear) . ",
" . jahresSpaltenSQL('Tode', $numLatestYear, $numStartYear, 'UKATEGORIE=1') . ",
" . jahresSpaltenSQL('Schwerverletzt', $numLatestYear, $numStartYear, 'UKATEGORIE=2') . ",
" . jahresSpaltenSQL('Leichtverletzt', $numLatestYear, $numStartYear, 'UKATEGORIE=3') . ",
Flaeche, Einwohner,
SUM(UJAHR=2025)/d.Einwohner*1000 as Quote_2025,
d.ULAND,
d.UREGBEZ,
d.UKREIS,
d.UGEMEINDE
SUM(UJAHR={$numLatestYear})/d.Einwohner*1000 as Quote_{$numLatestYear},
d.ULAND, d.UREGBEZ, d.UKREIS, d.UGEMEINDE
FROM data s, community d
WHERE IstRad=1
AND d.ULAND=s.ULAND AND d.UREGBEZ=s.UREGBEZ AND d.UKREIS=s.UKREIS AND d.UGEMEINDE=s.UGEMEINDE
GROUP BY s.ULAND, s.UREGBEZ, s.UKREIS,s.UGEMEINDE
ORDER BY Quote_2025 DESC
";
GROUP BY s.ULAND, s.UREGBEZ, s.UKREIS, s.UGEMEINDE
ORDER BY Quote_{$numLatestYear} DESC";
// --- ORDER BY s.ULAND, s.UREGBEZ, s.UKREIS,s.UGEMEINDE
$result=$db->query($strSQL);
@@ -109,39 +110,16 @@ $result=$db->query($strSQL);
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
echo "<tr>";
echo "<td><a href='gemeinde_details.php?regbez=".$row['UREGBEZ']."&kreis=".$row['UKREIS']."&gemeinde=".$row['UGEMEINDE']."'>".$row['Gemeinde']."</a></td>";
echo "<td class='l'>".$row['Jahr_2025']."</td>";
echo "<td>".$row['Jahr_2024']."</td>";
echo "<td>".$row['Jahr_2023']."</td>";
echo "<td>".$row['Jahr_2022']."</td>";
echo "<td>".$row['Jahr_2021']."</td>";
echo "<td>".$row['Jahr_2020']."</td>";
echo "<td>".$row['Jahr_2019']."</td>";
echo "<td class='l'>".$row['Tode_2025']."</td>";
echo "<td>".$row['Tode_2024']."</td>";
echo "<td>".$row['Tode_2023']."</td>";
echo "<td>".$row['Tode_2022']."</td>";
echo "<td>".$row['Tode_2021']."</td>";
echo "<td>".$row['Tode_2020']."</td>";
echo "<td>".$row['Tode_2019']."</td>";
echo "<td class='l'>".$row['Schwerverletzt_2025']."</td>";
echo "<td>".$row['Schwerverletzt_2024']."</td>";
echo "<td>".$row['Schwerverletzt_2023']."</td>";
echo "<td>".$row['Schwerverletzt_2022']."</td>";
echo "<td>".$row['Schwerverletzt_2021']."</td>";
echo "<td>".$row['Schwerverletzt_2020']."</td>";
echo "<td>".$row['Schwerverletzt_2019']."</td>";
echo "<td class='l'>".$row['Leichtverletzt_2025']."</td>";
echo "<td>".$row['Leichtverletzt_2024']."</td>";
echo "<td>".$row['Leichtverletzt_2023']."</td>";
echo "<td>".$row['Leichtverletzt_2022']."</td>";
echo "<td>".$row['Leichtverletzt_2021']."</td>";
echo "<td>".$row['Leichtverletzt_2020']."</td>";
echo "<td>".$row['Leichtverletzt_2019']."</td>";
echo jahresZellen($row, 'Jahr', $numLatestYear, $numStartYear);
echo jahresZellen($row, 'Tode', $numLatestYear, $numStartYear);
echo jahresZellen($row, 'Schwerverletzt', $numLatestYear, $numStartYear);
echo jahresZellen($row, 'Leichtverletzt', $numLatestYear, $numStartYear);
echo "<td class='rechts l'>".$row['Flaeche']."</td>";
echo "<td class='rechts'>".round($row['Einwohner']/1000,1)."</td>";
echo "<td class='rechts'>".round($row['Quote_2025'],2)."</td>";
echo "<td class='rechts'>".round($row["Quote_{$numLatestYear}"],2)."</td>";
echo "</tr>\n";
}
?>
</tbody>
</table>