La comunità italiana su CakePHP

You are not logged in. Please login or register.


Pages: 1

Atom RSS

Posts [ 7 ]

foffo

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

Luizz

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".

foffo

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.

Saiborg

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

foffo

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)

foffo

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.

Namaless

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.. big_smile

Posta la soluzione grazie smile

Posts [ 7 ]

Guest posting is disabled. You must login or register to post a reply.

Pages: 1

Topic info

1 guests and 0 users are reading this topic now


Forum quick jump menu

Currently used extensions: pun_topic_online_users, pun_karma, pun_admin_hook_navigator, pun_bbcode. Copyright © 2008 PunBB

[ Generated in 0.029 seconds, 10 queries executed ]