IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

pagination en c++


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut pagination en c++
    bonjour tout le monde,

    je voudrais savoir est ce que c'est possible de faire une pagination en c++
    ci oui comment fait on?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query(mySQL, "select nom,num from client order by num DESC LIMIT 0,5")
    merci,

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour,
    Peux-tu préciser ta question ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut
    par exemple dans ma table j'ai 100 entrées et je voudrais les affichée par 10 dans une listebox ou autre et en clikent un bouton j'affiche les 10 prochaints ainsi de suite et un autre bouton ou je revient sur les 10 précédent

    merci 3DArchi

  4. #4
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 032
    Billets dans le blog
    12
    Par défaut
    Tu dois le faire toi-même :
    - Tu stockes les 100 résultats de ta requête
    - Tu mets les 10 premiers dans ta listbox
    - Quand tu cliques sur suivant, tu vides ta listbox et tu y mets les 10 suivants
    - Quand tu cliques sur précédent, tu vides ta listbox et tu y mets les 10 précédents
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut
    Citation Envoyé par dragonjoker59 Voir le message
    Tu dois le faire toi-même :
    - Tu stockes les 100 résultats de ta requête
    - Tu mets les 10 premiers dans ta listbox
    - Quand tu cliques sur suivant, tu vides ta listbox et tu y mets les 10 suivants
    - Quand tu cliques sur précédent, tu vides ta listbox et tu y mets les 10 précédents
    si je pouvais le faire moi même je n'aurais pas eu besoin de poster sur le forum

    ce dont j'ai besoin c'est qu'on m'explique un peut comment on fait que je sache le faire une fois pour toute pasque la c'est juste la théorie et de la théorie j'en ai a la pelle a revendre

  6. #6
    la_tupac
    Invité(e)
    Par défaut
    Je pense qu'il serait préférable d'apprendre le C++ avant ...
    Tu semble utiliser php, je ne connais pas ton niveau, mais le C++ est un langage bien plus puissant et complexe. Désolé d'être brutal, mais ta question ressemble beaucoup à du "faites mes devoirs s'il vous plait!".

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut
    Citation Envoyé par la_tupac Voir le message
    Je pense qu'il serait préférable d'apprendre le C++ avant ...
    Tu semble utiliser php, je ne connais pas ton niveau, mais le C++ est un langage bien plus puissant et complexe. Désolé d'être brutal, mais ta question ressemble beaucoup à du "faites mes devoirs s'il vous plait!".
    Ho que non je n'es jamais demander a ce qu'on me fasse quoi que ce soit je cherche a comprendre rien d'autre je c'est que le c++ est un langage bien plus complexe en parlant de php c'est un langage que je maitrise quand même bien et je l'ai appris sur le tat en posant toute sortes de questions a droite et a gauche de la plus stupide a la moins stupide et je compte en faire de même pour le c++ quite a ce que je pose des questions pandants 10 ans maintenant si je ne trouve pas de réponses ici sa ne m'arrêteras pas je trouverai autre part et si pour vous, demander de l'aide sa veux dir un truque du genre "faite moi mes devoirs" alors il y a beaucoup de personne qui n'ont rien a faire ici non et encore une chose : "poser des questions fait partit de l'apprentissage car nul ne réussis sans poser de question".
    amicalement

  8. #8
    la_tupac
    Invité(e)
    Par défaut
    Soit c'est en posant des questions qu'on avance, mais le forum n'est pas la pour enseigner le c++ il est ici pour aider ceux qui comprennent mal. Toi tu arrives avec un cahier des charges et tu demande "comment on fait". Tu n'as donc pas cherché avant.

    Bon sinon voilà un ptit début:
    tu crée une array de std::string : std::string liste[100]
    et une autre juste pour les éléments affichés : std::string affiche[10]
    et un offset pour savoir à quelle "page" tu en est : int offset = 0;

    ensuite une fonction qui remplit la liste affichée:

    void rempli(std::string *list_affich, std::string *liste_complete, int *offset)
    {
    for(int i=0; i<10; i++) liste_affich[i] = liste_complete[i+offset*10];
    }

    et voilà.

  9. #9
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par keusty78 Voir le message
    par exemple dans ma table j'ai 100 entrées et je voudrais les affichée par 10 dans une listebox ou autre et en clikent un bouton j'affiche les 10 prochaints ainsi de suite et un autre bouton ou je revient sur les 10 précédent

    merci 3DArchi
    Comment est construite ton application : avec les MFC ? Qt ? Win32 ? wxWidgets ? autres ? La façon de remplir une liste box va dépendre aussi un peu de ça.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut
    Citation Envoyé par la_tupac Voir le message
    Soit c'est en posant des questions qu'on avance, mais le forum n'est pas la pour enseigner le c++ il est ici pour aider ceux qui comprennent mal. Toi tu arrives avec un cahier des charges et tu demande "comment on fait". Tu n'as donc pas cherché avant.

    Bon sinon voilà un ptit début:
    tu crée une array de std::string : std::string liste[100]
    et une autre juste pour les éléments affichés : std::string affiche[10]
    et un offset pour savoir à quelle "page" tu en est : int offset = 0;

    ensuite une fonction qui remplit la liste affichée:

    void rempli(std::string *list_affich, std::string *liste_complete, int *offset)
    {
    for(int i=0; i<10; i++) liste_affich[i] = liste_complete[i+offset*10];
    }

    et voilà.
    merci tupac j'avais trouver une astuce qui marche bien mai merci quan meme c'est sympa.

    ce si dis j'arrive avec un cahier des charge?!! en plus avant de poster j'ai chercher et j'ai rien trouver mais t'imagine si tous les forum disais cherche avant de poster il n'y aurais jamais de réponse sur le net a quoi sert ce forum si a chaque fois on dis cherche ailleur

    mai bon je crois qu'en faite je me suis mal exprimé je m'en excuse mai merci quand même pour le tyuau

  11. #11
    la_tupac
    Invité(e)
    Par défaut
    Je t'en prie y'a pas de soucis. Ce que je veux dire c'est qu'ici on aide, on dépanne les problèmes, mais en C/C++ à l'inverse du php, pour aborder une conception (fonction, class, plugins, programe entier ...), il faut conaitre précisément le fonctionnement du code, la construction/destruction de variables, les outils de la SDL, l'héritage ..... Même si la syntaxe ressemble un peut, le php n'est pas un langage de programmation, c'est du script pour machine virtuelle (en l'occurence un serveur php). C'est pourquoi je te conseille de lire les exelents tutos de ce même site. Tu comprendra vite le fossé énorme entre ces languages.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut
    Citation Envoyé par la_tupac Voir le message
    Je t'en prie y'a pas de soucis. Ce que je veux dire c'est qu'ici on aide, on dépanne les problèmes, mais en C/C++ à l'inverse du php, pour aborder une conception (fonction, class, plugins, programe entier ...), il faut conaitre précisément le fonctionnement du code, la construction/destruction de variables, les outils de la SDL, l'héritage ..... Même si la syntaxe ressemble un peut, le php n'est pas un langage de programmation, c'est du script pour machine virtuelle (en l'occurence un serveur php). C'est pourquoi je te conseille de lire les exelents tutos de ce même site. Tu comprendra vite le fossé énorme entre ces languages.
    ok je vais suivre ton conseil tupac merci pour tout ces renseignement c'est cool de ta par j'apprends j'apprends je lache pas

  13. #13
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 633
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 633
    Par défaut
    Salut,

    A défaut de savoir quelle bibliothèque graphique tu utilise, voici ce que l'on peut dire:

    Tu pourrais parfaitement effectuer une requête qui demande de sélectionner les bons enregistrements avec limit debut, fin, mais il faut avouer que cela risque de devenir rapidement impossible pour le serveur, car chaque fois que tu cliquera sur le bouton précédent ou suivant, tu lui enverra une nouvelle requête...

    Tant que tu sera seul à utiliser le serveur, cela pourra aller, mais, plus tu auras d'utilisateurs qui feront pareil, plus tu risque de le surcharger

    La moins mauvaise solution (pour autant que tu obtienne un nombre décent d'enregistrements ) est donc d'effectuer une seule requête qui récupérera l'ensemble des enregistrements correspondants et de les charger dans une collection (par exemple un tableau, cela semble vraiment pas mal )

    d'un autre coté, tu maintiens, simplement, une variable qui indique l'indice du premier enregistrement que tu as placé dans ta listbox, et, si tu souhaite pouvoir sélectionner le nombre d'enregistrements à placer dedans, une variable qui puisse représenter ce nombre

    Lorsque tu cliques sur "précédent", tu soustrait le nombre d'enregistrements à afficher de l'indice, en veillant à ce qu'il reste toujours plus grand ou égal à 0 (car le premier indice d'un tableau est 0).

    Lorsque tu clique sur "suivant" tu additionne le nombre d'enregistrements à afficher à l'indice, et tu veille à ce que le nouvel indice obtenu + le nombre d'enregistrements à afficher ne te fasse pas sortir de l'indice correspondant au dernier enregistrement sauvegardé.

    Si c'est le cas, tu limite le nombre d'enregistrements à afficher au nombre d'enregistrements qu'il est possible d'afficher

    Il te restera simplement à vider ta listbox (mais la manière de le faire dépendra de la bibliothèque d'IHM que tu utilise), rajouter le nombre d'enregistrements que tu veux insérer en partant... de l'indice que tu as calculé .

    Maintenant, si tu souhaite avoir un code, il faudra nous donner d'avantage d'informations et "mouiller ta chemise" pour nous prouver que tu mérites qu'on te le donne
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pagination : numéroter sous la forme (1/4)
    Par audreyb dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 01/03/2013, 11h59
  2. [VB.NET] Pagination DataGrid (où est l'erreur?)
    Par franculo_caoulene dans le forum ASP.NET
    Réponses: 2
    Dernier message: 25/10/2004, 11h46
  3. [C#] Probleme de pagination dans datagrid
    Par asphareth dans le forum ASP.NET
    Réponses: 2
    Dernier message: 21/07/2004, 11h25
  4. [VB.NET] Pagination DataGrid
    Par sehing dans le forum ASP.NET
    Réponses: 5
    Dernier message: 20/07/2004, 16h28
  5. Réponses: 15
    Dernier message: 20/07/2004, 09h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo