Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 13-08-2010 12:25:18

zepas
Nouveau membre
Date d'inscription: 13-08-2010
Messages: 3

[Zend_Db][1.10.2] Traduction requête en Zend_Db

Bonjour
ça va faire bientôt 2 mois que j'ai dit oui.
Tout se passait bien jusqu'à hier, quand il m'a fallut écrire une requête qui doit me permettre de sélectionner les 6 vidéos les plus commentées.
j'ai donc 2 tables (commentaires_videos et videos).
traditionnellement on a ceci
<code>
   select v.id_video, count(cv.id_commentaire) as total
    from videos v inner join commentaires_video cv on (v.id_video = cv.id_video)
    group by v.id_video
    order by total desc
    limit 0,6;
</code>

Cela passe bien lorsque je l'exécute directement dans ma BD
Comment pourrais-je traduire cela en en Zend_Db_select ?

Merci de m'aider.

Dernière modification par zepas (13-08-2010 12:39:36)

Hors ligne

 

#2 13-08-2010 12:59:41

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Zend_Db][1.10.2] Traduction requête en Zend_Db

Salut,

Je dirais :

Code:

$select = $videoTable->select()->setIntegrityCheck(false);
$select->from(array('v' => 'videos'), array('id_video'))
       ->leftJoin(array('cv' => 'commentaires_video'), 'v.id_video = cv.id_video', array('total' => 'COUNT(id_commentaire)'))
       ->group('v.id_video')
       ->order('total DESC')
       ->limit(0, 6);

A vérifier, je travaille plus trop avec Zend_Db.


A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#3 13-08-2010 13:52:10

zepas
Nouveau membre
Date d'inscription: 13-08-2010
Messages: 3

Re: [Zend_Db][1.10.2] Traduction requête en Zend_Db

Merci Delprog pour ta reponse, mais j'ai réussi à construire ma requête.
Voici comment j'ai crée ma requête :

Code:

class monModel extends Zend_Db_Table_Abstract
{
 protected $_name = 'videos';
 protected $_primary = 'id_video';


 public function maFonction(){

 $select = $this->_db->select('v.id_video')
                            ->from( array( 'v' => $this->_name) )
                            ->joinInner(array('cv' => 'commentaires_video'), 'cv.id_video = v.' . $this->_primary, array('total' => 'COUNT(cv.id_commentaire)'))
                            ->group('v.' . $this->_primary)
                            ->order( 'total DESC')
                            ->limit(6);
       
       $stmt = $this->_db->query($select);
       
    return $stmt->fetchAll();
}

}

Dernière modification par zepas (13-08-2010 13:52:56)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages