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 :

Utilisation LIMIT pour une pagination [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 42
    Par défaut Utilisation LIMIT pour une pagination
    Bonjour,

    Je cherche à avoir un bouton suivant et précédent lors d'un recherche en limitant le nombre d'enregistrement visible sur la page à 10 environs. Malheureusement je ne sais pas vraiment comment placé mon "LIMIT" et le lien qui doit aller avec. J'ai une page de fonction (l'endroit où il y a toutes mes requêtes) et une page sur laquelle les fonctions s'exécute (endroit où je souhaite avoir les liens. Est-ce que quelqu'un peu me mettre sur une piste en m'expliquant un chouillat ?

    Merci d'avance!!

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Je te propose un truc : ce que tu cherches à faire s'appelle une "pagination" : tu peux chercher dans le forum en utilisant ce terme ^^

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 42
    Par défaut
    Ha bein cool... c'est déjà ça! Merci!

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Si tu ne trouves pas, tu peux essayer à partir de ceci :

    Code SQL : 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
    CREATE TABLE `xmen` (
      `id` int(11) NOT NULL auto_increment,
      `personnage` varchar(255) NOT NULL default '',
      `acteur` varchar(255) NOT NULL default '',
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=12 ;
     
    INSERT INTO `xmen` VALUES (1, 'Wolverine', 'Hugh Jackman');
    INSERT INTO `xmen` VALUES (2, 'Magneto', 'Ian McKellen');
    INSERT INTO `xmen` VALUES (3, 'Professeur X', 'Patrick Stewart');
    INSERT INTO `xmen` VALUES (4, 'Docteur Jean Grey', 'Famke Janssen');
    INSERT INTO `xmen` VALUES (5, 'Tornade', 'Halle Berry');
    INSERT INTO `xmen` VALUES (6, 'Cyclope', 'James Marsden');
    INSERT INTO `xmen` VALUES (7, 'Malicia', 'Anna Paquin');
    INSERT INTO `xmen` VALUES (8, 'Dents-de-Sabre', 'Tyler Mane');
    INSERT INTO `xmen` VALUES (9, 'Crapaud', 'Ray Park');
    INSERT INTO `xmen` VALUES (10, 'Mystique', 'Rebecca Romijn'); INSERT INTO `xmen` VALUES (11, 'Pyro', 'Alex Burton');

    Code X : 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', 'bprevot');
    if(!$conn) {
    die('Impossible de se connecter au serveur.');
    }
    // Connexion à la base de données
    $db = mysql_select_db('test', $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>

    (Auteur : nesmoutou)

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

Discussions similaires

  1. garder les valeurs d'un array pour une pagination
    Par berti dans le forum Langage
    Réponses: 4
    Dernier message: 08/07/2008, 19h04
  2. Comment utiliser latex pour une présentation
    Par fraisa1985 dans le forum Beamer
    Réponses: 9
    Dernier message: 21/05/2008, 10h16
  3. Utilisation ressources pour une appdata?
    Par Phelix2003 dans le forum MATLAB
    Réponses: 1
    Dernier message: 16/10/2007, 11h56
  4. [VBA-E] Utilisation .Find pour une recherche
    Par Larsen21 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/12/2006, 13h18
  5. [jsp] Bonne conception pour une pagination ?
    Par chriswest dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 13/12/2005, 10h23

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