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
+7
View File
@@ -127,3 +127,10 @@ function get_series_verlauf($arrData,$arrBezeichnung){
return $strResult; return $strResult;
} }
function titleYears(int $numLatestYear, int $numStartYear) {
$html = "";
for ($year = $numLatestYear; $year >= $numStartYear; $year--) {
$html .= "<th>{$year}</th>";
}
return $html;
}
+1 -1
View File
@@ -63,7 +63,7 @@
<div class="col-6"> <div class="col-6">
<h4>Unfallverlauf von <?=$numLatestYear?> bis <?=$numStartYear?></h4> <h4>Unfallverlauf von <?=$numLatestYear?> bis <?=$numStartYear?></h4>
<table class='table table-sm'> <table class='table table-sm'>
<tr><th></th><th>2025</th><th>2024</th><th>2023</th><th>2022</th><th>2021</th><th>2020</th><th>2019</th></tr> <tr><th></th><?= titleYears($numLatestYear, $numStartYear) ?></tr>
<tr><td><?= $arrCategory[1]?></td><?= get_row($resultVerlauf,1) ?></tr> <tr><td><?= $arrCategory[1]?></td><?= get_row($resultVerlauf,1) ?></tr>
<tr><td><?= $arrCategory[2]?></td><?= get_row($resultVerlauf,2) ?></tr> <tr><td><?= $arrCategory[2]?></td><?= get_row($resultVerlauf,2) ?></tr>
<tr><td><?= $arrCategory[3]?></td><?= get_row($resultVerlauf,3) ?></tr> <tr><td><?= $arrCategory[3]?></td><?= get_row($resultVerlauf,3) ?></tr>
+68 -90
View File
@@ -26,82 +26,83 @@
</style> </style>
</head> </head>
<body> <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"); ?> <?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> <h1>Fahrradunfälle in Nordrhein-Westfalen in Gemeinden</h2>
<table id="unfallzahlen" class="display"> <table id="unfallzahlen" class="display">
<thead> <thead>
<tr><th></th> <tr>
<th colspan="7">Fahrradunfälle</th> <th></th>
<th colspan="7">Todesfälle</th> <th colspan="<?= $numLatestYear - $numStartYear + 1 ?>">Fahrradunfälle</th>
<th colspan="7">Schwerverletzte</th> <th colspan="<?= $numLatestYear - $numStartYear + 1 ?>">Todesfälle</th>
<th colspan="7">Leichtverletzte</th> <th colspan="<?= $numLatestYear - $numStartYear + 1 ?>">Schwerverletzte</th>
<th class='l'>Fäche</th> <th colspan="<?= $numLatestYear - $numStartYear + 1 ?>">Leichtverletzte</th>
<th>Einw.</th> <th class='l'>Fläche</th>
<th>Quote</th> <th>Einw.</th>
<th>Quote</th>
</tr> </tr>
<tr><th>Name</th> <tr>
<th class='l'>2025</th><th>2024</th><th>2023</th><th>2022</th><th>2021</th><th>2020</th><th>2019</th> <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> <?= jahresHeader($numLatestYear, $numStartYear, true) ?>
<th class='l'>2025</th><th>2024</th><th>2023</th><th>2022</th><th>2021</th><th>2020</th><th>2019</th> <?= jahresHeader($numLatestYear, $numStartYear, true) ?>
<th class='l'>2025</th><th>2024</th><th>2023</th><th>2022</th><th>2021</th><th>2020</th><th>2019</th> <?= jahresHeader($numLatestYear, $numStartYear, true) ?>
<th class='l' colspan="2">in Tausend</th><th></th> <?= jahresHeader($numLatestYear, $numStartYear, true) ?>
</tr> <th class='l' colspan="2">in Tausend</th>
</thead> <th></th>
</tr>
</thead>
<tbody> <tbody>
<?php <?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, $strSQL = "SELECT d.Name as Gemeinde,
SUM(UJAHR=2024 AND UKATEGORIE=3) as Leichtverletzt_2024, " . jahresSpaltenSQL('Jahr', $numLatestYear, $numStartYear) . ",
SUM(UJAHR=2023 AND UKATEGORIE=3) as Leichtverletzt_2023, " . jahresSpaltenSQL('Tode', $numLatestYear, $numStartYear, 'UKATEGORIE=1') . ",
SUM(UJAHR=2022 AND UKATEGORIE=3) as Leichtverletzt_2022, " . jahresSpaltenSQL('Schwerverletzt', $numLatestYear, $numStartYear, 'UKATEGORIE=2') . ",
SUM(UJAHR=2021 AND UKATEGORIE=3) as Leichtverletzt_2021, " . jahresSpaltenSQL('Leichtverletzt', $numLatestYear, $numStartYear, 'UKATEGORIE=3') . ",
SUM(UJAHR=2020 AND UKATEGORIE=3) as Leichtverletzt_2020,
SUM(UJAHR=2019 AND UKATEGORIE=3) as Leichtverletzt_2019,
Flaeche, Einwohner, Flaeche, Einwohner,
SUM(UJAHR=2025)/d.Einwohner*1000 as Quote_2025, SUM(UJAHR={$numLatestYear})/d.Einwohner*1000 as Quote_{$numLatestYear},
d.ULAND, d.ULAND, d.UREGBEZ, d.UKREIS, d.UGEMEINDE
d.UREGBEZ,
d.UKREIS,
d.UGEMEINDE
FROM data s, community d FROM data s, community d
WHERE IstRad=1 WHERE IstRad=1
AND d.ULAND=s.ULAND AND d.UREGBEZ=s.UREGBEZ AND d.UKREIS=s.UKREIS AND d.UGEMEINDE=s.UGEMEINDE 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 GROUP BY s.ULAND, s.UREGBEZ, s.UKREIS, s.UGEMEINDE
ORDER BY Quote_2025 DESC ORDER BY Quote_{$numLatestYear} DESC";
";
// --- ORDER BY s.ULAND, s.UREGBEZ, s.UKREIS,s.UGEMEINDE // --- ORDER BY s.ULAND, s.UREGBEZ, s.UKREIS,s.UGEMEINDE
$result=$db->query($strSQL); $result=$db->query($strSQL);
@@ -109,39 +110,16 @@ $result=$db->query($strSQL);
while ($row = $result->fetch(PDO::FETCH_ASSOC)) { while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
echo "<tr>"; echo "<tr>";
echo "<td><a href='gemeinde_details.php?regbez=".$row['UREGBEZ']."&kreis=".$row['UKREIS']."&gemeinde=".$row['UGEMEINDE']."'>".$row['Gemeinde']."</a></td>"; 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 jahresZellen($row, 'Jahr', $numLatestYear, $numStartYear);
echo "<td>".$row['Jahr_2024']."</td>"; echo jahresZellen($row, 'Tode', $numLatestYear, $numStartYear);
echo "<td>".$row['Jahr_2023']."</td>"; echo jahresZellen($row, 'Schwerverletzt', $numLatestYear, $numStartYear);
echo "<td>".$row['Jahr_2022']."</td>"; echo jahresZellen($row, 'Leichtverletzt', $numLatestYear, $numStartYear);
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 "<td class='rechts l'>".$row['Flaeche']."</td>"; echo "<td class='rechts l'>".$row['Flaeche']."</td>";
echo "<td class='rechts'>".round($row['Einwohner']/1000,1)."</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"; echo "</tr>\n";
} }
?> ?>
</tbody> </tbody>
</table> </table>
+2 -1
View File
@@ -2,6 +2,7 @@
require_once("../config.php"); require_once("../config.php");
require_once("../lib/attributes.php"); require_once("../lib/attributes.php");
require_once("functions.php"); require_once("functions.php");
$numLand=5; // NRW $numLand=5; // NRW
$numRegbez=(isset($_GET['regbez'])) ? (int)$_GET['regbez'] : 1; $numRegbez=(isset($_GET['regbez'])) ? (int)$_GET['regbez'] : 1;
$numKreis=(isset($_GET['kreis'])) ? (int)$_GET['kreis'] : 1; $numKreis=(isset($_GET['kreis'])) ? (int)$_GET['kreis'] : 1;
@@ -68,7 +69,7 @@
<div class="col-6"> <div class="col-6">
<h4>Unfallverlauf von <?=$numLatestYear?> bis <?=$numStartYear?></h4> <h4>Unfallverlauf von <?=$numLatestYear?> bis <?=$numStartYear?></h4>
<table class='table table-sm'> <table class='table table-sm'>
<tr><th></th><th>2025</th><th>2024</th><th>2023</th><th>2022</th><th>2021</th><th>2020</th><th>2019</th></tr> <tr><th></th><?= titleYears($numLatestYear, $numStartYear); ?></tr>
<tr><td><?= $arrCategory[1]?></td><?= get_row($resultVerlauf,1) ?></tr> <tr><td><?= $arrCategory[1]?></td><?= get_row($resultVerlauf,1) ?></tr>
<tr><td><?= $arrCategory[2]?></td><?= get_row($resultVerlauf,2) ?></tr> <tr><td><?= $arrCategory[2]?></td><?= get_row($resultVerlauf,2) ?></tr>
<tr><td><?= $arrCategory[3]?></td><?= get_row($resultVerlauf,3) ?></tr> <tr><td><?= $arrCategory[3]?></td><?= get_row($resultVerlauf,3) ?></tr>
+1 -1
View File
@@ -55,7 +55,7 @@
<div class="col-6"> <div class="col-6">
<h4>Unfallverlauf von <?=$numLatestYear?> bis <?=$numStartYear?></h4> <h4>Unfallverlauf von <?=$numLatestYear?> bis <?=$numStartYear?></h4>
<table class='table table-sm'> <table class='table table-sm'>
<tr><th></th><th>2025</th><th>2024</th><th>2023</th><th>2022</th><th>2021</th><th>2020</th><th>2019</th></tr> <tr><th></th><?= titleYears($numLatestYear, $numStartYear) ?></tr>
<tr><td><?= $arrCategory[1]?></td><?= get_row($resultVerlauf,1) ?></tr> <tr><td><?= $arrCategory[1]?></td><?= get_row($resultVerlauf,1) ?></tr>
<tr><td><?= $arrCategory[2]?></td><?= get_row($resultVerlauf,2) ?></tr> <tr><td><?= $arrCategory[2]?></td><?= get_row($resultVerlauf,2) ?></tr>
<tr><td><?= $arrCategory[3]?></td><?= get_row($resultVerlauf,3) ?></tr> <tr><td><?= $arrCategory[3]?></td><?= get_row($resultVerlauf,3) ?></tr>