Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1554
  • Last Modified:

Zend Db Table Select not Selecting All Rows

Hi

I finally figured out how to do joins with zend_db_table_select.  My problem now is that its not returning all rows. Or so I think.

I get the following error message.

Fatal error: Uncaught exception 'Zend_Db_Table_Row_Exception' with message 'Specified column "nickname" is not in the row'


public function showallAction()
    {
    	$this->view->title = "Showing All PSI Inventory";
	    $items = new Items();
		$select = $items->select()->setIntegrityCheck(false);
		$select->join('t_sites', 't_items.site_id = t_sites.id', 'name');
		$this->view->items = $items->fetchAll($select);
	//	echo $select->		    
    }
 
 
 
<?php foreach($this->items as $item) : ?>
<tr>
     <td><?php echo $this->escape($item->nickname);?></td>
     <td><?php echo $this->escape($item->serial);?></td>
     <td>
          <a href="<?php echo $this->url(array('controller'=>'index',
              'action'=>'edit', 'id'=>$item->id));?>">Edit</a>
          <a href="<?php echo $this->url(array('controller'=>'index',
              'action'=>'delete', 'id'=>$item->id));?>">Delete</a>
     </td>
</tr>
<?php endforeach; ?>

Open in new window

0
sean-keys
Asked:
sean-keys
  • 2
1 Solution
 
kkretschCommented:
Did you already have alook into the $item's content?
just do a print_r($item) to look for the names of the returned columns.
0
 
sean-keysAuthor Commented:
I think my problem lies in the select.

Displaying Short View

Warning: Invalid argument supplied for foreach() in /home/sean/Zend/workspaces/psi-inv-zf/application/default/views/scripts/index/showall.phtml on line 8
Nickname       Serial       
SELECT "t_sites"."name" FROM "t_sites"




 public function showallAction()
    {
    	$this->view->title = "Showing All PSI Inventory";
	    $items = new Items();
		$select = $items->select()->setIntegrityCheck(false);
		$select->join('t_sites', 't_items.site_id = t_sites.id', 'name');
		echo $select->__toString();
	//	$this->view->items = $items->fetchAll($select);

Open in new window

0
 
sean-keysAuthor Commented:
This works
 public function showallAction()
    {
    	$this->view->title = "Showing All PSI Inventory";
	    $items = new Items();
		$select = $items->select()->setIntegrityCheck(false);
		$select->from('t_items');
		$select->join('t_sites', 't_items.site_id = t_sites.id', 'name AS sitename' );
		$select->join('t_status', 't_items.status_id = t_status.id', 'name AS statusname');
		//TODO Select only columns need by show all shortview
		//echo $select->__toString();
		$this->view->items = $items->fetchAll($select);

Open in new window

0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now