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

    Zend problema con le JOIN

    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

  2. #2
    $this->escape($tag->nometag) è una delle riche che genera errore.
    O $this non è un oggeto, o non lo è $this->tags su cui cicli...

  3. #3
    si, la domanda e' proprio questa: dove sta l'errore nel codice che ho postato?
    nel controller
    Codice PHP:
    $this->view->tags $db->fetchAll($select); 
    dovrebbe fare attribuire all'oggetto tags della view il risultato della query. (e qui mi pare giusto)
    poi probabilmente sbaglio qualcosa o nell'usare la join() nel controller
    o nella view (tagga.phtml) nel prendere gli argomenti.
    qualche idea?

  4. #4
    Probabilmente dovrà essere così
    Codice PHP:
        <td><?php echo $this->escape($tag["nometag"]);?></td> //riga 13
        <td><?php echo $this->escape($tag["nomegioco"]);?></td> //riga14

  5. #5
    Grande Dascos! mi hai salvato dal mal di testa..
    grazie

  6. #6

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.