Systeme de page en php

kalidou -  
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je voudrais savoir comment faire un systeme de pages en php pour afficher dans le site les projets disponible, pour cela j'ai cree une table projet dans mysql.
toutes propositions est la bienvenue


3 réponses

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Salut.

Quel est le problème ?
Lister les projets ?
Faire la pagination (dans ce cas, regarde ici) ?
0
kalidou
 
oui lister les projets
en affichant page 1 2 3 etc ...
tu vois et ceci en php
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Il faut passer le numéro de la page par argument GET.
Si la page n'est pas indiquée dans l'URL, alors il faut fixer la variable "$page" à 1 (page par défaut).

Ensuite, en fonction du nombre de résultats désirés par page, tu fais une requête en utilisant la clause LIMIT. Cette clause va permettre de délimiter l'emplacement du premier résultat à prendre et le nombre de résultats à prendre. "LIMIT 5,4" veut dire "À partir du 5ème résultat, en prendre 4).
Il ne te restera plus qu'à afficher les résultats avec une boucle.

Et pour terminer, tu peux utiliser la fonction données dans le lien que je t'ai passé pour faire la pagination.

Voilà ce que ça donne :
<?php
require 'libs/function_pagina.php';

/* Définition de la variable $page */
$page = (isset($_GET['page']) && (int) $_GET['page'] !== 0) ?
    (int) $_GET['page'] :
    1;

/* Définition du premier résultat à prendre dans la requête SQL */
$premierResultat = ($page - 1) * PAGINA_PER_PAGE;

/* Ouverture de la connexion à MySQL et exécution de la requête */
$pdo = new PDO('mysql:host=localhost;dbname=db_test','root','');
$sql = 'SELECT * FROM projets LIMIT '.$premierResultat.', '.PAGINA_PER_PAGE;
$req = $pdo->query($sql);
$req->setFetchMode(PDO::FETCH_OBJ);

/* Affichage des projets récupérés */
while($projet = $req->fetch()) {
    echo $projet->nom.'<br/>';
}

/* Affichage des liens de pagination */
pagination('projets', $page);
?>
0