[PHP] utilizzo di una classe e delle sue funzioni

Discussione in 'PHP' iniziata da mau90, 2 Agosto 2019.

  1. mau90

    mau90 Nuovo Utente

    Registrato:
    2 Agosto 2019
    Messaggi:
    18
    Mi Piace Ricevuti:
    1
    Punteggio:
    3
    Sesso:
    Maschio
    Salve, ormai da GIORNI ho un problema che non riesco assolutamente a risolvere.

    Premetto che non sono assolutamente esperto di PHP, quindi spero che il mio quesito sia espresso con la giusta terminologia al fine che capiate il mio problema.

    Ho iniziato il progetto che prevede una pagina di registrazione e una di login; una volta loggati si avrà la possibilità di inserire, modificare ed eliminare dei prodotti all'interno di un database su phpMyAdmin (la sto facendo un pochino semplice, ma in realtà il programma è un pochino più complesso)...

    IL MIO PROBLEMA:
    Praticamente ho inserito le varie funzioni (inserisci, modifica, elimina) all'interno di una classe che ho chiamato Edit... queste funzioni io dovrei richiamarle su un'altro file (l'index che gestisce tutto: passa la connessione PDO a tutti i file, richiama il login, il registra ecc), ma non ho la minima idea di come si faccia! mi è stato detto di "richiamare" la classe Edit(e le sue funzioni) all'interno del costruttore, e solo una volta all'interno del costruttore posso utilizzare le funzioni nell'index...

    inserisco degli stralci di codice per farvi capire cosa intendo:

    Edit.php:
    PHP:
    class Edit
    {
        private 
    $conn;
        public function 
    __construct() {
            
    $this->conn = new DBConnection();

        }

        function 
    delete($id){   questa funzione dovrei inserirla dentro uno switch/case che ho creato nell'index
            //elimina elemento dalla tabella
            $sql = "DELETE FROM prodotti WHERE id=:id";
            $query = $this->conn->prepare($sql);
            $query->execute(array('
    :id' => $id));
            if($query->fetch_row){
                header('
    Location: ../?type=h');
            }else{
                echo "Errore";
                var_dump($query);
                die();
            }
    }

    index.php:

    case  '
    delete':
        require_once '
    Controller/Edit.php';
        call_user_func(delete($id)); dovrei richiamare qua la funzione, ma ovviamente call_user_ func non funziona   break;
     
    Ultima modifica di un moderatore: 2 Agosto 2019
  2. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    1.000
    Mi Piace Ricevuti:
    57
    Punteggio:
    48
    Sesso:
    Maschio
    Occupazione:
    Dev Full Stack
    Località:
    IT/SW
    PHP:
    $edit=new Edit();
    call_user_funct_array([$edit,'delete'],[$id]);
    //oppure
    $edit->delete($id);
    In alternativa creare un metodo statico nella class
    PHP:
    public static function Opera(){
         return (new 
    self)
    }
    Nel file dove hai lo switch
    PHP:
    Edit::Opera()->delete($id)
     
    A mau90 piace questo elemento.
  3. mau90

    mau90 Nuovo Utente

    Registrato:
    2 Agosto 2019
    Messaggi:
    18
    Mi Piace Ricevuti:
    1
    Punteggio:
    3
    Sesso:
    Maschio

    GRAZIE MILLE!!! finalmente DOPO UNA SETTIMANA ho risolto!!!
     
Sto caricando...

Condividi questa Pagina