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, 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
Merci, mais je connais ce code, et cela fonctionne uniquement sur des données issues directement d'une table... Ah.
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.
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.
Merci, mais je connais ce code, et cela fonctionne uniquement sur des
données issues directement d'une table...
Ah.
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.
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.
Merci, mais je connais ce code, et cela fonctionne uniquement sur des données issues directement d'une table... Ah.
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.
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
stefen76 wrote:
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
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
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).
- 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.
stefen76 wrote:
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
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
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).
- 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.
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
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
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).
- 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.