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

    Disponibilità variabile di una funzione dentro un'altra funzione

    Ciao!
    Come da oggetto (anche se un po' confuso).

    Ho una situazione del genere:

    Codice PHP:
    class prova{

    function 
    prova(){
    $query ="...";
    $result mysql_query($query);
    $id_articolo mysql_insert_id();
    }

    function 
    aggiungi($parametro){
    $query "INSERT INTO tabella2 SET id_articolo='".$id_articolo."'";
    }


    ovviamente la variabile $id_articolo nella seconda funzione è vuota... ho provato a impostarla come globale ma non va...

    Come si fa?
    Disegnatori e romanzieri d'Italia, visitate il mio sito, cerchiamo favolieri dark ed illustratori dark fantasy... http://www.neilgaimania.it

  2. #2

    Re: Disponibilità variabile di una funzione dentro un'altra funzione

    fai diventare id_articolo membro della classe prova.

    EDIT: La stringa sql che crei è errata: sembra un mix tra le sintassi di insert ed update..

  3. #3
    Ok, grazie...

    PS:
    ripassati la sintassi di insert http://dev.mysql.com/doc/refman/5.0/en/insert.html
    Disegnatori e romanzieri d'Italia, visitate il mio sito, cerchiamo favolieri dark ed illustratori dark fantasy... http://www.neilgaimania.it

  4. #4
    Originariamente inviato da pezzo
    ripassati la sintassi di insert http://dev.mysql.com/doc/refman/5.0/en/insert.html
    Ah con mysql..
    ;-)

  5. #5
    Cmq apparte la sintassi mysql.. ti consiglio di non usare le variabili globali, php è fatto apposta per gestire lo stato delle variabili in maniera precisa... Cosa usi php4 o 5 ? Questo è molto importante...
    in php5 farei così...
    se vuoi "condividere" la stessa variabile con più funzioni di una stessa classe, allora dichiarala come proprietà della classe e dalle funzioni ci accedi con $this->nomeproprieta (senza $ !!)

    così:

    class prova{

    public $id_articolo;

    public function get_insert_id(){
    $query ="...";
    $result = mysql_query($query);
    $this->id_articolo = mysql_insert_id();
    }

    public function aggiungi($id_articolo){
    $query = "INSERT INTO tabella2 SET id_articolo='".$id_articolo."'";
    }

    }

    $prova = new prova(); // instanzio l'oggetto della classe di prova
    $prova->aggiungi(123); // inserisco l'id 123
    $prova->get_insert_id(); // setto la proprietà della classe $id_articolo usando $this ec...
    echo($prova->id_articolo); // stampo a video il contenuto della proprietà

    Non l'ho provato questo script però fammi sapere se hai risolto il problema!
    Ciao!

  6. #6
    Grazie mille, ho risolto come mi avete consigliato, ovvero inserendo l'id come attributo della classe.

    Uso php4 e sto avvicinandomi da pochissimo alla programmazione ad oggetti, quindi mi sto sforzando di non usare la logica procedurale e faccio qualche errore.

    Cmq sto cominciando a capire il meccanismo! E mi sembra una metodologia di programmazione molto vantaggiosa!

    Grazie a tutti!
    Disegnatori e romanzieri d'Italia, visitate il mio sito, cerchiamo favolieri dark ed illustratori dark fantasy... http://www.neilgaimania.it

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.