Discussion:
Recherche un systeme de pagination
(trop ancien pour répondre)
stefen76
2006-12-12 06:24:38 UTC
Permalink
Bonjour,
Je remplace actuellement le système de gestion de template de mon
portail.
Mon ancien système de template gérait automatiquement la pagination
lors de l'affichage des enregistrements de ma base de données.
Maintenant je dois en implémenter un nouveau pour afficher les
enregistrements pages par parges avec la barre de navigation qui va
bien.
Je suis à la recherche d'un code qui me permettrait de réaliser cela,
sachant que j'ai 2 cas possibles :
- soit mes données son directement issues de ma base et j'ai une
boucle while... mysql_fetch_array
- soit mes données sont stockées dans un tableau et j'ai une boucle
for..

Est-ce que l'un d'entre vous aurait cela dans ses cartons ?

Merci à tous pour l'aide.

Stéfen
John GALLET
2006-12-12 14:36:43 UTC
Permalink
Bonjour,
Post by stefen76
Est-ce que l'un d'entre vous aurait cela dans ses cartons ?
Entre autres solutions, lire la faq du forum.
http://faqfclphp.free.fr/#8

a++;
JG
stefen76
2006-12-12 21:00:29 UTC
Permalink
Merci, mais je connais ce code, et cela fonctionne uniquement sur des
donn�es issues directement d'une table...

Mon probl�me c'est que j'ai des donn�es qui sont stock�es dans un
tableau (array) et la je s�che...

Si vous avez une autre piste...

Merci � tous pour l'aide.

St�fen
John GALLET
2006-12-12 21:45:46 UTC
Permalink
Post by stefen76
Merci, mais je connais ce code, et cela fonctionne uniquement sur des
données issues directement d'une table...
Ah.
Post by stefen76
Mon problème c'est que j'ai des données qui sont stockées dans un
tableau (array) et la je sèche...
Alors. Par où commencer. Pour vous, avoir des notions minimalistes
d'algorithmique(1) et de structures de données. Il est vrai que de ce côté
là, PHP n'est pas indiqué pour commencer.

Ensuite : qui dit pagination dit conserver les données entre deux pages.
Et relire les bonnes au bon moment. On se fout totalement de savoir dans
QUOI elles sont conservées.

Et enfin : dans quoi stocke-t-on les données revenant d'un
mysql_fetch_array (ou fetch_assoc, ou fetch_row) ? Evidemment, ceux qui
ont la mauvaise habitude d'utiliser fetch_object en ne comprenant
absolument pas pourquoi ça ne sert à rien et c'est idiot, évidememnt, là
on peut plus rien.
Post by stefen76
Si vous avez une autre piste...
Commencer par acquérir les bases (de la programmation, pas de données)
avant de se lancer dans des choses compliquées. La pagination des
résultats met en oeuvre énormément de notions (c'est d'ailleurs un
excellent exercice d'école).

Donc la première question à se poser, c'est d'où vient ledit tableau et
comment vous pouvez le conserver d'une page sur l'autre, quand à lire la
bonne plage de cases d'un tableau, quand il est indicé de 0 à N, ça ne
devrait pas être la partie la plus difficile... Rappelons aussi que les
tableaux de tableaux, ça existe, et qu'en PHP, à part les objets qui sont
des structures, le tableau associatif est la seule structure basique.

a++;
JG

(1) Non, ce n'est *pas* "the rythm of the night" (Corona, qui n'est pas
une marque de bière), il n'y a pas de y, j'ai encore failli me faire
avoir.
Jean-Marc Molina
2007-02-13 20:45:18 UTC
Permalink
Post by stefen76
Je remplace actuellement le système de gestion de template de mon
portail.
Mon ancien système de template gérait automatiquement la pagination
lors de l'affichage des enregistrements de ma base de données.
Simple curiosité, quel est le système que tu souhaites remplacer ? Smarty
pas si "smart" que ça ? :P
Post by stefen76
Maintenant je dois en implémenter un nouveau pour afficher les
enregistrements pages par parges avec la barre de navigation qui va
bien.
Je suis à la recherche d'un code qui me permettrait de réaliser cela,
- soit mes données son directement issues de ma base et j'ai une
boucle while... mysql_fetch_array
Il faut voir du côté de frameworks comme PEAR qui supporte les DAOs (Data
Access Objects) et propose des composants comme les Data Grids. Une fois le
DAO initialisé à partir de la source (BDD MySQL, fichier XML...) il suffit
de boucler (avec un "foreach" dans PHP 5 par exemple) sur les résultats pour
"nourrir" le composant d'interface (ici un Data Grid supportant la
pagination es données).
Post by stefen76
- soit mes données sont stockées dans un tableau et j'ai une boucle
for..
Si c'est pour un exercice je recommande le développement d'une interface au
DAO permettant d'accéder aux données d'un tableau. J'ai du mal à voir en
pratique dans quelle situation la source de données peut-être un tableau.
Mais ça reste un très bon exercice pour en apprendre plus sur le sujet.
"Parser" une source de données avec un "foreach" en PHP 5 reste assez
plaisant quand on s'est trainé la patte avec PHP 4 pendant des années. PHP 5
est beaucoup plus complet au niveau des structures de données et des
fonctionnalités OO.

En PHP 4 on peut aussi simuler ce comportement en implémentant sa propre
fonction générique à partir de "mysql_fetch_object". On peut alors
réutiliser son code et accéder à ses données, ex : «
$parsed_object->field_name ».

Je peux retrouver quelques didacticiels sur ces sujets si tu es un peu
perdu.

Continuer la lecture sur narkive:
Loading...