Ricavare e stampare indirizzo ip da array associativo

di il
7 risposte

Ricavare e stampare indirizzo ip da array associativo

Un saluto a tutti,
essendo il mio primo thread dell'anno colgo l'occasione per augurare buon anno a tutti gli utenti del forum.

Vengo subito al punto, avrei necessità di mostrare all'interno un una td il nome della postazione che esegue l'inserimento di un nuovo record nel database mysql, partendo dal presupposto che nel database mysql registro l'ip con questa struttura:
ipadd varchar(15) utf8_general_ci
Volendo recuperare tale dato e stamparlo nel front-end, avevo pensato ad un array associativo, ma non riesco a comprendere come scriverlo e richiamarlo in maniera corretta.
[CODE=php] <?php $idPostazione = [ '192.168.1.10' => 'Postazione A', '192.168.1.11' => 'Postazione B', '192.168.1.12' => 'Postazione C', '192.168.1.13' => 'Postazione D', '192.168.1.14' => 'Postazione E', '192.168.1.15' => 'Postazione F', '192.168.1.16' => 'Postazione G' ]; ?> <tr> <td style="color:yellow; background-color:black;"><b><?php echo strftime("Ore " . '%X <br> %d/%m/%y', date($data_ins));?></b><br><?php echo $comerecuperoilvalore; ?></td> </tr> Mi dareste una mano per favore ?

Grazie anticipatamente

7 Risposte

  • Re: Ricavare e stampare indirizzo ip da array associativo

    Ciao,
    ma parti da una lista statica di IP e poi vuoi sapere a quale postazione corrisponde l'ip?
    se la risposta è si basterà richiamare l'index dell'array:
    
    $idPostazione = [
        '192.168.1.10' => 'Postazione A',
        '192.168.1.11' => 'Postazione B',
        '192.168.1.12' => 'Postazione C',
        '192.168.1.13' => 'Postazione D',
        '192.168.1.14' => 'Postazione E',
        '192.168.1.15' => 'Postazione F',
        '192.168.1.16' => 'Postazione G'
    ];
    ?>
    
    $comerecuperoilvalore = $idPostazione[$rowDB['ipadd']]
    
    ciauz
  • Re: Ricavare e stampare indirizzo ip da array associativo

    In realtà, allo stato attuale lato front-end l'utente visualizza quanto mostrato nell'immagine


    L'ip che viene mostrato viene recuperato in questo modo:
    
    <?php
    while ($row = $res->fetch_array(MYSQLI_ASSOC)) {
    $ipaddress = mysqli_real_escape_string($mysqli, $row['ipadd']);
    
    per poi essere stampato con questo codice:

    <tr>
    <td style="color:yellow; background-color:black;"><b><?php echo strftime("Ore " . '%X <br> %d/%m/%y', date($data_ins));?></b><br><?php echo $ipaddress; ?></td>
    </tr>

    Ho provato il codice che gentilmente mi è stato suggerito ma senza successo, premetto che, non sono un programmatore ma un appassionato, sto lavorando su un codice scritto più di 5 anni fa non object oriented, e provo a metterci tutto l'impegno per risolvere problemi anche se solo per forte passione, vi specifico questo perchè devo essere intellettualmente onesto verso chi mi supporta nel mio percorso e ha la pazienza di rispondere anche alle mie domande che per gli addetti ai lavori potrebbero sembrare assurde e fuori luogo.

    Grazie
  • Re: Ricavare e stampare indirizzo ip da array associativo

    Ciao,
    per recuperare il valore di ciò che hai scritto:
    
    $idPostazione = [
        '192.168.1.10' => 'Postazione A',
        '192.168.1.11' => 'Postazione B',
        '192.168.1.12' => 'Postazione C',
        '192.168.1.13' => 'Postazione D',
        '192.168.1.14' => 'Postazione E',
        '192.168.1.15' => 'Postazione F',
        '192.168.1.16' => 'Postazione G'
    ];
    
    Esempio pratico e banale:
    
    $val_01=$idPostazione['192.168.1.10'];
    $val_02=$idPostazione['192.168.1.11'];
    $val_03=$idPostazione['192.168.1.12'];
    $val_04=$idPostazione['192.168.1.13'];
    
    Quindi in $val_01 avrai come valore Postazione A.

    il '192.168.1.10' è la chiave dell'array e 'Postazione A' è il valore!

    Se li devi ciclare potresti fare un foreach!

    Ciao
  • Re: Ricavare e stampare indirizzo ip da array associativo

    Un grazie di cuore a tutti gli intevenuti nella discussione, partendo dallo spunto fornito e considerando che gli utenti non possono cambiare l'indirizzo IP del loro PC, ho risolto in questo modo:

    Posto il codice magari potrebbe un giorno servire a qualcuno:
    
    <?php
    if (trim(mysqli_real_escape_string($mysqli, $row['ipadd']))=='192.168.1.10'){
            $ipaddress = 'Postazione A'."<br>".mysqli_real_escape_string($mysqli, $row['ipadd']);
        }elseif (trim(mysqli_real_escape_string($mysqli, $row['ipadd']))=='192.168.1.11') {
            $ipaddress = 'Postazione B'."<br>".mysqli_real_escape_string($mysqli, $row['ipadd']);
            }elseif (trim(mysqli_real_escape_string($mysqli, $row['ipadd']))=='192.168.1.12') {
                $ipaddress = 'Postazione C'."<br>".mysqli_real_escape_string($mysqli, $row['ipadd']);
                }elseif (trim(mysqli_real_escape_string($mysqli, $row['ipadd']))=='192.168.1.13') {
                    $ipaddress = 'Postazione D'."<br>".mysqli_real_escape_string($mysqli, $row['ipadd']);
                    }elseif (trim(mysqli_real_escape_string($mysqli, $row['ipadd']))=='192.168.1.14') {
                        $ipaddress = 'Postazione E'."<br>".mysqli_real_escape_string($mysqli, $row['ipadd']);
                        }elseif (trim(mysqli_real_escape_string($mysqli, $row['ipadd']))=='192.168.1.15') {
                            $ipaddress = 'Postazione F'."<br>".mysqli_real_escape_string($mysqli, $row['ipadd']);
                            }elseif (trim(mysqli_real_escape_string($mysqli, $row['ipadd']))=='192.168.1.17') {
                                $ipaddress = 'Postazione G'."<br>".mysqli_real_escape_string($mysqli, $row['ipadd']);
                            }else{
                                $ipaddress = 'Ip che ha registrato - '."<br>".mysqli_real_escape_string($mysqli, $row['ipadd']);
                            }
    ?>
    
    A presto
  • Re: Ricavare e stampare indirizzo ip da array associativo

    Ottimo.

    Quindi cicli un risultato di una query e confronti. Hai messo anche il trim per togliere gli eventuali spazi.

    Bene...
  • Re: Ricavare e stampare indirizzo ip da array associativo

    areasviluppo ha scritto:


    Un grazie di cuore a tutti gli intevenuti nella discussione, partendo dallo spunto fornito e considerando che gli utenti non possono cambiare l'indirizzo IP del loro PC, ho risolto in questo modo:

    Posto il codice magari potrebbe un giorno servire a qualcuno:
    
    <?php
    if (trim(mysqli_real_escape_string($mysqli, $row['ipadd']))=='192.168.1.10'){
            $ipaddress = 'Postazione A'."<br>".mysqli_real_escape_string($mysqli, $row['ipadd']);
        }elseif (trim(mysqli_real_escape_string($mysqli, $row['ipadd']))=='192.168.1.11') {
            $ipaddress = 'Postazione B'."<br>".mysqli_real_escape_string($mysqli, $row['ipadd']);
            }elseif (trim(mysqli_real_escape_string($mysqli, $row['ipadd']))=='192.168.1.12') {
                $ipaddress = 'Postazione C'."<br>".mysqli_real_escape_string($mysqli, $row['ipadd']);
                }elseif (trim(mysqli_real_escape_string($mysqli, $row['ipadd']))=='192.168.1.13') {
                    $ipaddress = 'Postazione D'."<br>".mysqli_real_escape_string($mysqli, $row['ipadd']);
                    }elseif (trim(mysqli_real_escape_string($mysqli, $row['ipadd']))=='192.168.1.14') {
                        $ipaddress = 'Postazione E'."<br>".mysqli_real_escape_string($mysqli, $row['ipadd']);
                        }elseif (trim(mysqli_real_escape_string($mysqli, $row['ipadd']))=='192.168.1.15') {
                            $ipaddress = 'Postazione F'."<br>".mysqli_real_escape_string($mysqli, $row['ipadd']);
                            }elseif (trim(mysqli_real_escape_string($mysqli, $row['ipadd']))=='192.168.1.17') {
                                $ipaddress = 'Postazione G'."<br>".mysqli_real_escape_string($mysqli, $row['ipadd']);
                            }else{
                                $ipaddress = 'Ip che ha registrato - '."<br>".mysqli_real_escape_string($mysqli, $row['ipadd']);
                            }
    ?>
    
    A presto
    Già la vita del programmatore è difficile...perchè complicarla ancora di più...

    Al posto tuo avrei creato una tabella in msql dove memorizzare le info sulle postazioni:
    CREATE TABLE `tbl_postazioni` (
      `ip` char(15) NOT NULL,
      `nome_postazione` char(50) NOT NULL
    ) 
    Successivamente direttamente tramite query sql, mettendo in JOIN le due tabelle hai anche il nome delle postazioni.

    Saluti
  • Re: Ricavare e stampare indirizzo ip da array associativo

    Ciao fuxas,
    grazie per la risposta, sicuramente sarebbe stato più funzionale ma per l'esigenza che avevo io diciamo che la soluzione proposta da cali è risultata più che perfetta, alla fin fine le postazioni sono sempre le stesse cosi come anche gli indirizzi ip.

    Ad ogni modo non posso far altro che ringraziarti per l'intervento, devo dire che sul forum ho virtualmente conosciuto persone di buon cuore e estremamente competenti.
Devi accedere o registrarti per scrivere nel forum
7 risposte