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

    Return variabile per parametro metodo

    Ciao a tutti.
    Ho un metodo al quale passo una stringa di sql per eseguire una query, crea un' array ed effettua il return della stessa. Quindi una volta lanciato il metodo e valorizzato una variabile, la passo ad un secondo metodo che dovrebbe crearmi le option di una select. Se eseguo un var_damp() dell' array nel primo metodo visualizzo
    array(2) { [0]=> array(2) { [1]=> string(1) "1" [2]=> string(11) "sede legale" } [1]=> array(2) { [1]=> string(1) "2" [2]=> string(13) "punto vendita" } }

    se invece faccio un var_dump() dell' array nel secondo metodo mi viene diverso cosi:
    array(6) { [0]=> string(0) "" [1]=> array(2) { [0]=> array(2) { [1]=> string(1) "1" [2]=> string(11) "sede legale" } [1]=> array(2) { [1]=> string(1) "2" [2]=> string(13) "punto vendita" } } [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" [5]=> string(0) "" }

    Primo metodo:
    Codice PHP:
     public function metodo1($sql)     
    {        
        
    $result mysqli_query($this->_link$sql);        
        
    $get_column $result->fetch_fields();         
        foreach (
    $get_column as $column)         
        {           
           
    $columns[] = $column->name;          
        }         
        
    $i=0;          
        while (
    $row $result->fetch_assoc())          
        {           
            
    $var[] = array(=> $row[$columns[0]], => $row[$columns[1]]);            
            
    $i++;         
        }                 
        
    var_dump($var); //Questo sembrerebbe andare bene perchè trova 2 array      
             
        
    return  $var;                    
    }
    public function 
    metodo2($var)
    {
       
    var_dump($var); //mi dice che ci sono 6 array...

    Quindi dal mio file scrivo:
    Codice PHP:
    $getArray $obj->metodo1("SELECT campo1, campo2 FROM tabella");
    $obj->metodo2($getArray); 
    e vedo che il var dump cambia rispetto a quello eseguito nel primo metodo.
    Spero di essere stato chiaro, 1000 grazie a chi mi aiuta

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Scusa. Ma trattandosi della stessa classe, perché non usi una variabile di classe per trasmettere il risultato ? Secondo me è proprio l'interesse della oop.

    Codice PHP:
    class pippo () {
      private 
    $caio;

      public 
    metodo1($xxxxx) {
        ... 
    il codice
        $this
    ->caio $var;
      }


    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Scusa Badaze, mi sono espresso male, i 2 metodi si trovano in 2 classi diverse. La prima esegue operazioni su DB, la seconda costruisce elementi dei moduli html. Forse potrei provare ad estendere la classe?

  4. #4
    Adesso ho provato a mettere i metodi nella stessa classe, ho ridotto il codice all' osso e pare funzionare, quindi l' errore sta nell' altro codice...


    [/PHP]

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quote Originariamente inviata da camionistaxcaso Visualizza il messaggio
    Scusa Badaze, mi sono espresso male, i 2 metodi si trovano in 2 classi diverse. La prima esegue operazioni su DB, la seconda costruisce elementi dei moduli html. Forse potrei provare ad estendere la classe?
    Nel tuo esempio, metodo1 e metodo2 sono usate da $obj.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quote Originariamente inviata da camionistaxcaso Visualizza il messaggio
    Adesso ho provato a mettere i metodi nella stessa classe, ho ridotto il codice all' osso e pare funzionare, quindi l' errore sta nell' altro codice...


    [/PHP]
    Se passi un array di due posti difficile che php lo cambi in un array di 6.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Nel tuo esempio, metodo1 e metodo2 sono usate da $obj.
    Hai ragione, mi sono sbagliato. Comunque ho cambiato strategia...ci vediamo a breve che mi sono già incagliato

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.