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

    Estrarre Oggetti da un Array

    E' da un paio di giorni che utilizzo PHP per poter accedere alle informazioni di una Base di Dati gestita da MYSQL.
    Ho generato le classi DAO che permettono l'accesso alla base di dati, il problema che non sono riuscito a risolvere è che quando effettuo una query sul database, la classe dao corrispondente mi restituisce come risultato un array di oggetti, a questo punto dovrei estrarre gli oggetti dall'array, io l'ho fatto utilizzando il metodo parseArrayToObject :


    Codice PHP:

    class PruebaCalendari 
    {
    public 
    $codiCurs;
    public 
    $calDCS;
    public function 
    PruebaCalendari($codiCurs
    {
    $this->codiCurs $codiCurs;
    $this->calDCS CalendariDCS::queryByCodiCurs($codiCurs);

    }
    function 
    parseArrayToObject($arr

    $object = new Calendari(); 
    if (
    is_array($arr) && count($arr)> 0

    foreach (
    $arr as $name=>$value

    $name strtolower(trim($name)); 
    if(!empty(
    $name))

    $object->$name $value
    }

    return 
    $object
    }



    $pc = new PruebaCalendari();
    $calendari $pc->parseArrayToObject($calendari->calDCS); 
    Il problema è che l'oggetto restituito dal metodo parseArrayToObject sembra essere vuoto, ovvero quando cerco di estrarre i valori dell'oggetto mediante i metodi getAttributo() mi restituisce sempre valori nulli!!!

    Riga 8 : mediante il metodo queryByCodiCurs($codiCurs) della classe CalendariDCS si crea un array di oggetti delle classe Calendari.
    Vi copio il codice:

    Codice PHP:
    public static function queryByCodiCurs($value){
    $sql 'SELECT * FROM calendari WHERE codiCurs = ?';
    $sqlQuery = new SqlQuery($sql);
    $sqlQuery->setNumber($value);
    return 
    CalendariDCS::getList($sqlQuery);
    }

    public static function 
    getList($sqlQuery){
    $tab QueryExecutor::execute($sqlQuery);

    $ret = array();
    for(
    $i=0;$i<count($tab);$i++){

    $ret[$i] = CalendariDAO::readRow($tab[$i]);

    }
    return 
    $ret;
    }

    public static function 
    readRow($row){
    $calendari = new Calendari();

    $calendari->setCodiCalendari($row['codiCalendari']);
    $calendari->setCodiCurs($row['codiCurs']);
    $calendari->setData($row['data']);
    $calendari->setEspai($row['espai']);
    $calendari->setHoraInici($row['horaInici']);
    $calendari->setHoraFinal($row['horaFinal']);
    $calendari->setHores($row['hores']);
    $calendari->setObservacio($row['observacio']);

    return 
    $calendari;

    Mi sembra chiaro che il metodo queryByCodiCurs($codiCurs) restituisca un array di oggetti Calendari, quello che non capisco e perché non riesco a visualizzare il contenuto degli oggetti Calendari una volta estratto l'oggetto mediante il metodo parseArrayToObject($arr)


    Un saluto a tutti!

    Flavio

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Se hai in input un array di oggetti, il tuo codice non ha senso. Pretendi di trattare ogni elemento dell'array (cioè ogni oggetto) come se fosse una proprietà di un singolo oggetto. Non è che hai le idee un po' confuse?

  3. #3
    Risolto, grazie dell'aiuto!

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.