display huge graphics

This commit is contained in:
Göran Heinemann 2020-03-10 21:11:04 +01:00
parent 72ec45df44
commit c6e60e6579
3 changed files with 286 additions and 75 deletions

View File

@ -1,73 +1,227 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="60">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<title>Info an Coronavirus</title>
</head>
<body>
<?php
include '../config.php';
$sql = "SELECT * FROM sites WHERE active=1";
//grafik
$sql = "SELECT scans.id, place, amount, time FROM `data` inner join scans on scans.id=data.scan WHERE place like 'Germany' group by amount order by time asc ";
$stmt = $pdo->query($sql);
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>
echo '<table>';
foreach ($pdo->query($sql) as $row){
echo '<tr><td><a href="index.php?source='.$row['id'].'&type='.$row['type'].'">'.$row['title'].'</a></td><td>'.$row['link'].'</td></tr>';
}
<div class="container" style="height: 1000px; width: 100%; position: relative">
<canvas id="germany-chart" style="height: 100%; width: 100%"></canvas>
</div>
if (isset($_GET['source'])){
if (!isset($_GET['time'])){
$sql = "SELECT * FROM scans WHERE site=? order by id desc";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(1, $_GET['source']);
$stmt->execute();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo '<table>';
foreach ($data as $row){
echo '<tr><td><a href="index.php?source='.$_GET['source'].'&time='.$row['id'].'&type='.$_GET['type'].'">'.$row['time'].'</a></td></tr>';
}
echo '</table>';
}else{
if (isset($_GET['type'])){
if ($_GET['type'] == 'csv'){
$sql = "SELECT content FROM scans WHERE id=?";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(1, $_GET['time']);
$stmt->execute();
$csv = $stmt->fetchAll(PDO::FETCH_ASSOC)[0]['content'];
$test = str_getcsv($csv, ",", "\"", "\\");
echo '<pre>';
var_dump($test);
echo '</pre>';
echo '<table>';
for ($i = 0; $i < count($test); $i++){
if ($i+1 % 12 == 0){
echo '</tr><tr>';
<script>
let myChart = document.getElementById('germany-chart').getContext('2d');
// Global Options
Chart.defaults.global.defaultFontFamily = 'Lato';
Chart.defaults.global.defaultFontSize = 18;
Chart.defaults.global.defaultFontColor = '#777';
let massPopChart = new Chart(myChart, {
type:'bar', // bar, horizontalBar, pie, line, doughnut, radar, polarArea
data:{
labels:[
<?php
for ($i = 0 ; $i < count($data); $i++){
if ($i == 0){
echo "'".$data[$i]['time']."'";
}else{
echo ', \''.$data[$i]['time']."'";
}
echo '<td>'.$test[$i].'</td>';
}
echo'<table>';
}else{
if ($_GET['type'] == 'html');
$sql = "SELECT * FROM data WHERE scan=? order by amount desc";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(1, $_GET['time']);
$stmt->execute();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo '<table>';
echo '<tr><th>id</th><th>Scan-No</th><th>Place</th><th>infected</th><th>dead</th><th>active</th><th>cured</th></tr>';
foreach ($data as $row){
echo '<tr>';
echo '<td>'.$row['id'].'</td><td>'.$row['scan'].'</td><td><a href="laender.php?land='.$row['place'].'">'.$row['place'].'</a></td><td>'.$row['amount'].'</td><td>'.$row['deaths'].'</td><td>'.$row['active'].'</td><td>'.$row['cured'].'</td>';
echo '</tr>';
?>
],
datasets:[{
label:'Anzahl',
data:[
<?php
for ($i = 0 ; $i < count($data); $i++){
if ($i == 0){
echo "".$data[$i]['amount']."";
}else{
echo ', '.$data[$i]['amount']."";
}
}
?>
],
//backgroundColor:'green',
backgroundColor:[
/*'rgba(255, 99, 132, 0.6)',
'rgba(54, 162, 235, 0.6)',
'rgba(255, 206, 86, 0.6)',
'rgba(75, 192, 192, 0.6)',
'rgba(153, 102, 255, 0.6)',
'rgba(255, 159, 64, 0.6)',
'rba(255, 99, 132, 0.6)'*/
],
borderWidth:1,
borderColor:'#777',
hoverBorderWidth:3,
hoverBorderColor:'#000'
}]
},
options:{
responsive: false,
maintainAspectRatio: false,
title:{
display:true,
text:'Anzahl der Infektionsfälle in Deutschland',
fontSize:25
},
legend:{
display:true,
position:'right',
labels:{
fontColor:'#000'
}
echo '</table>';
},
layout:{
padding:{
left:0,
right:0,
bottom:0,
top:0
},
},
tooltips:{
enabled:true
}
}else{
$sql = "SELECT * FROM data WHERE scan=?";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(1, $_GET['time']);
$stmt->execute();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo '<table>';
foreach ($data as $row){
echo '<tr><td>'.$row['place'].'</td><td>'.$row['amount'].'</td></tr>';
}
echo '</table>';
}
}
}
});
</script>
<?php
//Tabelle
$sql = "SELECT * FROM data where scan = (select MAX(scans.id) from scans inner join data on data.scan=scans.id where site=1) order by amount desc";
echo '<h2>Fallzahlen in Deutschland - Nach Robert Koch Institut</h2>';
echo '<table style="width: 50%">';
echo '<tr><th>Platz</th><th>Land</th><th>kumulative Fallzahl</th></tr>';
$i = 1;
foreach ($pdo->query($sql) as $row){
echo '<tr><td>'.$i.'</td><td>'.str_replace("D-", "", $row['place']).'</td><td>'.$row['amount'].'</td></tr>';
$i++;
}
echo '</table>';
//grafik
$sql = "SELECT scans.id, place, amount, time FROM `data` inner join scans on scans.id=data.scan WHERE place like '%total%' group by amount order by time asc ";
$stmt = $pdo->query($sql);
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>
<div class="container" style="height: 1000px; width: 100%; position: relative">
<canvas id="total-chart" style="width: 100%; height: 100%"></canvas>
</div>
<script>
let my2ndChart = document.getElementById('total-chart').getContext('2d');
// Global Options
Chart.defaults.global.defaultFontFamily = 'Lato';
Chart.defaults.global.defaultFontSize = 18;
Chart.defaults.global.defaultFontColor = '#777';
let massPopChart2 = new Chart(my2ndChart, {
type:'bar', // bar, horizontalBar, pie, line, doughnut, radar, polarArea
data:{
labels:[
<?php
for ($i = 0 ; $i < count($data); $i++){
if ($i == 0){
echo "'".$data[$i]['time']."'";
}else{
echo ', \''.$data[$i]['time']."'";
}
}
?>
],
datasets:[{
label:'Anzahl',
data:[
<?php
for ($i = 0 ; $i < count($data); $i++){
if ($i == 0){
echo "".$data[$i]['amount']."";
}else{
echo ', '.$data[$i]['amount']."";
}
}
?>
],
//backgroundColor:'green',
backgroundColor:[
/*'rgba(255, 99, 132, 0.6)',
'rgba(54, 162, 235, 0.6)',
'rgba(255, 206, 86, 0.6)',
'rgba(75, 192, 192, 0.6)',
'rgba(153, 102, 255, 0.6)',
'rgba(255, 159, 64, 0.6)',
'rba(255, 99, 132, 0.6)'*/
],
borderWidth:1,
borderColor:'#777',
hoverBorderWidth:3,
hoverBorderColor:'#000'
}]
},
options:{
responsive: false,
maintainAspectRatio: false,
title:{
display:true,
text:'Anzahl der Infektionsfälle Weltweit',
fontSize:25
},
legend:{
display:true,
position:'right',
labels:{
fontColor:'#000'
}
},
layout:{
padding:{
left:0,
right:0,
bottom:0,
top:0
},
},
tooltips:{
enabled:true
}
}
});
</script>
<?php
$sql = "SELECT * FROM data where scan = (select MAX(scans.id) from scans inner join data on data.scan=scans.id where site=2) order by active desc limit 50";
echo '<h2>Weltweite Daten - Top 50</h2>';
echo '<table style="width: 100%">';
echo '<tr><th>Platz</th><th>Land</th><th>Aktive Fälle</th><th>kumulative Fallzahl</th><th>geheilte</th><th>Todesfälle</th></tr>';
$i = 1;
foreach ($pdo->query($sql) as $row){
echo '<tr><td>'.$i.'</td><td>'.$row['place'].'</td><td>'.$row['active'].'</td><td>'.$row['amount'].'</td><td>'.$row['cured'].'</td><td>'.$row['deaths'].'</td></tr>';
$i++;
}
echo '</table>';
?>
</body>
</html>

View File

@ -1,18 +1,73 @@
<?php
include '../config.php';
echo 'Stand in Deutschland:';
$sql = "SELECT * FROM sites WHERE active=1";
$sql = "SELECT id, place, amount FROM `data` WHERE scan=(SELECT MAX(id) FROM `scans` WHERE site=1) and place like 'D-%' ORDER BY amount DESC";
echo '<table>';
foreach ($pdo->query($sql) as $row){
echo '<tr><td>'.str_replace("D-", "", $row['place']).'</td><td>'.$row['amount'].'</td></tr>';
echo '<tr><td><a href="index.php?source='.$row['id'].'&type='.$row['type'].'">'.$row['title'].'</a></td><td>'.$row['link'].'</td></tr>';
}
echo '<table>';
echo '<br><br>';
$sql = "SELECT id, place, amount FROM `data` WHERE scan=(SELECT MAX(id) FROM `scans` WHERE site=2) ORDER BY amount DESC";
echo '<table>';
foreach ($pdo->query($sql) as $row){
echo '<tr><td>'.$row['place'].'</td><td>'.$row['amount'].'</td></tr>';
}
echo '<table>';
if (isset($_GET['source'])){
if (!isset($_GET['time'])){
$sql = "SELECT * FROM scans WHERE site=? order by id desc";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(1, $_GET['source']);
$stmt->execute();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo '<table>';
foreach ($data as $row){
echo '<tr><td><a href="index.php?source='.$_GET['source'].'&time='.$row['id'].'&type='.$_GET['type'].'">'.$row['time'].'</a></td></tr>';
}
echo '</table>';
}else{
if (isset($_GET['type'])){
if ($_GET['type'] == 'csv'){
$sql = "SELECT content FROM scans WHERE id=?";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(1, $_GET['time']);
$stmt->execute();
$csv = $stmt->fetchAll(PDO::FETCH_ASSOC)[0]['content'];
$test = str_getcsv($csv, ",", "\"", "\\");
echo '<pre>';
var_dump($test);
echo '</pre>';
echo '<table>';
for ($i = 0; $i < count($test); $i++){
if ($i+1 % 12 == 0){
echo '</tr><tr>';
}
echo '<td>'.$test[$i].'</td>';
}
echo'<table>';
}else{
if ($_GET['type'] == 'html');
$sql = "SELECT * FROM data WHERE scan=? order by amount desc";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(1, $_GET['time']);
$stmt->execute();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo '<table>';
echo '<tr><th>id</th><th>Scan-No</th><th>Place</th><th>infected</th><th>dead</th><th>active</th><th>cured</th></tr>';
foreach ($data as $row){
echo '<tr>';
echo '<td>'.$row['id'].'</td><td>'.$row['scan'].'</td><td><a href="laender.php?land='.$row['place'].'">'.$row['place'].'</a></td><td>'.$row['amount'].'</td><td>'.$row['deaths'].'</td><td>'.$row['active'].'</td><td>'.$row['cured'].'</td>';
echo '</tr>';
}
echo '</table>';
}
}else{
$sql = "SELECT * FROM data WHERE scan=?";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(1, $_GET['time']);
$stmt->execute();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo '<table>';
foreach ($data as $row){
echo '<tr><td>'.$row['place'].'</td><td>'.$row['amount'].'</td></tr>';
}
echo '</table>';
}
}
}

View File

@ -43,7 +43,7 @@ foreach ($data as $scan){
for ($i = 0; $i < $parts->length; $i++) {
$country = array();
$p2 = $parts[$i]->childNodes;
$country[] = $p2[0]->textContent;
$country[] = trim($p2[0]->textContent);
/*for ($j=0; $j < $p2->length; $j++){
var_dump($p2[$j]->textContent);
}*/
@ -52,6 +52,8 @@ foreach ($data as $scan){
$deaths = $p2[$deathsCol]->textContent;
$recovered = $p2[$recoveredCol]->textContent;
$active = $p2[$activeCol]->textContent;
//var_dump($activeCol);
//var_dump($p2);
$country[] = intval(str_replace(",", "", $p2[2]->textContent));
$country[] =intval(str_replace(",", "", $deaths));
$country[] =intval(str_replace(",", "", $active));