- Title: New member
- Status: Offline
- From: Roma
- Registered: 03-06-2008
- Posts: 7
Topic: Problema componente pagination
Salve, non riesco a risolvere il seguente problema con il componente pagination.
Devo fare la paginazione dei risultati di una query tramite gruop by; in pratica ho una tabella photos dove tra i vari campi c'è title, il titolo del servizio fotografico a cui appartiene.
Devo contare il numero dei titoli distinti presenti nella tabella in modo da paginare le foto in base al titolo del servizio a cui appartengono.
il componente cake esegue la seguente query di COUNT: "SELECT COUNT(*) AS count FROM `photos` AS `Photo`" cioè conta le righe totali della tabella.
Posso aggiungere tramite la variabile $criteria codice sql da appendere dopo la clausola WHERE, ma non sono riuscito a comporre una query che desse il risultato sperato.
La query corretta è: "SELECT COUNT(DISTINCT title) FROM photos", ma da quello che ho potuto capire non posso modificare la prima parte della query di COUNT. Qualcuno conosce quelche soluzione per questo problema.
Grazie
- Title: Member
- Status: Offline
- From: Rome
- Registered: 05-02-2008
- Posts: 39
Re: Problema componente pagination
$result = $this->Photo->find('all', array(
'fields' => array('count(DISTINCT title) as totale'),
'recursive' => -1
));
Anche se non ho ben capito cosa intendi per "poter modificare la prima parte della query di COUNT".
- Title: New member
- Status: Offline
- From: Roma
- Registered: 03-06-2008
- Posts: 7
Re: Problema componente pagination
Mi spiego meglio:
Il componente pagination per eseguire la paginazione esegue sostanzialmente 2 query, con una conta i risultati da paginare e con l'altra li divide mediante LIMIT per poi paginarli.
La prima query, quella che conta i risultati è: "SELECT COUNT(*) AS count FROM `photos` AS `Photo`", che posso personalizzare solo aggiungendo tramite la variabile $criteria codice SQL dopo la clausola WHERE. Nel mio caso invece occorre modificare anche la prima parte cioè: "SELECT COUNT(*) AS count FROM `photos` AS `Photo`" in "SELECT COUNT(DISTINCT title) FROM photos" in modo tale da contare i titoli distinti delle foto.
Dovrei riuscire a modificare questa query.
- Title: Administrator
- Status: Offline
- From: Padova
- Registered: 04-02-2008
- Posts: 46
Re: Problema componente pagination
Mmm si parla della 1.2?
In tal caso nel CookBook dice:
Other keys that can be included in the $paginate array are similar to the parameters of the Model->findAll() method, that is: conditions, fields, order, limit, page, and recursive.
quindi forse puoi provare a usare il campo fields come nell'esempio di Luizz per il find
- Title: New member
- Status: Offline
- From: Roma
- Registered: 03-06-2008
- Posts: 7
Re: Problema componente pagination
no è la 1.1, il problema in questione riguarda il componente pagination http://bakery.cakephp.org/articles/view/pagination
Last edited by foffo (18-06-2008 10:49:25)
- Title: New member
- Status: Offline
- From: Roma
- Registered: 03-06-2008
- Posts: 7
Re: Problema componente pagination
HO RISOLTO!!!
Bastava passare al metodo init() del componente pagination nel parametro option il totale di righe precedentemente calcolato con una query personalizzata.
- Title: Administrator
- Status: Offline
- From: Pisa
- Registered: 04-02-2008
- Posts: 102
Re: Problema componente pagination
foffo wrote:HO RISOLTO!!!
Bastava passare al metodo init() del componente pagination nel parametro option il totale di righe precedentemente calcolato con una query personalizzata.
Benissimo.. 
Posta la soluzione grazie 
Posts [ 7 ]
Guest posting is disabled. You must login or register to post a reply.
Topic info
1 guests and 0 users are reading this topic now
Currently used extensions: pun_topic_online_users, pun_karma, pun_admin_hook_navigator, pun_bbcode. Copyright © 2008 PunBB