diff --git a/gui/ajax.php b/gui/ajax.php index 77c52dd..0c206de 100644 --- a/gui/ajax.php +++ b/gui/ajax.php @@ -7,41 +7,54 @@ if( $_GET['op'] == 'get-details' && !empty($_GET['mac']) ){ ?>
-

Orari

+

Orari

-
-
-
-
Visibilità per orario
-
-
-
- +
+
+
+
Visibilità per orario
+
+
+
+ +
+
-
-
-
-
-
-
Visibilità per giorno
-
-
-
- +
+
+
+
Visibilità per giorno
+
+
+
+ +
+
-
+ + +
+
+
+
+
Presenza per giorno
+
+
+
+
+
@@ -49,6 +62,60 @@ if( $_GET['op'] == 'get-details' && !empty($_GET['mac']) ){ close(); $mysqli->close(); break; + + + case 'get-presence-per-day': + // Connessione al database + $mysqli = mysqli_connect($config['db_host'], $config['db_user'], $config['db_pass'], $config['db_name']); + + // Errore nella connessione a database + if (mysqli_connect_errno($mysqli)) { + + $result = [ + 'status' => 'ERR', + 'message' => mysqli_connect_error(), + ]; + } else { + // Lettura presenza per giorno + $sql = " + SELECT + DATE_FORMAT(received_at, '%Y-%m-%d') AS giorno, + COUNT(id) AS valore + FROM + `logs` + WHERE + `mac` = ? AND received_at BETWEEN ? AND ? + GROUP BY + DATE_FORMAT(received_at, '%Y-%m-%d') + ORDER BY + received_at ASC"; + + + $stmt = $mysqli->prepare($sql); + + // Errore nella preparazione query + if (!$stmt) { + $result = [ + 'status' => 'ERR', + 'message' => $mysqli->error, + ]; + } else { + if ($stmt->bind_param('sss', $mac, $date_start, $date_end)) { + $mac = $_POST['mac']; + $date_start = $_POST['date_start']; + $date_end = $_POST['date_end']; + + // Esecuzione statement + $stmt->execute(); + + $rs = $stmt->get_result(); + + while ($row = $rs->fetch_assoc()) { + $records[ $row['giorno'] ] = $row; + } + + $result = [ + 'status' => 'OK', + 'records' => (array)$records, + ]; + } + } + } + + echo json_encode($result); + + $stmt->close(); + $mysqli->close(); + break; }