Salve a tutti,
ho scritto un programma in un router che ogni giorno genera un file txt con l'hostname, le ultime cifre l'ip. i mb scaricati, uplodati e totali, una cosa così:
Poi con google chart genero il grafico
Invece che visualizzarli così al volo vorrei importarli in un db mysql per generare statistiche settimanali/mensili oltre che giornaliere ma non so bene come strutturare il db, gli ip sono da 100 a 254 quindi in totale 154 colonne? Avevo in mente di creare una tabella con 365 righe (una per giorno) e 154 colonne (una per ip), probabilmente si può fare meglio.. Sapete darmi qualche dritta? Grazie..
Qui un po' di codice:
ho scritto un programma in un router che ogni giorno genera un file txt con l'hostname, le ultime cifre l'ip. i mb scaricati, uplodati e totali, una cosa così:
HTML:
iPad-di-Mario,254,100,100,200
android-432133,253,50,50,10
etc...
PHP:
function drawChart() {
var data = google.visualization.arrayToDataTable([
['IP', 'DL', 'UP', 'TOT'],
<?php
$file = file("stats--20170315.txt");
foreach ($file as $line) { list($ip,$dl,$up,$tot, ) = explode(",",trim($line));
echo "['$ip | $tot MB', $dl, $up, $tot],\n";
}
?>
]);
Invece che visualizzarli così al volo vorrei importarli in un db mysql per generare statistiche settimanali/mensili oltre che giornaliere ma non so bene come strutturare il db, gli ip sono da 100 a 254 quindi in totale 154 colonne? Avevo in mente di creare una tabella con 365 righe (una per giorno) e 154 colonne (una per ip), probabilmente si può fare meglio.. Sapete darmi qualche dritta? Grazie..
Qui un po' di codice:
PHP:
// Se il database è vuoto
$tabella = $prefixdb . 'anno' . $anno;
$sql = "SELECT data FROM $tabella WHERE id_anno = ?";
$data = $db->Query_select($sql, array(1));
if (!count($data)) {
// Se l'anno è bisestile
if ($bisestile == 1) {
// Inserisco le date
for ($giorni = 1; $giorni <= 31; $giorni++) {
for ($mesi = 1; $mesi <= 12; $mesi++) {
if ($mesi == 2 && $giorni == 30 ||
$mesi == 2 && $giorni == 31 ||
$mesi == 4 && $giorni == 31 ||
$mesi == 6 && $giorni == 31 ||
$mesi == 9 && $giorni == 31 ||
$mesi == 11 && $giorni == 31) { continue; }
$aammgg = $anno . '-' . $mesi . '-' . $giorni;
$sql = "INSERT INTO $tabella (data,mese) VALUES(?,?)";
$data = $db->Query_InsUpd($sql, array($aammgg,$mesi));
}
}
etc...