Il file rete.php genera una visualizzazione organizzata per reparti dell'intera infrastruttura di rete, con:
Ecco il codice completo del file rete.php:
query($query);
// 2. Classificazione per reparto
$reparti = [
'Infrastruttura' => [],
'Progettazione' => [],
'Produzione' => [],
'Amministrazione' => []
];
while ($device = $result->fetch_assoc()) {
$funzionalita = strtolower($device['Funzionalita'] ?? '');
if (in_array($device['Tipo_Dispositivo'], ['Router', 'Server'])) {
$reparti['Infrastruttura'][] = $device;
} elseif (strpos($funzionalita, 'progettazione') !== false) {
$reparti['Progettazione'][] = $device;
} elseif (strpos($funzionalita, 'produzione') !== false) {
$reparti['Produzione'][] = $device;
} elseif (strpos($funzionalita, 'amministrazione') !== false) {
$reparti['Amministrazione'][] = $device;
}
}
// 3. Calcolo statistiche
$stats = [];
foreach ($reparti as $nome => $dispositivi) {
$stats[$nome] = [
'pc' => count(array_filter($dispositivi, fn($d) => $d['Tipo_Dispositivo'] === 'PC')),
'stampanti' => count(array_filter($dispositivi, fn($d) => $d['Tipo_Dispositivo'] === 'Stampante')),
'online' => count(array_filter($dispositivi, fn($d) => $d['Stato'] === 'Online'))
];
}
// 4. Visualizzazione HTML
?>
La prima parte del codice si occupa di recuperare i dati dal database e organizzarli in una struttura logica:
// Query per ottenere tutti i dispositivi con informazioni aggiuntive
$query = "SELECT d.*, i.Funzionalita, i.Porta
FROM dispositivi d
LEFT JOIN info i ON d.ID_D = i.ID_D
ORDER BY d.Tipo_Dispositivo";
$result = $conn->query($query);
// Struttura per classificare i dispositivi
$reparti = [
'Infrastruttura' => [],
'Progettazione' => [],
'Produzione' => [],
'Amministrazione' => []
];
dispositivi e info per avere un quadro completoIl cuore della logica di rete.php è l'algoritmo che classifica ogni dispositivo nel reparto appropriato:
while ($device = $result->fetch_assoc()) {
$funzionalita = strtolower($device['Funzionalita'] ?? '');
if (in_array($device['Tipo_Dispositivo'], ['Router', 'Server'])) {
$reparti['Infrastruttura'][] = $device;
} elseif (strpos($funzionalita, 'progettazione') !== false) {
$reparti['Progettazione'][] = $device;
} elseif (strpos($funzionalita, 'produzione') !== false) {
$reparti['Produzione'][] = $device;
} elseif (strpos($funzionalita, 'amministrazione') !== false) {
$reparti['Amministrazione'][] = $device;
}
}
Un dispositivo con Funzionalita = "PC progettazione1" verrà classificato nel reparto Progettazione.
La parte finale del codice genera l'output HTML organizzato per reparti:
// Per ogni reparto
foreach ($reparti as $nome => $dispositivi) {
echo "<div class='reparto-section'>";
echo "<h3>$nome</h3>";
// Statistiche reparto
echo "<div class='stats'>";
echo "PC: {$stats[$nome]['pc']}, Stampanti: {$stats[$nome]['stampanti']}, Online: {$stats[$nome]['online']}";
echo "</div>";
// Dispositivi
foreach ($dispositivi as $device) {
echo "<div class='device-card {$device['Stato']}'>";
echo "<h4>{$device['Funzionalita']}</h4>";
echo "<p>IP: {$device['Indirizzo_IP']}</p>";
echo "<p>Stato: {$device['Stato']}</p>";
echo "</div>";
}
echo "</div>";
}