ciao a tutti, e' da un po' che sto cercando di risolvere un problema: non riesco con Zend a far visualizzare una tabella coi risultati di un JOIN tra due tabelle.
dunque le tabelle sono:
codice:
tag(nome, idgioco)
gioco(idgioco, nome, ecc..)
vorrei semplicemente (per iniziare) creare una tabella che indica nome del tag e nome del gioco (il join e' fatto su idgioco). Ho provato in svariati modi (iniziando con un model-controller-view) ma ora sono arrivato a una soluzione semplice che dovrebbe funzionare:
Codice PHP:
//nel controller
public function taggaAction()
{
$localhost='localhost';
$username='postgres';
$pass='xxxxxx';
$dbname='gamebook';
$port='5432';
$params = array('port'=>$port, 'host'=>$localhost, 'username'=>$username, 'password'=>$pass, 'dbname'=>$dbname);
$db = Zend_Db::factory('pdo_pgsql', $params);
$select = $db->select()
->from(array( 't' => 'tag'), array('nometag' => 't.nome'))
->join(array('g' => 'gioco'),'t.idgioco = g.idgioco',array('nomegioco' => 'g.nome') );
$this->view->tags = $db->fetchAll($select);
}
mentre la view tagga.phtml e' cosi'
codice:
<table>
<tr>
<th>Tag</th>
<th>Gioco</th>
<th></th>
</tr>
<?php foreach($this->tags as $tag) : ?>
<tr>
<td><?php echo $this->escape($tag->nometag);?></td> //riga 13
<td><?php echo $this->escape($tag->nomegioco);?></td> //riga14
</tr>
<?php endforeach; ?>
</table>
tutto cio' mi visualizza una tabella di errori
Notice: Trying to get property of non-object in ..tagga.phtml
on line 13 (e 14).
Sicuramente ho capito male l'utilizzo di Zend (forse in tante parti), qualcuno riesce a capire dove sbaglio?
grazie a tutti, scusate per il lungo post