Akssio 0 Denunciar post Postado Fevereiro 11, 2010 tenho a seguinte consulta...: $dados = $db->select()->from(array('t' => 'categoria'), array('status', 'nome','id_cliente','id')) ->join(array('c' => 'clientes'), 't.id_cliente = c.id') ->query()->fetchAll(); acontece que no resultado ele está me retornando o id da tabela cliente...ao invés do id da tabela categoria!!... os campos retornados não seriam o daquele segundo array??? Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 11, 2010 Nao tem como especificar de qual tabela é o Id ? Como num select normal ? Tem neh. $dados = $db->select()->from(array('t' => 'categoria'), array('status', 'nome','t.id_cliente','id')) ->join(array('c' => 'clientes'), 't.id_cliente = c.id') ->query()->fetchAll(); Compartilhar este post Link para o post Compartilhar em outros sites
Akssio 0 Denunciar post Postado Fevereiro 11, 2010 Possível é sim... mas não resolve o problema... Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 11, 2010 Tem como você por outro nome para a coluna ? Tipo: Select Coluna AS Novo_Nome From Tabela ? Compartilhar este post Link para o post Compartilhar em outros sites
Akssio 0 Denunciar post Postado Fevereiro 11, 2010 tentei assim!... $dados = $db->select("id as id_cat")->from(array('t' => 'categoria'), array('status', 'nome','id_cliente','id_cat')) ->join(array('c' => 'clientes'), 't.id_cliente = c.id') ->query()->fetchAll(); deste modo ele não está renomeando pois acusa que não encontrou o campo id_cat!... Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 11, 2010 Mas não assim, assim: $dados = $db->select("id as id_cat")->from(array('t' => 'categoria'), array('status', 'nome','id_cliente','id as id_cat')) ->join(array('c' => 'clientes'), 't.id_cliente = c.id') ->query()->fetchAll(); Dae quando você for pegar o valor do campo, você nao pega como id, pega como id_cat. Compartilhar este post Link para o post Compartilhar em outros sites
Akssio 0 Denunciar post Postado Fevereiro 11, 2010 Perfeito!...era isso valew parceiro!.. resolvido o problema! Compartilhar este post Link para o post Compartilhar em outros sites
emekapa 0 Denunciar post Postado Julho 24, 2010 Mas não assim, assim: $dados = $db->select("id as id_cat")->from(array('t' => 'categoria'), array('status', 'nome','id_cliente','id as id_cat')) ->join(array('c' => 'clientes'), 't.id_cliente = c.id') ->query()->fetchAll(); Dae quando você for pegar o valor do campo, você nao pega como id, pega como id_cat. Eu fiz de forma idêntica só que estou a ter problemas ao apresentar os resultados. Eu apresento da seguinte maneira: foreach($this->paginator as $markers) : ?> <tr class="bg"> <td class="first style2"> <?php echo stripslashes($markers->name);?> </td> <td> <?php echo stripslashes($markers->status_name);?> </td> <td> <a href="<?php echo $this->url(array('controller'=>'tmultimedia', 'action'=>'edit', 'id'=>$markers->id));?>"><img src="/~cams/img/camsadmin/edit-icon.gif" width="16" height="16" alt="edit" /></a> </td> <td> <a href="<?php echo $this->url(array('controller'=>'tmultimedia', 'action'=>'del', 'id'=>$markers->id));?>"><img src="/~cams/img/camsadmin/hr.gif" width="16" height="16" alt="" /></a> </td> </tr> <?php endforeach;?> Só que em vez de apresentar por exemplo os 2 registos que tenho na DB, apresenta 4. Se tiver 3, apresenta 9. Ou seja, por cada resultado apresenta o número de registos. Código no controller: $table = new Tmultimedia(); $this->view->Tmultimedia = $table->select('name as status_name') ->setIntegrityCheck(false) ->from(array('t' => 'multimedia_type'), array('id', 'name', 'status')) ->join(array('t2' => 'status_type'), 't.status = t2.id', array('name as status_name','name_order')); $rows = $table->fetchAll($this->view->Tmultimedia); $page=$this->_getParam('page',1); $paginator = Zend_Paginator::factory($this->view->Tmultimedia); $paginator->setItemCountPerPage(10); $paginator->setCurrentPageNumber($page); $this->view->paginator = $paginator; Será que me podes ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
silasrm 0 Denunciar post Postado Agosto 4, 2010 Mas não assim, assim: $dados = $db->select("id as id_cat")->from(array('t' => 'categoria'), array('status', 'nome','id_cliente','id as id_cat')) ->join(array('c' => 'clientes'), 't.id_cliente = c.id') ->query()->fetchAll(); Dae quando você for pegar o valor do campo, você nao pega como id, pega como id_cat. Eu fiz de forma idêntica só que estou a ter problemas ao apresentar os resultados. Eu apresento da seguinte maneira: foreach($this->paginator as $markers) : ?> <tr class="bg"> <td class="first style2"> <?php echo stripslashes($markers->name);?> </td> <td> <?php echo stripslashes($markers->status_name);?> </td> <td> <a href="<?php echo $this->url(array('controller'=>'tmultimedia', 'action'=>'edit', 'id'=>$markers->id));?>"><img src="/~cams/img/camsadmin/edit-icon.gif" width="16" height="16" alt="edit" /></a> </td> <td> <a href="<?php echo $this->url(array('controller'=>'tmultimedia', 'action'=>'del', 'id'=>$markers->id));?>"><img src="/~cams/img/camsadmin/hr.gif" width="16" height="16" alt="" /></a> </td> </tr> <?php endforeach;?> Só que em vez de apresentar por exemplo os 2 registos que tenho na DB, apresenta 4. Se tiver 3, apresenta 9. Ou seja, por cada resultado apresenta o número de registos. Código no controller: $table = new Tmultimedia(); $this->view->Tmultimedia = $table->select('name as status_name') ->setIntegrityCheck(false) ->from(array('t' => 'multimedia_type'), array('id', 'name', 'status')) ->join(array('t2' => 'status_type'), 't.status = t2.id', array('name as status_name','name_order')); $rows = $table->fetchAll($this->view->Tmultimedia); $page=$this->_getParam('page',1); $paginator = Zend_Paginator::factory($this->view->Tmultimedia); $paginator->setItemCountPerPage(10); $paginator->setCurrentPageNumber($page); $this->view->paginator = $paginator; Será que me podes ajudar? Salve, o Paginator retorna um vetor. Assim: $reg['status_name']; Agora você renomeia 2 vezes 'name' para 'status_name'. Use o prefixo nos campos: t.name ---- // no join, esse 'name' é dessa tabela 'status_type'? Se for use t2. antes ficando: t2.name // renomear campos faz chave => valor: 'novo_nome_do_campo' => 't.nome_verdadeiro_do_campo' // ficando: 'status_name' => 't2.name' // mas com isso voce está renomeando 2 campos para o mesmo 'novo nome' $table = new Tmultimedia(); $registros = $table->select() ->setIntegrityCheck(false) ->from( array('t' => 'multimedia_type'), array('t.id', 'status_name' => 't.name', 't.status') ) ->join(array('t2' => 'status_type'), 't.status = t2.id', array('name as status_name','name_order')); ->query() ->fetchAll($this->view->Tmultimedia); $page=$this->_getParam('page',1); $paginator = Zend_Paginator::factory($registros); $paginator->setItemCountPerPage(10); $paginator->setCurrentPageNumber($page); $this->view->paginator = $paginator; --- Valeu! Compartilhar este post Link para o post Compartilhar em outros sites