0

このスクリプトに問題があります:

$select = $tabela->select()
                     ->joinInner('pedidos_itens', 'pedidos.peIp = pedidos_itens.ipPedido', array('ipProduto', 'ipQtde', 'ipCor', 'ipTextura', 'ipTamanho', 'ipSeq'))
                     ->joinInner('representantes_m', 'pedidos.peRepresentante = representantes_m.rpId', array('rpNome', 'rpTelefone', 'rpCidade', 'rpEstado', 'rpEmail'))
                     ->joinInner('produtos_m', 'pedidos_itens.ipPedido = produtos_m.prId', array('prTitulo', 'prRef', 'prCategoria', 'prColecao'))
                     ->joinInner('produtos_cores_m', 'pedidos_itens.ipProduto = produtos_cores_m.pcProduto', array('pcTitulo'))
                     ->joinInner('texturas_m', 'pedidos_itens.ipProduto = texturas_m.teProduto', array('teTitulo'))
                     ->joinInner('colecoes_m', 'produtos_m.prColecao = colecoes_m.coId', array('coTitulo'))
                     ->joinInner('categorias_m', 'produtos_m.prCategoria = categorias_m.caId', array('caTitulo'))
                     ->where('pedidos.peId = 2')
                     ->order('pedidos.peId DESC');

それはこのエラーを返します:

Warning: Select query cannot join with another table in C:\Arquivos de programas\Zend\ZendServer\share\ZendFramework\library\Zend\Db\Select.php on line 1345

- - - - 編集

これを次のように変更しました。

$db = Zend_Db_Table::getDefaultAdapter();

    $select = $db->select()
                     ->from('pedidos', array('peId', 'peRepresentante', 'peData', 'peStatus'))
                     ->joinInner('pedidos_itens', 'pedidos.peId = pedidos_itens.ipPedido', array('ipProduto', 'ipQtde', 'ipCor', 'ipTextura', 'ipTamanho', 'ipSeq'))
                     ->joinInner('representantes_m', 'pedidos.peRepresentante = representantes_m.rpId', array('rpNome', 'rpTelefone', 'rpCidade', 'rpEstado', 'rpEmail'))
                     ->joinInner('produtos_m', 'pedidos_itens.ipPedido = produtos_m.prId', array('prTitulo', 'prRef', 'prCategoria', 'prColecao'))
                     ->joinInner('produtos_cores_m', 'pedidos_itens.ipProduto = produtos_cores_m.pcProduto', array('pcTitulo'))
                     ->joinInner('texturas_m', 'pedidos_itens.ipProduto = texturas_m.teProduto', array('teTitulo'))
                     ->joinInner('colecoes_m', 'produtos_m.prColecao = colecoes_m.coId', array('coTitulo'))
                     ->joinInner('categorias_m', 'produtos_m.prCategoria = categorias_m.caId', array('caTitulo'))
                     ->where('pedidos.peId = 2')
                     ->order('pedidos.peId DESC');

    $resultado = $db->query($select)->fetchAll();

レコードがあっても、空の配列を返します。そう?:/

----編集2

これはクエリです:

選択しpedidosます。peIdpedidospeRepresentantepedidospeDatapedidospeStatuspedidos_itensipProdutopedidos_itensipQtdepedidos_itensipCorpedidos_itensipTexturapedidos_itensipTamanhopedidos_itensipSeqrepresentantes_mrpNomerepresentantes_mrpTelefonerepresentantes_mrpCidaderepresentantes_mrpEstadorepresentantes_mrpEmailprodutos_cores_mpcTitulotexturas_mteTituloprodutos_mprTituloprodutos_mprRefprodutos_mprCategoriaprodutos_mprColecaocolecoes_mcoTitulocategorias_m。 内部結合からcaTitulopedidos.peId = pedidos_itens.ipPedido 内部結合pedidospedidos_itensrepresentantes_mpedidos.peRepresentante produtos_cores_m= renameantes_m.rpId 内部結合texturas_mon pedidos_itens.ipProduto = produtos_cores_m.pcProduto 内部結合produtos_mon pedidos_itens.ipProduto = texturas_m.teProduto 内部結合 on pedidos_itens.ipProduto = produtos_m.prId 内部結合colecoes_mon produtos_JOm.prColecao.INNER = categorias_mON produtos_m.prCategoria = categorias_m.caId WHERE (pedidos.peId = 2) ORDER BY pedidos. peId説明

4

2 に答える 2

1

これを試して

 $db = Zend_Db_Table::getDefaultAdapter();

    $select = $db->select()
    $select->setIntegrityCheck(FALSE); //Now it will join

                     ->from('pedidos', array('peId', 'peRepresentante', 'peData', 'peStatus'))
                     ->joinInner('pedidos_itens', 'pedidos.peId = pedidos_itens.ipPedido', array('ipProduto', 'ipQtde', 'ipCor', 'ipTextura', 'ipTamanho', 'ipSeq'))
                     ->joinInner('representantes_m', 'pedidos.peRepresentante = representantes_m.rpId', array('rpNome', 'rpTelefone', 'rpCidade', 'rpEstado', 'rpEmail'))
                     ->joinInner('produtos_m', 'pedidos_itens.ipPedido = produtos_m.prId', array('prTitulo', 'prRef', 'prCategoria', 'prColecao'))
                     ->joinInner('produtos_cores_m', 'pedidos_itens.ipProduto = produtos_cores_m.pcProduto', array('pcTitulo'))
                     ->joinInner('texturas_m', 'pedidos_itens.ipProduto = texturas_m.teProduto', array('teTitulo'))
                     ->joinInner('colecoes_m', 'produtos_m.prColecao = colecoes_m.coId', array('coTitulo'))
                     ->joinInner('categorias_m', 'produtos_m.prCategoria = categorias_m.caId', array('caTitulo'))
                     ->where('pedidos.peId = 2')
                     ->order('pedidos.peId DESC');

    $resultado = $db->query($select)->fetchAll();
于 2012-05-24T05:19:39.263 に答える
0

テーブル オブジェクトに結合を使用することはできません。アダプターを使用して行う必要があります

したがって、使用する必要があります

$tabela->getAdapter()->select()

from メソッドを使用する必要があります

 $tabela->getAdapter()->select()->from($this, array())
于 2012-05-23T13:02:53.817 に答える