Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Parametro e classe

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555

    Parametro e classe

    In una classe ho questo metodo, tra parentesi il parametro
    Codice PHP:
    function selclienti($sqlsel){

            
    $this->sqlsel $sqlsel ;
            
    $this->sqlsel "select * from tb_clienti where cognome_clienti
            like '
    $_POST[txtclienti]%' order by cognome_clienti
            "
    ;
            return 
    $this->gestclienti->query1($this->sqlsel) ;        

    Questa funziona se non inserisco parametro

    /*se invece voglio inserire parametro io quando la richiamo, mi richiama sempre
    la sql della classe*/
    $rec_cli_giorn_filt = $clclienti->selclienti("select * from tb_clienti where
    idcliente_clienti = '$_REQUEST[txtgiornalieri_cli]'") ;
    $rec_cli_giorn_filt1 = mysql_fetch_array($rec_cli_giorn_filt) ;
    //$t = $rec_cli_giorn_filt1[7] ;

    In pratica vorrei parametrizzare una sql

    grazie

  2. #2
    prova

    codice:
    function selclienti($sqlsel){
    
            global $_POST;      
      
            $this->sqlsel = $sqlsel ;
            $this->sqlsel = "select * from tb_clienti where cognome_clienti
            like '$_POST[txtclienti]%' order by cognome_clienti
            ";
            return $this->gestclienti->query1($this->sqlsel) ;        
    }
    Anche se il codice da te scritto non ha molto senso, cioè, a prescindere dal paramertro della funzione, la variabile $sqlsel della classe viene sempre sovrascritta con la stessa stringa; quindi non ho ben capito il tuo scopo...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    In pratica vorrei avere una sql di default che richiamo sempre e possibilità di cambiarla se dovesse servire

    Cioè se richiamo un metodo vorrei che eseguisse una sql già presente nella classe, lo stesso metodo vorrei utilizzarlo per eseguire sql diverse che indico io però.

  4. #4
    Allora...

    codice:
    function selclienti($sqlsel = NULL){
    
            global $_POST;
    
            if(isset($sqlsel)){
                 $this->sqlsel = $sqlsel ;
            }  
            else{
                 $this->sqlsel = "select * from tb_clienti where cognome_clienti like '$_POST[txtclienti]%' order by cognome_clienti";
            }
    
            return $this->gestclienti->query1($this->sqlsel) ;        
    }
    Questo stando al tuo codice... ^^ In pratica $sqlsel è NULL se non la specifichi nella chiamata, altrimenti viene inizializzata; lo lo script fa un controllo, e se sqlsel è stata inizializzata, esegue quella query.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    Quanto ti voglio bene
    Funziona tutto e ho capito qualcosina in piu'.

    la var global posso anche non scriverla?

    grazie davvero

  6. #6
    Cioè...una sola domanda: ma tu stai facendo programmazione ad oggetti in PHP quando:
    [list=1][*]Non sai usare un costrutto condizionale (come l'if)[*]Ignori che se richiami quella funziona da un'altra funzione a cui arrivano correttamente $_GET, $_POST (etc) devi rendere visibili tali array con il "global"[/list=1]

    ??

    Spero non sia così perchè altrimenti stai andando un po troppo veloce...fai le gare di Formula 1 col triciclo...non è l'ideale
    Administrator of NAMDesign.Net

  7. #7
    Figurati!
    Comunque devi dichiararla perforza la var
    global $_POST;
    altrimenti non puoi usufruire dell'array $_POST all'interno della funzione, come dice LeaderGL. Lo stesso vale per tutte la variabili che vuoi rendere visibili dall'esterno all'interno della funzione, le devi tutte dichiarare global o passarle alla funzione tramite reference (che è più complicato, vedi: http://it2.php.net/manual/en/languag...ences.pass.php).


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.