Panoramica di rete.php

Il file rete.php genera una visualizzazione organizzata per reparti dell'intera infrastruttura di rete, con:

  • Classificazione automatica dei dispositivi in base alla loro funzionalità
  • Statistiche riepilogative per ogni reparto
  • Visualizzazione grafica dello stato della rete
  • Dettaglio completo per ogni dispositivo
Questo file dimostra un approccio efficace per organizzare e presentare dati di rete complessi in modo intuitivo.

Codice Completo

Ecco il codice completo del file rete.php:

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
?>



    


    


Recupero e Organizzazione dei Dati

La prima parte del codice si occupa di recuperare i dati dal database e organizzarli in una struttura logica:

Codice Chiave
// 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' => []
];
Spiegazione
  • JOIN tra tabelle: Combina dati da dispositivi e info per avere un quadro completo
  • LEFT JOIN: Garantisce che tutti i dispositivi vengano mostrati anche se mancano info aggiuntive
  • Struttura $reparti: Array predefinito che assicura un ordine consistente nella visualizzazione
  • Ordinamento: I dispositivi sono ordinati per tipo per un processing più efficiente

Classificazione dei Dispositivi

Il cuore della logica di rete.php è l'algoritmo che classifica ogni dispositivo nel reparto appropriato:

Algoritmo di Classificazione
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;
    }
}
Logica di Classificazione
  1. Dispositivi infrastrutturali: Router e Server vanno in una categoria speciale
  2. Analisi del campo Funzionalita: Cerca parole chiave come "progettazione", "produzione", etc.
  3. Case insensitive: Convertito in minuscolo per uniformità
  4. Ordine dei controlli: Prima l'infrastruttura, poi i reparti specifici
Esempio di Classificazione

Un dispositivo con Funzionalita = "PC progettazione1" verrà classificato nel reparto Progettazione.

Visualizzazione della Rete

La parte finale del codice genera l'output HTML organizzato per reparti:

Generazione HTML
// 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>";
}
Struttura della Visualizzazione
  • Sezioni per reparto: Ogni reparto ha una sezione dedicata
  • Statistiche in evidenza: Mostra conteggio PC, stampanti e dispositivi online
  • Card dispositivo
  • : Ogni dispositivo è rappresentato da una card con informazioni essenziali
  • Stato visivo
  • : Le card hanno stili diversi per dispositivi online/offline

Collegamento alla Visualizzazione Rete

Puoi accedere alla visualizzazione della rete funzionante tramite il seguente link: http://localhost/gestione_rete/rete.php

Sistema di Gestione Rete Aziendale © 2025