Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [PHP] aiuto return

  1. #1

    [PHP] aiuto return

    Ciao Ragazzi ho bisogno del vostro aiuto in questo frammento di codice:

    Codice PHP:

    class clAnagrafe
    {

        public 
    $AnagrafeID 0;
        public 
    $Nominativo '';
        
        public function 
    save()
        {
            
    $Database = new Database();
            
            
    // connessione db
            
    $Database->connect();
            
            
    $NewID = new clAnagrafe;
            
    $NewID->prelevaID();
            
            if (
    $Increment == $Valore){
                echo 
    "Hello World";
            }else{
            
            
    // preparo la query
            
    $query "INSERT INTO anagrafica 
                        (     AnagrafeID,
                            Nominativo
                        )
                VALUES    (    '
    $Increment',
                            '
    $Nominativo'
                        )"
    ;
                        
            
    // invio la query
            
    $result mysql_query($query);
        
            
    // controllo l'esito
            
    if (!$result) {
                die(
    "Errore nella query $query: " mysql_error());
            }
            
            }
            
    // disconnessione db                    
            
    $Database->disconnect();
            
        }
        
        function 
    prelevaID()
        {
        
            
    $Ultimo_ID "SELECT max(AnagrafeID) as UltimoID FROM anagrafica"
        
            
    $EseguiSql mysql_query($Ultimo_ID);
        
            
    $Valore mysql_fetch_array($EseguiSql);
        
            
    $Increment $Valore["UltimoID"] + 1;
            
            return 
    $Increment;
        
        }

    Allora ho una classe con due metodi (save, prelevaID) il primo metodo che viene svolto è salva ma prima di eseguire la query ovviamente devo procurarmi un id che per vari motivi non posso averlo auto_increment ecco il perchè mi sono scritto il metodo prelevaID il problema è che il metodo prelevaID mi restituisce sempre 0 quindi mi viene stampato a video sempre Hello World.... invece teoricamente mi dovrebbe restituire in questo caso 4 e andare avanti con l'esecuzione della query ed inserire i nuovi dati... come posso risolvere...

    grazie a tutti
    Credo che la voglia di scappare da un paese con ventimila abitanti vuol dire che hai voglia di scappare da te stesso, e credo che da te non ci scappi neanche se sei Eddie Merckx. Credo che non è giusto giudicare la vita degli altri, perché comunque non puoi sapere proprio un ca**o della vita degli altri

  2. #2
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Scusa ma se la funzione $NewID->prelevaID(); restituisce un valore come fai ad utilizzarlo prima della sua assegnazione?
    L'unico modo per utilizzare la variabile $Increment è quella di assegnarla al ritorno della funzione...così $Increment=$NewID->prelevaID(); e solo ora puoi controllarne l'effetivo cambiamento, in quanto $Increment non è una variabile che hai settato globalmente nella classe.

  3. #3
    ciao jcsnake, per la seconda volta mi hai salvato il .........

    grazie mille ancora una volta!!!!
    Credo che la voglia di scappare da un paese con ventimila abitanti vuol dire che hai voglia di scappare da te stesso, e credo che da te non ci scappi neanche se sei Eddie Merckx. Credo che non è giusto giudicare la vita degli altri, perché comunque non puoi sapere proprio un ca**o della vita degli altri

  4. #4
    scusate ancora ma ho ancora un problema con questa classe.... può essere noioso rispondere ma sto imparando e non trovo nulla che mi spiega ciò che serve a me....


    nel codice sopra ho due variabili pubbliche $AnagrafeID e $Nominativo il passaggio del id l'ho risolto con la soluzione di jcsnake adesso non riesco a passare $Nominativo che teoricamente lo dovrei fare da un secondo file con il seguente codice:

    Codice PHP:
    <?php
        
    include "anagrafe.php";
        
    $Anagrafe = new clAnagrafe();
        
    $Anagrafe->Nominativo "pippo";
        
    $Res $Anagrafe->save();
        echo 
    "$Res";
    ?>
    ma quando vado a controllare la tabella il campo nominativo è sempre nullo....

    Dove sbaglio?
    Credo che la voglia di scappare da un paese con ventimila abitanti vuol dire che hai voglia di scappare da te stesso, e credo che da te non ci scappi neanche se sei Eddie Merckx. Credo che non è giusto giudicare la vita degli altri, perché comunque non puoi sapere proprio un ca**o della vita degli altri

  5. #5
    Originariamente inviato da greatciccio
    Dove sbaglio?
    Sbagli nello scope delle variabili.

    All'interno di un metodo di una classe, $Nominativo e' una variabile privata di quel metodo mentre la variabile di classe e' $this->Nominativo.

  6. #6
    Grazie ho capito dove sbagliavo....

    Codice PHP:
            // preparo la query 
            
    $query "INSERT INTO anagrafica  
                        (     AnagrafeID, 
                            Nominativo 
                        ) 
                VALUES    (    '
    $Increment', 
                            '
    $Nominativo
                        )"

    l'ho sostituito con:


    Codice PHP:
            // preparo la query 
            
    $query "INSERT INTO anagrafica  
                        (     AnagrafeID, 
                            Nominativo 
                        ) 
                VALUES    (    '
    $Increment', 
                            '
    $this->Nominativo
                        )"


    e così funziona tutto... grazie dell'aiuto!!!
    Credo che la voglia di scappare da un paese con ventimila abitanti vuol dire che hai voglia di scappare da te stesso, e credo che da te non ci scappi neanche se sei Eddie Merckx. Credo che non è giusto giudicare la vita degli altri, perché comunque non puoi sapere proprio un ca**o della vita degli altri

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 © 2024 vBulletin Solutions, Inc. All rights reserved.