Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Sostituzione valori array

    Salve vorrei rimpiazzare un array,
    Codice PHP:
    $array=array('credits','idcorporation'); 
    con un'altro piu consono al mio utilizzo
    Codice PHP:
    $nuovoArray=array('credits'=>$riga["credits"],'idcorporation'=>$riga["idcorporation"]); 
    Ovviamente non conosco la lughezza del primo array.



    La classe in cui mi serve funziona cosi:
    Codice PHP:
            $user=new classeUser;    //carica l'istanza
    $user->UDID=$udid;        //assegno UDID all'istanza
    $user->getCredits("credits,idcorporation");    //query della classe che ottiene i dati tramite 
    echo $user->stampa("credits");  //stampo il valore
    echo $user->stampa("idcorporation");  //stampo il valore 

    La classe e' la seguente.
    Mi serve per velocizzare delle query
    Codice PHP:
    class classeUser {
        public 
    $UDID=NULL;    
        public 
    $idcorporation=NULL;
        public 
    $credits=NULL;
        public 
    $arrUser= array();

        public function 
    getCredits($dati){
            
    $result=mysql_query ("SELECT $dati  FROM users WHERE udid='{$this->UDID}' LIMIT 1") or die ("Errore query user");
            
    $riga mysql_fetch_array($result) or die ("Errore mysql_fetch_array user");
        
            
    $datiArrayexplode(',',$dati);   //crea un array con i dati inseriti in $dati
        
            ////// VORREI OTTENERE QUESTO
            
    $this->arrUser=array('credits'=>$riga["credits"],'idcorporation'=>$riga["idcorporation"]);    
        }
        
        public function 
    stampa ($num){
        return 
    $this->arrUser[$num];
        }

    Grazie a chi mi darà una mano, e se funzionale spero torni utile ad altri ^_^
    Il Cavaliere dei Sogni

  2. #2
    io vedo che già un errore di fondo...c'è un array di nome $user=array(); e se definisci la classe con lo stesso nome possono verificarsi problemi, meglio chiamarlo ad esempio $arrUser=array(); e nella riga che riempie l'array dal database

    Codice PHP:
    $this->arrUser[] = array($riga["credits"],$riga["idcorporation"]); 
    scrivendo $arrUser[] definisci dinamicamente l'array stesso, cioè aggiungi elementi man mano che aggiungi nuove righe ad esso

  3. #3
    Originariamente inviato da Emulman
    io vedo che già un errore di fondo...
    e se definisci la classe con lo stesso nome possono verificarsi problemi,
    Grazie per il consiglio in effetti non amo le omonimie, creano bug difficili da scovare. Thanks
    Il Cavaliere dei Sogni

  4. #4
    de nada .... e già che ci sono un'altra piccola raccomandazione per rendere più leggibile il listato: per le nomi di variabili e function usa la notazione ungherese chè quella che ho usato poc'anzi fa ne caso della variabile array: invece di chiamarla ArrUser come vedi l'ho chiamata arrUser con la 'a' minuscola tipica della notazione ungherese e con le iniziali di altre parole in maiuscolo: questo aiuta moltissimo nella leggibilità del listato e a rintracciare errori fastidiosi!

  5. #5
    Sono riuscito a fare delle correzioni alla domanda in tempo ora spero sia un po' piu chiaro e leggibile.

    Quello che a me serve e' che questa linea di codice venga creata dinamicamente
    Codice PHP:
    $this->arrUser=array('credits'=>$riga["credits"],'idcorporation'=>$riga["idcorporation"]); 
    E quell'array lo otterrei partendo da una stringa suddivisa da una virgola
    esempio:
    credits,idcorporation,biography,points,playtime
    Il Cavaliere dei Sogni

  6. #6
    Ho fatto tutto. E' funzionante e ve lo condivido.
    Se ci sono brutture ditemi pure che sono niubbo

    codice:
    +------+------+---------------+---------+
    | udid | name | idcorporation | credits |
    +------+------+---------------+---------+
    | 1234 | Miki |      1        |  20000  |
    +------+------+---------------+---------+
    | 3333 | Riki |      3        |  15000  |
    +------+------+---------------+---------+
    | 1999 | Luca |      2        |  14000  |
    +------+------+---------------+---------+
    Codice PHP:
    //la classe preleva/stampa i dati sapendo UDID.
    class classeUser {
        public 
    $UDID=NULL;    
        private 
    $arrUser= array();

        public function 
    getQuery ($dati){
            
    $result=mysql_query ("SELECT $dati FROM users WHERE udid='{$this->UDID}' LIMIT 1") or die ("Errore query classe user");
            
    $riga=mysql_fetch_array($result) or die ("Errore mysql_fetch_array classe user");
        
            
    $arrDati=explode(',',$dati);   //crea un array dalla stringa inserita in $dati
        
            
    foreach ($arrDati as $dato){    
                
    $this->arrUser[$dato] = $riga["{$dato}"];    //assegna all array arrUser la stringa $dati splittata ed il risultato della query in $riga
            
    }
        }
        
        
    //metodo per stampare
        
    public function stampa ($var){        
            echo 
    $this->arrUser[$var];    //stampa il valore dell'array desiderato
        
    }

    Utilizzo:
    Codice PHP:
        $user =new classeUser;    //carica l'istanza
    $user->UDID=1234;        //assegno UDID all'istanza
    $user->getQuery("credits,idcorporation,name");    //definisco la query che andro a fare 
    $user->stampa("name");          //stampa Miki
    $user->stampa("credits");          //stampa 20000
    $user->stampa("idcorporation");    //stampa 1 
    Il Cavaliere dei Sogni

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.