Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 23-10-2008 11:27:09

Fly706
Membre
Date d'inscription: 15-10-2008
Messages: 20

limit ou limitpage?

Bonjour


Quand je veux limiter le nombre d'enregistrements dans ma requete sql, je dois utiliser ->limit($a,$b) ou ->pageLimit($a,$b) ?

exemple, je veux les enregistrement de 1 à 50
je fais
->limit(1,50)

ou pageLimit(1,50)

je saisi pas bien la différence...


merci d'avance de votre réponse

Hors ligne

 

#2 23-10-2008 11:45:28

NewSky
Membre
Date d'inscription: 17-12-2007
Messages: 79

Re: limit ou limitpage?

Bonjour,

Les 2 servent à la même chose, mais ne s'utilise pas de la même façon. En réalité, ->pageLimit() et une aide et s'utilisera essentiellement lors de pagination des résultats.

->limit($a,$b) créer une clause "limit" dans la requête sql telle que définie par ton adaptateur db (où $a correspond à l'ofset du début des résultats, et $b au nombre de résultats voulu)
->pageLimit($a,$b) créer une clause "limit" aussi mais la clause sera calculée en fonction des paramètres où $a est le numéro de page actuel, et $b le nombre de résultat par page voulu.

En d'autres termes, par rapport à ton exemple, pour la récupération des 1ers résultats, les paramètres sont identiques, mais pour les résultats 51 à 100, tu auras plutôt :

Code:

->limit(51,50);
->pageLimit(2,50)

Dernière modification par NewSky (23-10-2008 11:47:59)

Hors ligne

 

#3 23-10-2008 11:53:51

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

Re: limit ou limitpage?

Salut,

Les fonctions limit() et limitPage() n'ont pas la même utilité.

Si on prend comme exemple la requête MySQL suivante :

Code:

SELECT t.* 
  FROM toto AS t
  WHERE t.isactive=1
  LIMIT 20,30

La fonction limit() va se comporter exactement comme le "LIMIT Mysql", c'est à dire qu'il va récupérer une intervalle de résultats entre deux indices. Ici la requête ne va retourner que les résultats entre la 20eme et la 30eme ligne.
Ce qui donne :

Code:

$select = $db->select()
             ->from(array('t' => 'toto'))
             ->limit(20, 30);

La fonction limitPage() permet de gérer des "portions" ou des "pages". C'est à dire que tu dois lui indiquer combien de résultats par "page" tu as et quelle page la requête doit sélectionner.

Pour notre exemple on aurait la requête suivante:

Code:

$select = $db->select()
             ->from(array('t' => 'toto'))
             ->limitPage(3, 10);

Pour plus de détails :
http://framework.zend.com/manual/fr/zen … ding.limit


A+ benjamin.


Edit : Réponse entre temps, mais ça t'en feras une de plus :p

Dernière modification par Delprog (23-10-2008 11:55:20)


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

Hors ligne

 

#4 23-10-2008 11:54:15

Fly706
Membre
Date d'inscription: 15-10-2008
Messages: 20

Re: limit ou limitpage?

dans mon cas, j'ai une requete sql et je dois afficher par exemple 30 enregistrement par page

je passe en argument à ma requete sql, $page (numero de page) et $nbre (nbre d'enregistrement par page)

donc quand je fais
->pageLimit(1, 30)
il va m'afficher la permiere page avec 30 enregistrements

puis si je fait ->pageLimit(2, 30)
il va m'afficher les 30 enregistrements suivants?

peux-tu m'éclairer là-dessus? 

merci

Hors ligne

 

#5 23-10-2008 11:57:20

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

Re: limit ou limitpage?

donc quand je fais
->pageLimit(1, 30)
il va m'afficher la permiere page avec 30 enregistrements

puis si je fait ->pageLimit(2, 30)
il va m'afficher les 30 enregistrements suivants?

Exactement.

Attention la syntaxe est limitPage().

La fonction est à utiliser en concordance avec ta pagination. C'est bien pratique smile


A+ benjamin.


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

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