Hello Everyone,

I have a few database tables that I need to relate to each other. I have it setup like this

isp_partners (primary key isp_id)
isp_partners_aux (primary key isp_id, related by isp_id)
keywords (primary key kw_id, related by ws_id)
websites (primary key ws_id, related by isp_id)

Now I have it working for the websites and keywords but cannot get the isp_partners_aux to work. The issue seems to be that when I do the findDependantRowset it does not get any data from the isp_partners_aux table, rather it only contains the data from the isp_partners table. There is only 1 row in each table that will match. The aux table is just an external table that holds data about isp_partners such as the username, etc. Below is my controller followed by my model classes and then the output.

<?php
class KeywordsController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    }

    public function indexAction()
    {
        $this->view->headTitle('Keyword Management', 'APPEND');
        $partners       = new Model_DbTable_ISPPartners();
        $partners_aux   = new Model_DbTable_ISPPartnersAux();
        $websites       = new Model_DbTable_ISPWebsites();
        $keywords       = new Model_DbTable_ISPKeywords();
                
        $partner = $partners->fetchRow("code = 'red'");
$results = $partner->findManyToManyRowset($keywords, $websites);
        $aux_data = $partner->findDependentRowset($partners_aux);
        //echo '<pre>'.print_r($results, true).'</pre>'; exit;
        echo '<pre>'.print_r($aux_data, true).'</pre>'; exit;
        $this->view->results = $results;
        
    }
}

<?php

/**
 * ISPPartners
 *
 * @author jcrawford
 * @version
 */

class Model_DbTable_ISPPartners extends Zend_Db_Table_Abstract {
        /**
         * The default table name
         */
        protected $_name = 'isp_partners';
        protected $_primary = array('isp_id');
        
protected $_dependantTables = array('Model_DbTable_ISPWebsites', 'Model_DbTable_ISPPartnersAux');
}

<?php
class Model_DbTable_ISPPartnersAux extends Zend_Db_Table_Abstract
{
        /**
         * The default table name
         */
        protected $_name = 'isp_partners';
        protected $_primary = array('isp_id');
        
        protected $_referenceMap = array(
                'Partner'       =>   array(
                        'columns'                       =>   array('isp_id'),
                        'refTableClass'         =>   
'Model_DbTable_ISPPartners',
                        'refColumns'            =>   array('isp_id')
                )
        );
        
}

<?php
// application/models/DbTable/Guestbook.php

/**
 * This is the DbTable class for the guestbook table.
 */
class Model_DbTable_ISPKeywords extends Zend_Db_Table_Abstract
{
        /** Table name */
        protected $_name    = 'isp_keywords';
        protected $_primary = array('kw_id');

        protected $_dependantTables = array('Model_DbTable_ISPWebsites');
        
        protected $_referenceMap = array(
                'Websites'      =>   array(
                        'columns'                       =>   array('ws_id'),
                        'refTableClass'         =>   
'Model_DbTable_ISPWebsites',
                        'refColumns'            =>   array('ws_id')
                )
        );
}

<?php

/**
 * ISPWebsites
 *
 * @author jcrawford
 * @version
 */

class Model_DbTable_ISPWebsites extends Zend_Db_Table_Abstract {
        /**
         * The default table name
         */
        protected $_name = 'isp_websites';
        protected $_primary = array('ws_id');

        protected $_referenceMap = array(
                'Keywords'      =>   array(
                        'columns'                       =>   array('ws_id'),
                        'refTableClass'         =>   
'Model_DbTable_ISPKeywords',
                        'refColumns'            =>   array('ws_id')
                ),
                'Partner'       =>   array(
                        'columns'                       =>   array('isp_id'),
                        'refTableClass'         =>   
'Model_DbTable_ISPPartners',
                        'refColumns'            =>   array('isp_id')
                )
        );
}


OUTPUT OF $results

        [0] => Array
                (
                    [ws_id] => 1
                    [navigation_url] => http://www.namespaceinc.com/
                    [isp_id] => 8
                    [enabled] => 1
                    [kw_id] => 3
                    [keyword] => nsg-home
                    [start_date] => 2009-07-01 00:00:00
                    [end_date] => 2009-07-31 00:00:00
                )

        [1] => Array
                (
                    [ws_id] => 2
                    [navigation_url] => 
http://www.namespacestrategy.com/products.htm
                    [isp_id] => 8
                    [enabled] => 1
                    [kw_id] => 2
                    [keyword] => nsg-products
                    [start_date] => 2009-07-01 00:00:00
                    [end_date] => 2009-07-31 00:00:00
                )

OUTPUT of $aux_data

            [0] => Array
                (
                    [isp_id] => 8
                    [nwp_id] => 8
                    [code] => RED
                    [description] => Paxfire
                    [enabled] => 1
                    [fallback_uri] =>
                    [linkshare_code] => 8
                    [cj_code] => 1209416
                    [ebay_code] => 5335857452
                )


Reply via email to