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 :

Pagination d'un résultat de requête [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Pagination d'un résultat de requête
    http://php.developpez.com/sources/?p...ysqlpagination

    J'ai un problème avec ce tutoriel.
    Une fois la requête SQL effectuée, et que je vais sur la page PHP, les 5 premières occurrences s'affichent correctement.
    Mais je ne peux pas aller sur les pages 1 & 2 et afficher 10 et 20 résultats par page.

    Merci pour votre aide.

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, peux-tu nous donner les détails ?
    - Messages d'erreur
    - Résultats des requêtes qui ne sont pas corrects
    - Un peu de code
    - ...

    Bon développement

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Il n'y a pas de message d'erreur, quand je cllique sur [1] [2] et sur [10][20], rien ne se passe



    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
    <?php
    // Numéro de la page à afficher
    $page = 0;
    if(isset($_GET['page']) && is_int($_GET['page'])) {
    $page = $_GET['page'];
    }
    // Nombre de résultats par page
    $nb = 5;
    if(isset($_GET['nb']) && is_int($_GET['nb'])) {
    $nb = $_GET['nb'];
    }
    // Connexion au serveur de base de données
    $conn = mysql_connect('localhost', 'root', 'root');
    if(!$conn) {
    die('Impossible de se connecter au serveur.');
    }
    // Connexion à la base de données
    $db = mysql_select_db('films', $conn);
    if(!$db) {
    die('Impossible de se connecter à la base de données.');
    }
    // Nombre total d'enregistrements
    $sql = '
    SELECT COUNT(*) FROM xmen;
    ';
    $query = mysql_query($sql, $conn) or die('Erreur MySQL : '.mysql_error());
    $row = mysql_fetch_row($query);
    $total = $row[0];
    // Nombre maximum de pages
    $max_pg = ceil($total / $nb);
    // Selection des enregistrements pour la page considérée
    $sql = '
    SELECT id, personnage, acteur
    FROM xmen
    LIMIT '.($page * $nb).','.$nb.'
    ';
    $query = mysql_query($sql, $conn) or die('Erreur MySQL : '.mysql_error());
    ?>
    <p>Page actuelle : <?= $page ?></p>
    <p>Nb d'enregistrements par page : <?= $nb ?></p>
    <table>
    <tr>
    <th>ID</th>
    <th>Personnage</th>
    <th>Acteur</th>
    </tr>
    <?php
    while($list = mysql_fetch_assoc($query)) {
    echo '<tr>';
    echo '<td>'.$list['id'].'</td>';
    echo '<td>'.$list['personnage'].'</td>';
    echo '<td>'.$list['acteur'].'</td>';
    echo '</tr>';
    }
    ?>
    </table>
    <p>Pages :
    <?php
    for($i = 0 ; $i < $max_pg ; $i++) {
    echo ' <a href="?page='.$i.'&nb='.$nb.'">'.$i.'</a>';
    }
    ?>
    </p>
    <p>Nb d'enregistrements par page :
    <a href="?page=<?= $page ?>&nb=5">5</a>
    <a href="?page=<?= $page ?>&nb=10">10</a>
    <a href="?page=<?= $page ?>&nb=20">20</a></p>

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Je pense que ce sont les tests avec is_int qui sont toujours faux étant donné que toute variable transitant par la méthode GET (comme POST par ailleurs) est une chaîne (elles ne restent pas de type entier ici).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // Numéro de la page à afficher
    $page = 0;
    if(isset($_GET['page'])) {
    $page = intval($_GET['page']);
    }
    // Nombre de résultats par page
    $nb = 5;
    if(isset($_GET['nb'])) {
    $nb = max(intval($_GET['nb']), $nb); // Assure au moins $nb résultats par page
    }
    On peut conserver l'idée des tests sur le "type" de la variable $_GET['nb'] (rendus ici superflus par les casts) via des fonctions comme ctype_digit, is_numeric (voir une expression régulière ).

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Excellent, merci beaucoup

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

Discussions similaires

  1. Pagination d'un résultat de requête
    Par Nesmontou dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 1
    Dernier message: 19/08/2013, 21h07
  2. [SQL] pagination d'un résultat d'une requête
    Par opeo dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/03/2007, 11h25
  3. Pagination d'un résultat de requête
    Par Methode dans le forum Langage
    Réponses: 1
    Dernier message: 03/01/2007, 16h47
  4. Réponses: 11
    Dernier message: 10/02/2006, 15h44

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