Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 23-05-2008 17:02:32

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

[Zend_Controller][1.5]

Bonjour,

J'ai un formulaire permettant de saisir des critères de recherche.
Ces critères sont ensuite postés au contrôleur qui prépare la requête en fonction de ces critères.
Les données sont ensuite affichées dans la vue.

J'essaie de mettre ne place un système de pagination pour afficher ces données.
Je me suis inspiré de ce tuto : http://antoine-herault.developpez.com/t … ue-en-php/

Donc, j'utilise un LIMIT, et je crée des lien en bas de page qui me permettent de rappeller le controller avec un argument en plus "page" qui me permet de faire un LIMIT dans ma requête.
Le problème c'est qu'entre temps j'ai perdu les critères de recherche saisis dans mon premier formulaire.
Je ne vois pas trop comment récupérer ces infos :
- les donner à la vue qui les redonne au controller ?
- les stocker des le début en session ?

Dernière modification par bertra (23-05-2008 17:03:18)

Hors ligne

 

#2 23-05-2008 18:53:19

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Zend_Controller][1.5]

utilise la session pour les garder sous le coude
A+JYT

Hors ligne

 

#3 23-05-2008 21:03:40

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [Zend_Controller][1.5]

oui, merci pour la réponse, je pense également que c'est la meilleure solution.

Hors ligne

 

#4 23-05-2008 21:27:51

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: [Zend_Controller][1.5]

Mais dans ce cas, ca veut dire que la recherche est de nouveau lancée lorsque tu veux aller sur la deuxième page !? Il n'y a pas une autre solution?

Hors ligne

 

#5 23-05-2008 21:45:05

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [Zend_Controller][1.5]

slaughter a écrit:

Mais dans ce cas, ca veut dire que la recherche est de nouveau lancée lorsque tu veux aller sur la deuxième page !? Il n'y a pas une autre solution?

je ne sais , ça se passe comme ça sur le tuto que j'ai cité.
Je ne connais pas bien les LIMIT, peut être que je peux réutiliser le statement ?

Dernière modification par bertra (23-05-2008 21:45:22)

Hors ligne

 

#6 23-05-2008 21:54:54

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: [Zend_Controller][1.5]

Je dit peut être une connerie mais ne serait-il pas plus judicieux de stocker la liste des ID de ton résultat (je ne sais pas trop comment se présente le résultat de la recherche) plutôt que les paramètres de la recherche?

Hors ligne

 

#7 23-05-2008 22:07:47

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [Zend_Controller][1.5]

slaughter a écrit:

Je dit peut être une connerie mais ne serait-il pas plus judicieux de stocker la liste des ID de ton résultat (je ne sais pas trop comment se présente le résultat de la recherche) plutôt que les paramètres de la recherche?

oui, c'est une idée, mais ça remet en question l'utilisation du LIMIT, non ?

Hors ligne

 

#8 23-05-2008 22:11:00

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: [Zend_Controller][1.5]

A oui c'est pas faux.

Dans le principe.
Tu fais la recherche.
Tu récupère toutes les réponses (donc plus de LIMIT)
Tu mets en session.
Et c'est au moment de l'affichage que tu choisis les réponses à afficher selon la page sur laquelle tu te trouves et selon le nombre de résultat par page.

Enfin c'est une idée. Je n'ai jamais essayé cette solution mais je compte également faire un moteur de recherche. Je me pose donc les même questions que toi.

Hors ligne

 

#9 23-05-2008 22:19:15

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [Zend_Controller][1.5]

slaughter a écrit:

A oui c'est pas faux.

Dans le principe.
Tu fais la recherche.
Tu récupère toutes les réponses (donc plus de LIMIT)
Tu mets en session.
Et c'est au moment de l'affichage que tu choisis les réponses à afficher selon la page sur laquelle tu te trouves et selon le nombre de résultat par page.

Enfin c'est une idée. Je n'ai jamais essayé cette solution mais je compte également faire un moteur de recherche. Je me pose donc les même questions que toi.

Comme ca, je ne peux pas dire quelle est la solution la plus performante.
1) ramener tous les id et faire les recherches suivantes seulement sur l'id, ce qui simplifie les requetes suivante mais necessite 2 requetes pour l'affichage de la premiere page
2) utiliser les LIMIT et faire une requête complexe à chaque affichage de page.
3) peut être qu'il est possible d'utiliser le même statement pour toutes les requêtes ?
Je pense que pour l'instant je vais stocker les critères en session et utiliser le LIMIT smile

Dernière modification par bertra (24-05-2008 00:24:56)

Hors ligne

 

#10 24-05-2008 02:20:55

ndesaleux
Membre
Date d'inscription: 16-04-2007
Messages: 196
Site web

Re: [Zend_Controller][1.5]

1) si tes params sont passés via GET tu n'as plus de soucis, ils sont dans l'URL
2) tu peux stocker le Rowset en cache/session (perso, le cache me semble plus logique) est jouer avec array_chunk. LIMIT n'est pas une directive SQL, elle n'est pas implémenter dans sybase par exemple

l'avantage du array_chunk, c'est que tu peux faire un helper pour ta pagination, qui acceptera n'importe quel tableau (venant d'un DB ou pas)

My 2 cents

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