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

PHP & Base de données Discussion :

Multiple Pagination sur ume même page HTML


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de RastaBomboclat
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2014
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 240
    Par défaut Multiple Pagination sur ume même page HTML
    Bonjour,

    J'ai un script de pagination qui fonctionne très bien sur une page pour un et un seul bloc (section html).
    Mon souhait est d'avoir le script qui fonction pour plusieurs bloc (sections) différentes sur une seule et même page.

    le code ci-dessous fonctionne bien quand il s'agit d'une seule section qu'il doit paginer. Mais quand, sur la meme page j'inclue d'autre section à paginer, même si je sépare chaque section_html avec son code de pagination, il ne fonctionne plus, ou il fonctionne en affectant/agissant sur toutes les sections de ma page.

    voici le code que j'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <?php
    /* Gestion filtre par page */
    @$lapageEse = $_GET['page'];
    if(empty($lapageEse)) $lapageEse=1;
    $myRowperpageEse = 4;
    $myTotaldataEse = $connexion_02->query('SELECT id_tbl1 FROM tbl1');
    $myCounttotaldataEse = $myTotaldataEse->rowCount();
    $myTotalpageEse = ceil($myCounttotaldataEse/$myRowperpageEse);
    $leDebutEse = ($lapageEse-1)*$myRowperpageEse;
    $myFetch = $connexion->prepare("SELECT tbl1.id_tbl1, tbl1.coln2, tbl1.coln3, tbl1.fk_id_tbl2, tbl2.id_tbl2, tbl2.coln2, tbl2.coln3 FROM tbl1 INNER JOIN tbl2 ON tbl1.fk_id_tbl2 = tbl2.id_tbl2 LIMIT $leDebutEse,$myRowperpageEse");
    ?>
    /* dans la page html */
    <div id="pagination" class="d-flex justify-content-center mb-3">
        <?php
            for ($ii=1; $ii<=$myTotalpageEse; $ii++) { 
                //echo '<a href="">'.$i.'</a> &emsp;';
                echo "<a class=\"btn btn-outline-primary\" href='?page=$ii#my_liste'>$ii</a> &emsp;";
            }
        ?>
    </div>
    Merci d'avance pour toutes vos contributions.

  2. #2
    Membre éclairé Avatar de RastaBomboclat
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2014
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 240
    Par défaut
    Bonjour,
    Après pratiquement une semaine d'attente et plus de 80 Vue, sans une seul proposition de solution, je pense àller chercher du coté d'AJAX. Peut-être que j'y trouverai une solution.
    Je clos cette discussion.

  3. #3
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 571
    Par défaut
    je ne pense pas qu'ajouter du code javascript va vous permettre de faire ce que vous souhaitez.

    montrez nous le code que vous avez essayé avec les 2 paginations et le débugage que vous avez fait.

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 496
    Par défaut
    Bonjour,

    Comme mathieu vous à dit, ce n'est pas JS qui va vous aider à trouver une solution, PHP pourrait le faire aussi.

    Mais avant il faudrait d'abord comprendre le principe de la pagination, ce qui n'est pas le cas, parce que lorsque vous exécutez la requête SELECT id_tbl1 FROM tbl1, là vous récupérer toutes les lignes de votre table, alors qu'une bonne pagination consiste à récupérer seulement un nombre limité de lignes à afficher par page (soit 1, 5, 10, 20...).

    Vous devriez compter le nombre totale des lignes avec select count(id_tbl1) from tbl1 et récupérer le résultat avec PDO::fetchColumn() et la stocker dans la variable $myCounttotaldataEse, et ensuite utiliser un limit offset, length dans la deuxième requête qui récupère les données, dont offset est la valeur d'index de début de la sélection et length est le nombre de ligne à afficher par page.

  5. #5
    Membre éclairé Avatar de RastaBomboclat
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2014
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 240
    Par défaut
    Bonjour Et merci pour vos réponses.

    Mathieu, je vais t'envoyer des demain, le code que j'ai pour plusieurs paginations. Je l'ai dans mon ordi de service.

    Toufik83 tes explications me font sentir la solution à mon problème. Mais je maîtrise pas tous SQL et les fonctions telles que Offset...😟😔 Mais je vais essayer de faire quelque chose avec (Google est là &#128513.

    Merci encore.

  6. #6
    Membre éclairé Avatar de RastaBomboclat
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2014
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 240
    Par défaut
    Bonjour Mathieu,

    Voici les codes que j'utilise pour filtrer le résultat de mes recherche sur une page. Il y a 2 sections et chacun d'eux a sont code de filtrage.

    Code de la première Section;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <?php
    //Gestion filtre par page 
    @$lapageEse = $_GET['page'];
    if(empty($lapageEse)) $lapageEse=1;
    $myRowperpageEse = 4;
    $myTotaldataEse = $connexion_02->query('SELECT id_tbl1 FROM tbl1');
    $myCounttotaldataEse = $myTotaldataEse->rowCount();
    $myTotalpageEse = ceil($myCounttotaldataEse/$myRowperpageEse);
    $leDebutEse = ($lapageEse-1)*$myRowperpageEse;
    $myFetch = $connexion->prepare("SELECT tbl1.id_tbl1, tbl1.coln2, tbl1.coln3, tbl1.fk_id_tbl2, tbl2.id_tbl2, tbl2.coln2, tbl2.coln3 FROM tbl1 INNER JOIN tbl2 ON tbl1.fk_id_tbl2 = tbl2.id_tbl2 WHERE tbl1.coln3 = 'Insuffisant' ORDER BY tbl1.id_tbl1 DESC LIMIT $leDebutEse,$myRowperpageEse");
    /* dans la page html */
    <div id="pagination" class="d-flex justify-content-center mb-3">
        <?php
            for ($ii=1; $ii<=$myTotalpageEse; $ii++) { 
                //echo '<a href="">'.$i.'</a> &emsp;';
                echo "<a class=\"btn btn-outline-primary\" href='?page=$ii#my_liste'>$ii</a> &emsp;";
            }
        ?>
    </div>
    ?>
    Code de la deuxième Section

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <?php
    @$lapage = $_GET['page'];
    if(empty($lapage)) $lapage=1;
    $my_Rowperpage = 4;
    $my_Totaldata = $connexion_02->query('SELECT id_tbl1 FROM tbl1');
    $my_Counttotaldata = $my_Totaldata->rowCount();
    $my_Totalpage = ceil($my_Counttotaldata/$my_Rowperpage);
    $le_Debut = ($lapage-1)*$my_Rowperpage;
    $myFetch = $connexion->prepare("SELECT tbl1.id_tbl1, tbl1.coln2, tbl1.coln3, tbl1.fk_id_tbl2, tbl2.id_tbl2, tbl2.coln2, tbl2.coln3 FROM tbl1 INNER JOIN tbl2 ON tbl1.fk_id_tbl2 = tbl2.id_tbl2 WHERE tbl1.coln3 = 'Excellent' ORDER BY tbl1.id_tbl1 DESC  LIMIT $leDebutEse,$myRowperpageEse");
     
    /* dans la page html */
    <div id="pagination" class="d-flex justify-content-center mb-3">
        <?php
            for ($ii=1; $ii<=$my_TotalpageEse; $ii++) { 
                echo "<a class=\"btn btn-outline-primary\" href='?page=$ii#my_liste'>$ii</a> &emsp;";
            }
        ?>
    </div>

  7. #7
    Membre éclairé Avatar de RastaBomboclat
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2014
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 240
    Par défaut
    Bonjour,

    Je viens partager avec vous une des solutions que j’ai trouvé sur le Net.

    C’est un plugin très puissant qui a satisfait à mes attentes et j’espère que ce sera pareil avec vous.

    Voici les liens. Explorer le site et vous verrez les possibilités que ce plugin offre.

    Le premier lien DataTables
    Le second lien DataTaables

    Un petit pouce vert serait cool.

  8. #8
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 496
    Par défaut
    Bonjour,

    C'est mon plugin préféré, et je voulais vous le suggéré au début, mais j'ai changé d'avis puisque la discussion est sur le forum PHP et pas jQuery.

    Sinon, avez -vous utilisé le mode serverSide du plugin ou bien seulement client side ?

  9. #9
    Membre éclairé Avatar de RastaBomboclat
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2014
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 240
    Par défaut
    Citation Envoyé par Toufik83 Voir le message
    Sinon, avez -vous utilisé le mode serverSide du plugin ou bien seulement client side ?
    Bonjour Toufik83
    Je n’ai utilisé que la frontend, puisque je pouvais déjà extraire mes données de la bdd et les afficher aisément dans un tableau sur ma page. Ce plugin m’a permis de faire des filtre, recherche, sur un et plusieurs tableaux à fois. C’est bien plus que ce á quoi je m’attendais.

    Mais comme en développement il y a toujours un hic quelque part, je vais créer une autre discussion pour une autre aide (php toujours).

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/01/2013, 08h40
  2. [1.x] Double pagination sur une même page
    Par NickoX9 dans le forum Symfony
    Réponses: 5
    Dernier message: 30/09/2012, 18h59
  3. [HTML 5] affichage du la page du lien sur la même page html
    Par hanadi_09 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 02/11/2010, 15h00
  4. Affichage du résultat d'une requête sur la même page html
    Par hanadi_09 dans le forum Développement Web en Java
    Réponses: 9
    Dernier message: 24/10/2010, 08h18
  5. horloges multiples sur une même page
    Par pnd.frederic dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/02/2009, 16h41

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