Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Chiarimento su Array

  1. #1

    Chiarimento su Array

    Ciao a tutti,

    sono alle prime armi e sto cercando di imparare studiando vari esempi. In una applicazione ho trovato questa funzione:
    codice:
    function LoadSettings(){
    
         $str_sql = "SELECT
                 SYS_SMTPSERVER,
                 SYS_SMTPUSER,
                 SYS_SMTPPASSWORD,
                 SYS_ASSIGMENTMODE,
                 SYS_PUBLICTICKETSOPENING,
                 SYS_DEFINEDPARAMETERS,
                 SYS_BROADCASTMESSAGES,
                 SYS_DEFAULTPRIORITY,
                 SYS_SMTPSECURITYFLAG,
                 SYS_SMTPPORT,
                 SYS_URLTRACKINGSCREEN,
                 SYS_DEFAULTLANGUAGE,
                 SYS_URLCONFIRMATIONSCREEN,
                 SYS_EMAILACCOUNT,
                 SYS_VERSION
                FROM
                 SYS_SETTINGS
                WHERE
                 SYS_ID = 1021";
                 
         sc_lookup(dataset,$str_sql);
         
         $arr_load = array();
         $arr_load['SYS_SMTPSERVER']            = (!empty({dataset}[0][0]))?{dataset}[0][0]:'';
         $arr_load['SYS_SMTPUSER']              = (!empty({dataset}[0][1]))?{dataset}[0][1]:'';
         $arr_load['SYS_SMTPPASSWORD']          = (!empty({dataset}[0][2]))?{dataset}[0][2]:'';
         $arr_load['SYS_ASSIGMENTMODE']         = (!empty({dataset}[0][3]))?{dataset}[0][3]:'';
         $arr_load['SYS_PUBLICTICKETSOPENING']  = (!empty({dataset}[0][4]))?{dataset}[0][4]:'';
         $arr_load['SYS_DEFINEDPARAMETERS']     = (!empty({dataset}[0][5]))?{dataset}[0][5]:'';
         $arr_load['SYS_BROADCASTMESSAGES']     = (!empty({dataset}[0][6]))?{dataset}[0][6]:'';
         $arr_load['SYS_DEFAULTPRIORITY']       = (!empty({dataset}[0][7]))?{dataset}[0][7]:'';
         $arr_load['SYS_SMTPSECURITYFLAG']      = (!empty({dataset}[0][8]))?{dataset}[0][8]:'';
         $arr_load['SYS_SMTPPORT']              = (!empty({dataset}[0][9]))?{dataset}[0][9]:'';
         $arr_load['SYS_ULTRATRACKINGSCREEN']   = (!empty({dataset}[0][10]))?{dataset}[0][10]:'';
         $arr_load['SYS_DEFAULTLANGUAGE']       = (!empty({dataset}[0][11]))?{dataset}[0][11]:'it_it;it_it';
         $arr_load['SYS_URLCONFIRMATIONSCREEN'] = (!empty({dataset}[0][12]))?{dataset}[0][12]:'';    
         $arr_load['SYS_EMAILACCOUNT']          = (!empty({dataset}[0][13]))?{dataset}[0][13]:'';    
         $arr_load['SYS_VERSION']               = (!empty({dataset}[0][14]))?{dataset}[0][14]:'';    
    
         $_SESSION['ApplicationSettings'] = $arr_load;    
    
     }
    Tralasciando la Select e la macro esterna sc_lookup, avrei bisogno che qualcuno mi aiutasse a capire dettagliatamente cosa fanno le istruzioni di assegnamento sull'array; ad esempio:

    codice:
    $arr_load['SYS_SMTPSERVER']            = (!empty({dataset}[0][0]))?{dataset}[0][0]:'';
    ed in particolare il significato della parte destra.

    Grazie per l'aiuto e buona giornata.
    Gaetano

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Premettiamo che se sei alle prime armi stai sbagliando approccio all'apprendimento.
    Ciò che stai facendo è come se un finlandese decidesse di imparare l'italiano, leggesse qualche cosa di grammatica per avere una prima superficiale idea di cosa sia la lingua e poi si mettesse subito a leggere i Promessi Sposi pensando così di imparare meglio... in realtà troverebbe solo un mucchio di cose incomprensibili perché non le ha viste nella grammatica.

    Detto questo, cosa fa quella funzione sc_lookup sarebbe invece interessante saperlo, ma ad intuito recupera i dati dal database e ne crea un dataset (cit. "MySQL Dataset is a PHP Class that connect to MySQL, retrieve the tables and return it as dataset/recordQL, retrit.").

    Data l'istruzione
    $arr_load['SYS_SMTPSERVER'] = (!empty({dataset}[0][0]))?{dataset}[0][0]:'';
    viene valutato se si sta operando su un dato non vuoto !empty({dataset}[0][0])), se non è vuoto, questo dato si inserisce nella variabile a sinistra del =, altrimenti a tale variabile si associa la stringa vuota.

    $var1 = ($var2 > $var3) ? $var2 : $var3;

    è equivalente a
    if($var2 > $var3) {
    $var1 = $var2;
    } else {
    $var1 = $var3;
    }

  3. #3
    Ciao,

    ti ringrazio per la risposta. In realtà non sono proprio alle prime armi nel mondo della programmazione; ma nei linguaggi che ho usato fino ad oggi quel tipo di assegnazione veniva fatta in modo diverso.

    Per quanto concerne la funzione sc_lookup, è esattamente ciò che pensi. Fa parte di alcune librerie fornite dalla Netmake insieme al Framework che ho acquistato e che valutando.

    Cordiali saluti
    Gaetano

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.