Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883

    come eseguire una chiamata ad un metodo da una select

    Ciao

    ho una prepared statment che fa una select su una tabella
    questa select ritorna 20 campi circa
    per costruirmi l'oggetto corrispondente a questa query volevo chiamare un metodo esterno al metodo che esegue la select, per fare questo ho scritto questo codice;


    Codice PHP:

    function get_immobili($utente_id)
    {
        include(
    "db_config.php");

        include(
    "bean/immobile.php");

        
    $elenco_immobili = array();

        try {
            
    $query "SELECT $immobile_id
                        ,
    $immobile_contratto
                        ,
    $immobile_categoria
                        ,
    $immobile_tipologia
                        ,
    $immobile_box
                        ,
    $immobile_box_mq
                        ,
    $immobile_giardino
                        ,
    $immobile_giardino_mq
                        ,
    $immobile_prezzo
                        ,
    $immobile_prezzo_nascondi
                        ,
    $immobile_mq
                        ,
    $immobile_numero_locali
                        ,
    $immobile_numero_bagni
                        ,
    $immobile_bagno_finestrato
                        ,
    $immobile_condizioni
                        ,
    $immobile_anno_costruzione
                        ,
    $immobile_stato_al_rogito
                        ,
    $immobile_piano
                        ,
    $immobile_numero_piani
                        ,
    $immobile_riscaldamento
                        ,
    $immobile_spese_condominio_mensili
                        ,
    $immobile_balcone
                        ,
    $immobile_ascensore
                        ,
    $immobile_terrazza
                        ,
    $immobile_descrizione
                        ,
    $immobile_stato
                        ,
    $immobile_regione
                        ,
    $immobile_provincia
                        ,
    $immobile_comune
                        ,
    $immobile_zona
                        ,
    $immobile_zona_altro
                        ,
    $immobile_goole_maps
                        ,
    $immobile_utente_fk    " .
                   
    "FROM immobile WHERE immobile_utente_fk = ? ORDER BY immobile_data ";
            
    //echo "query: " . $query;
            
    if ($stmt $mysqli->prepare($query)) {
                
    $stmt->bind_param("i",$utente_id);    

                
    $stmt->bind_result($immobile_id
                            
    ,$immobile_contratto
                            
    ,$immobile_categoria
                            
    ,$immobile_tipologia
                            
    ,$immobile_box
                            
    ,$immobile_box_mq
                            
    ,$immobile_giardino
                            
    ,$immobile_giardino_mq
                            
    ,$immobile_prezzo
                            
    ,$immobile_prezzo_nascondi
                            
    ,$immobile_mq
                            
    ,$immobile_numero_locali
                            
    ,$immobile_numero_bagni
                            
    ,$immobile_bagno_finestrato
                            
    ,$immobile_condizioni
                            
    ,$immobile_anno_costruzione
                            
    ,$immobile_stato_al_rogito
                            
    ,$immobile_piano
                            
    ,$immobile_numero_piani
                            
    ,$immobile_riscaldamento
                            
    ,$immobile_spese_condominio_mensili
                            
    ,$immobile_balcone
                            
    ,$immobile_ascensore
                            
    ,$immobile_terrazza
                            
    ,$immobile_descrizione
                            
    ,$immobile_stato
                            
    ,$immobile_regione
                            
    ,$immobile_provincia
                            
    ,$immobile_comune
                            
    ,$immobile_zona
                            
    ,$immobile_zona_altro
                            
    ,$immobile_goole_maps
                            
    ,$immobile_utente_fk);

                
    $stmt->execute();
                    
                while (
    $stmt->fetch()) {

    //la chiamata alla build_immobile si può scrivere senza 
    //dove elencare tutti gli attributi? 
    //magari una cosa del tipo build_immobile($stmt)
                    
    $immobile build_immobile($immobile_id
                            
    ,$immobile_contratto
                            
    ,$immobile_categoria
                            
    ,$immobile_tipologia
                            
    ,$immobile_box
                            
    ,$immobile_box_mq
                            
    ,$immobile_giardino
                            
    ,$immobile_giardino_mq
                            
    ,$immobile_prezzo
                            
    ,$immobile_prezzo_nascondi
                            
    ,$immobile_mq
                            
    ,$immobile_numero_locali
                            
    ,$immobile_numero_bagni
                            
    ,$immobile_bagno_finestrato
                            
    ,$immobile_condizioni
                            
    ,$immobile_anno_costruzione
                            
    ,$immobile_stato_al_rogito
                            
    ,$immobile_piano
                            
    ,$immobile_numero_piani
                            
    ,$immobile_riscaldamento
                            
    ,$immobile_spese_condominio_mensili
                            
    ,$immobile_balcone
                            
    ,$immobile_ascensore
                            
    ,$immobile_terrazza
                            
    ,$immobile_descrizione
                            
    ,$immobile_stato
                            
    ,$immobile_regione
                            
    ,$immobile_provincia
                            
    ,$immobile_comune
                            
    ,$immobile_zona
                            
    ,$immobile_zona_altro
                            
    ,$immobile_goole_maps
                            
    ,$immobile_utente_fk);
                    
    $elenco_immobili[] = $immobile;

                    



                }
                
    $stmt -> close();
        } catch (
    Exception $e) {
         
            echo 
    "Messaggio: " $e->getMessage() . "";
            echo 
    "File: " $e->getFile() . "";
            echo 
    "Linea: " $e->getLine();
        }


        
    $mysqli -> close();

        return 
    $elenco_immobili;
    }

    function 
    build_immobile($immobile_id
                            
    ,$immobile_contratto
                            
    ,$immobile_categoria
                            
    ,$immobile_tipologia
                            
    ,$immobile_box
                            
    ,$immobile_box_mq
                            
    ,$immobile_giardino
                            
    ,$immobile_giardino_mq
                            
    ,$immobile_prezzo
                            
    ,$immobile_prezzo_nascondi
                            
    ,$immobile_mq
                            
    ,$immobile_numero_locali
                            
    ,$immobile_numero_bagni
                            
    ,$immobile_bagno_finestrato
                            
    ,$immobile_condizioni
                            
    ,$immobile_anno_costruzione
                            
    ,$immobile_stato_al_rogito
                            
    ,$immobile_piano
                            
    ,$immobile_numero_piani
                            
    ,$immobile_riscaldamento
                            
    ,$immobile_spese_condominio_mensili
                            
    ,$immobile_balcone
                            
    ,$immobile_ascensore
                            
    ,$immobile_terrazza
                            
    ,$immobile_descrizione
                            
    ,$immobile_stato
                            
    ,$immobile_regione
                            
    ,$immobile_provincia
                            
    ,$immobile_comune
                            
    ,$immobile_zona
                            
    ,$immobile_zona_altro
                            
    ,$immobile_goole_maps
                            
    ,$immobile_utente_fk) {

        
    $immobile = new immobile();
        
    $immobile->set_immobile_id($immobile_id);
        
    $immobile->set_immobile_contratto_fk($immobile_contratto_fk);
        
    $immobile->set_immobile_categoria_fk($immobile_categoria_fk);
        
    $immobile->set_immobile_tipologia_fk($immobile_tipologia_fk);
        
    $immobile->set_immobile_box_fk($immobile_box_fk);
        
    $immobile->set_immobile_box_mq($immobile_box_mq);
        
    $immobile->set_immobile_giardino($immobile_giardino);
        
    $immobile->set_immobile_giardino_mq($immobile_giardino_mq);
        
    $immobile->set_immobile_prezzo($immobile_prezzo);
        
    $immobile->set_immobile_prezzo_nascondi($immobile_prezzo_nascondi);
        
    $immobile->set_immobile_mq($immobile_mq);
        
    $immobile->set_immobile_numero_locali($immobile_numero_locali);
        
    $immobile->set_immobile_numero_bagni($immobile_numero_bagni);
        
    $immobile->set_immobile_bagno_finestrato($immobile_bagno_finestrato);
        
    $immobile->set_immobile_condizioni_fk($immobile_condizioni_fk);
        
    $immobile->set_immobile_anno_costruzione($immobile_anno_costruzione);
        
    $immobile->set_immobile_stato_al_rogito_fk($immobile_stato_al_rogito_fk);
        
    $immobile->set_immobile_piano($immobile_piano);
        
    $immobile->set_immobile_numero_piani($immobile_numero_piani);
        
    $immobile->set_immobile_riscaldamento_fk($immobile_riscaldamento_fk);
        
    $immobile->set_immobile_spese_condominio_mensili($immobile_spese_condominio_mensili);
        
    $immobile->set_immobile_balcone($immobile_balcone);
        
    $immobile->set_immobile_ascensore($immobile_ascensore);
        
    $immobile->set_immobile_terrazza($immobile_terrazza);
        
    $immobile->set_immobile_descrizione($immobile_descrizione);
        
    $immobile->set_immobile_stato($immobile_stato);
        
    $immobile->set_immobile_regione($immobile_regione);
        
    $immobile->set_immobile_provincia($immobile_provincia);
        
    $immobile->set_immobile_comune($immobile_comune);
        
    $immobile->set_immobile_zona($immobile_zona);
        
    $immobile->set_immobile_goole_maps($immobile_goole_maps);
        
    $immobile->set_immobile_zona_altro($immobile_zona_altro);
        
    $immobile->set_immobile_data($immobile_data);
        
    $immobile->set_immobile_annuncio_scaduto($immobile_annuncio_scaduto);
        
    $immobile->set_immobile_tipologia_altro_descrizione($immobile_tipologia_altro_descrizione);
        
    $immobile->set_immobile_utente_fk($immobile_utente_fk);
        
        return 
    $immobile;


    volevo sapere se c'è un modo per non dove passare tutti gli attributi al metodo build_immobile, magari il coidice che ho scritto si può scrivere più semplicemente ?

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    nessuna idea o suggerimento?

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.