INNER JOIN com Zend

Zend_Db, Zend_Db_Table, Zend_Db_Xml

Moderador: diegotremper

INNER JOIN com Zend

Mensagempor jrcobain » Dom Out 18, 2009 1:49 am

Pessoal,

Preciso fazer uma consulta usando INNER JOIN com o Zend Framework, mas não achei nenhum caminho. Vocês poderiam me ajudar?

A query que utilizo diretamente no Mysql é a seguinte:
SELECT produto.prod_id, produto.prod_descr, produto.prod_preco, tipo_prod.tprod_tipo, fornecedor.forn_nfantasia FROM produto INNER JOIN tipo_prod ON (tipo_prod.tprod_id = produto.tprod_id) INNER JOIN fornecedor ON (produto.forn_id = fornecedor.forn_id);

Só como dado, utilizo o código abaixo para fazer a query SELECT * FROM produto:

Código: Selecionar tudo
<?php

class ProdutoController extends Zend_Controller_Action {

   public function init() {
      Zend_Loader::loadClass('Produto');
   }

        public function consultaAction() {

      $table = new Produto();

                $produto = $table->fetchAll();
        }

}
jrcobain
Leitor
 
Mensagens: 2
Data de registro: Dom Out 18, 2009 1:19 am

Re: INNER JOIN com Zend

Mensagempor danieldeveloper » Seg Out 19, 2009 9:13 am

jrcobain, é bem fácil...

No seu model Produtos, cria esta função:

Código: Selecionar tudo
   /**
     * Função retorna os dados do produto
     *
     * @author Daniel Developer
     * @return array Array com os dados do produto
     */
    public function getProducts()
    {
        // Recupera os objeto db armazenado no registro no bootstrap
        $db = Zend_Registry::get('db');

        return $db->fetchAll( "
            SELECT produto.prod_id, produto.prod_descr, produto.prod_preco, tipo_prod.tprod_tipo, fornecedor.forn_nfantasia
            FROM produto
            INNER JOIN tipo_prod ON tipo_prod.tprod_id = produto.tprod_id
            INNER JOIN fornecedor ON produto.forn_id = fornecedor.forn_id
        " );
    }


Agora no seu controller, a action ficaria assim:

Código: Selecionar tudo
public function consultaAction() {

      $table = new Produto();

      $produto = $table->getProducts();
        }


Acho q é isso...

Abs
danieldeveloper.com
danieldeveloper
Participante
 
Mensagens: 45
Data de registro: Sex Mai 08, 2009 11:31 am


Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante