Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/03/2011, 09:29
RALlave
 
Fecha de Ingreso: noviembre-2008
Mensajes: 62
Antigüedad: 16 años
Puntos: 2
Consulta en dos tablas

Que tal, amigos muy buenas. En esta oportunidad les voy a pedir nuevamente su ayuda:
Tengo dos tablas, usuarios y programa:
usuarios con los campos usu_id, usu_nombre y usu_apellido
programas con los campos pro_id, pro_nombre, usu_id

lo que pretendo hacer es la siguiete consulta sql:

Código PHP:
$query "select u.usu_id, u.usu_nombre, u.usu_apellido, p.pro_id, p.pro_nombre from usuarios u, programas p 
where u.usu_id=p.usu_id"

Con Zend_Db_Table sería algo como esto en mi modelo ProgramaModelo.php:

Código PHP:
public function obtenerTodos()
    {
         
$select $this->select()
                ->
from(array("p"=>"programa"),array())
                ->
join(array("u"=>"usuario"),
                        
"u.usu_id = p.usu_id",array());
        return 
$this->fetchAll($select);

En mi controller:

Código PHP:
...
$this->view->listado $this->_programaModelo->obtenerTodos();
... 
Hasta ahí todo bien, pero cuando quiero mostrar la tabla programas en el View el nombre de usuario no me muestra

Código PHP:
...
<?php foreach($this->listado as $lista): ?>
            <tr>
                <td><?php echo $lista->pro_id ?></td>
                <td><?php echo $lista->pro_nombre ?></td>
                <td><?php echo $lista->usu_nombre ?>/td>
            </tr>
<?php endforeach; ?>
...
me salta el siguiente error:

Fatal error: Uncaught exception 'Zend_Db_Table_Row_Exception' with message 'Specified column "usu_nombre" is not in the row' in C:\xampp\php\PEAR\Zend\Db\Table\Row\Abstract.php:1 79 Stack trace: #0

Si le quito la fila <td><?php echo $lista->usu_nombre ?>/td>, no hay problema.
He intentado también agregar los campos en en join, algo como lo siguiente, pero tampoco funciona.

->join(array("u"=>"usuario"),
"u.usu_id = p.usu_id",array("usu_nombre"))

me sale el siguiente error:

Fatal error: Uncaught exception 'Zend_Db_Table_Select_Exception' with message 'Select query cannot join with another table' in C:\xampp\php\PEAR\Zend\Db\Table\Select.php:215 Stack trace: #0 C:\xampp\php\PEAR\Zend\Db\Adapter\Abstract.php(456 ):

ALGUIEN ME PUEDE AYUDAR, SE LO AGRADECERÍA MUCHO, GRACIAS DE ANTEMANO