Ingresar:

Rho :: Blog :: Zend_Db_Table: $table->count()

May 20, 2008

user icon
Rho

Ultimamente estoy usando Zend (framework php), yo ya más acostumbrado a django estaba buscando algo como

      count = Comment.objects.filter(owner=1).count()     

Pero en Zend la opción que encontre fue:

      $table = new Comments;       $select = $table->select()->where('owner = ?', 1);       $comments =  $table->fetchAll($select);       $count = $comments->count();   ...tedioso!!!   e ineficiente, por que primero saca todos los resultados de la db, y   recién retorna la cantidad. En cambio todos sabemos que un SELECT   COUNT(*) es mucho más rápido, especialmente con tablas indexadas.   Entonces,   todos mis modelos heredan de Core_Db_Table que esta a su vez hereda de   Zend_Db_Table, añado un método para realizar mi querido SELECT COUNT(*)   [code=php]          class Core_Db_Table extends Zend_Db_Table {          // ...           public function count(Zend_Db_Select $select) {              $select = $select->from($this->info("name"), array("count" => "COUNT(*)"));              return $this->getAdapter()->fetchOne($select->__toString());           }       }     

 Listo, ahora ya puedo hacer cosas más decentes:

      $table = new Comments;       $select = $table->select()->where("owner = ?", 1);       $count = $table->count($select);     

No es tan hermoso como django.... pero algo es algo Laughing. De ahí es un paso para permitir $table->count()  o $table->count("owner = ?", 1)

Palabras clave: 1 2 3, count, php, zend

Enviado por Rho



Comentarios

  1. nice really nice!

    user iconMarcelo Zambrana Villarroel on Wednesday, 21 May 2008, 07:03 BOT # |

  2. Otro que se lanza a php .. jeje

    Invitado on Wednesday, 21 May 2008, 14:10 BOT # |

  3. Nooooooooooooooo

    ¡no me gusta php! 

    ¡no me gusta php!

    ¡no me gusta php!

    Aprendí c, luego python, luego php.. luego javascript.... después de utilizar php he sentido que aprendí malos hábitos Frown

    user iconRho on Wednesday, 21 May 2008, 14:18 BOT # |

  4. Ni modo, ya comiste del fruto prohibido Tongue out

    PD. Es solo una broma 

    Invitado on Wednesday, 21 May 2008, 15:08 BOT # |

Debes iniciar sesión para enviar un comentario.