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

Langage PHP Discussion :

pagination sur tableau


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Avril 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Avril 2013
    Messages : 29
    Par défaut pagination sur tableau
    Bonjour,


    voila j'ai crée un tableau qui est remplie grace a une requete sql .
    j'ai filtrer les resultat pour n'afficher que 5 resultat par page et j'aimerais maintenant faire la pagination.

    voici le code :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
     
    <?php
    session_start();
    require("auth.php");
    if(Auth::isLogged()){
     
    }
    else{
        header('location:login.php');
    }
    print_r($_SESSION);
    ?>
    <?php
    {
        $bdd= new PDO('mysql:host=localhost;dbname=tuto','root','root');
    }
    //Une connexion SQL doit être ouverte avant cette ligne...
    $retour_total=mysql_query('SELECT COUNT(*) AS total FROM intervention'); //Nous récupérons le contenu de la requête dans $retour_total
    $donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
    $total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.
     
     
     
    $messagesParPage=5; //Nous allons afficher 5 messages par page.
     
    //Une connexion SQL doit être ouverte avant cette ligne...
    $retour_total=mysql_query('SELECT COUNT(*) AS total FROM intervention'); //Nous récupérons le contenu de la requête dans $retour_total
    $donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
    $total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.
     
    //Nous allons maintenant compter le nombre de pages.
    $nombreDePages=ceil($total/$messagesParPage);
     
    if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
    {
         $pageActuelle=intval($_GET['page']);
     
         if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
         {
              $pageActuelle=$nombreDePages;
         }
    }
    else // Sinon
    {
         $pageActuelle=1; // La page actuelle est la n°1    
    }
     
    $premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire
     
    // La requête sql pour récupérer les messages de la page actuelle.
    $retour_messages=mysql_query('SELECT * FROM intervention ORDER BY id DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'');
     
    while($donnees_messages=mysql_fetch_assoc($retour_messages)) // On lit les entrées une à une grâce à une boucle
     
    ?>
    <?php
    $retour_messages=mysql_query('SELECT * FROM intervention ORDER BY id DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'');
     
    while($donnees_messages=mysql_fetch_assoc($retour_messages))
    { 
    ?>
                                <tr>
                                    <td ><input type="checkbox" /></td>
                                    <td><?php echo $donnees_messages['id']; ?></td>
                                    <td><a href="#"><?php echo $donnees_messages['date'];?></a></td>
                                    <td><a href="#"><?php echo $donnees_messages['nom']; ?></a></td>
                                    <td><a href="#"><?php echo $donnees_messages['prenom']; ?></td>
                                    <td><a href="#"><?php echo $donnees_messages['tel']; ?></td>
                                    <td><a href="#"><?php echo $donnees_messages['marque']; ?></td>
                                    <td><a href="#"><?php echo $donnees_messages['models']; ?></td>
                                    <td class="actions"> <a href="del.php?id= <?php echo $donnees_messages['id']?>" <title="Delete this content"><img src="img/icons/actions/delete.png" alt="" /></a></td>
                                    <?php
    }
    echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
    for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
    {
         //On va faire notre condition
         if($i==$pageActuelle) //Si il s'agit de la page actuelle...
         {
             echo ' [ '.$i.' ] '; 
         }  
         else //Sinon...
         {
              echo ' <a href="intervention.php?page='.$i.'">'.$i.'</a> ';
         }
    }
    echo '</p>';
    ?>
     
                               </tr>
     
                            </tbody>
                        </table>
                        <div class="left input">
                            <select name="action" id="tableaction">
                                <option value="">Action</option>
                                <option value="delete">Supprimer</option>
                                <option value="delete">resuturer</option>
                            </select>
                        </div>
                        <div class="pagination"> // voici la pagination que j'aimerais avoir . 
                            <a href="#" class="prev">«</a>
                            <a href="#">1</a>
                            <a href="#" class="current">2</a>
                            ...
                            <a href="#">21</a>
                            <a href="#">22</a>
                            <a href="#" class="next">»</a>
                        </div>
                    </div>
                </div>
     
     
            </div>
     
        </body>
    </html>

    je vous joint une photo qui vous expliqueras se que j'essaie de faire .



    merci de votre aide.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 111
    Par défaut
    Bonjour,
    Connais tu JQGrid (un plugin de JQuery) qui te fais exactement ce que tu souhaite
    JQGrid

    Sinon tu peux balader ta variable page en avec des variable session, pour te souvenir de ce que l'utilisateur avait demandé et ainsi afficher comme tu le souhaite.
    lorsque tu clique sur tes choix de pages en haut, ça envoi ton formulaire avec $page (tu peux le faire rapidement en js) qui à la bonne valeur. et ainsi ça te recharge ta page avec les bonnes valeurs de ton tableau

  3. #3
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Avril 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Avril 2013
    Messages : 29
    Par défaut plugin
    non je ne connais pas le plugin et je ne suis pas encore a l'aise avec les plugin.

    j'ai commencer php il y a une semaine et je nage un peux mais je commence a comprendre un peux le fonctionnement.

    sur la photo la pagination qui se trouve ne haut ne me convient pas car si j'ai 50 page cela va m'afficher les lien des 50 page .

    j'aimerais vraiment trouve un moyen d'avoir la meme pagination que sur le Template html que j'ai trouver .

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 111
    Par défaut
    A la place de
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div class="pagination"> // voici la pagination que j'aimerais avoir . 
    <a href="#" class="prev">«</a>
    <a href="#">1</a>
    <a href="#" class="current">2</a>
                            ...
    <a href="#">21</a>
    <a href="#">22</a>
    <a href="#" class="next">»</a>
    </div>

    tu met
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div class="pagination"> // voici la pagination que j'aimerais avoir . 
    <?php
    for($i=0;$i<$nombreDePages;$i++)
    echo "<a href='tapage.php?page=".$i."'>$i</a>";
    ?>
    </div>

    il n'y aura pas le ... mais tu pourra cliquer sur des pages. Pour les ... plusieurs possibilités s'offre à toi. Tout dépend de ce que tu souhaite afficher lorsque tu clique dessus.

  5. #5
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Avril 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Avril 2013
    Messages : 29
    Par défaut pagination
    ok cela fonction et en plusse je comprend comment sa marche .

    pour l'instant j'ai le resultat : 1.2.3.4.5.6.7.8.9 et je cherche a avoir un rendu pluto : < 1,2..........8,9>.

    je veux eviter d'avoir tout les liens des page.

    pour l'instant la pagination me trie 20 resultat par page . et les lien en bas du tableau envoi un get avec le numeros de page .

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Par défaut
    a mon avis, si tu veux un systeme de pagination utile, il faut qu'on puisse accéder a la page précédente et suivante dans ta navigation
    il faudrait que tu arrives a représenter un résultat du genre:
    1 2 3 4
    1 ... 4 5 6 .. 18
    1 2 3... 18
    1 ... 16 17 18
    1 2... 18
    1 ... 17 18

    je suis sur qu'avec ces cas particuliers tu peux faire toi meme l'algo, c'est tout a fait possible pour ton niveau et c'est un bon exercice

Discussions similaires

  1. Tableau perpetuel paginé sur une feuille A4
    Par lemurien34 dans le forum Deski
    Réponses: 4
    Dernier message: 21/01/2015, 17h33
  2. [ActionListener] Evénement sur tableau de boutons
    Par frouge dans le forum Composants
    Réponses: 5
    Dernier message: 08/10/2011, 02h44
  3. Problème pagination sur tableau filtré
    Par smotte761 dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 12/08/2011, 21h48
  4. loop sur tableau associatif
    Par Plawi dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 28/02/2005, 11h29
  5. Réponses: 25
    Dernier message: 16/07/2003, 20h41

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