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