Problème avec ma Pagination

Azyrix

Azyrix Le 8 octobre 2016 à 18:19 (Édité le 25 janvier 2019 à 17:52)

Salut !
J'ai un petit problème avec mon système de pagination..
J'ai suivie le tuto de primFX sur ce système cependant je n'arrive pas a limiter ma pagination.

Je m'explique ..
Lorsque j'ai beaucoup de page et ben sa prend beaucoup de place et c'est a assez moche.
Alors j'aimerais que ma boucle for n'affiche que les 10premiere page puis ... et pour finir les 10 derniere page.
Par exemple on est sur la page 1 et donc il y a 
< précédent > 1 - 2 - 3 - 4 - 5 .... 15 - 16 - 17 - 18 - 19 - 20 < suivant >
Voila en gros c'est sa !

Voici mon code :

<?php
session_start();

    if(!isset($_SESSION['id']))
    {
        if(!isset($_SESSION['id'])) header('Location: index.php');
        exit();
      
        if (!isset($_SESSION['id']))
        {
          header('Location: index.php');
          exit();
        }
    }

$connexion = new PDO('mysql:host=127.0.0.1;dbname=myjoke', 'root', '');

$blagueParPage = 1;
$blagueTotalReq = $connexion->query('SELECT id FROM blague');
$blagueTotal = $blagueTotalReq->rowCount();
$blagueTotal = ceil($blagueTotal/$blagueParPage);

if(isset($_GET['page']) AND !empty($_GET['page']) AND $_GET['page'] > 0 AND $_GET['page'] <= $blagueTotal)
{
    $_GET['page'] = intval($_GET['page']);
    $pageCourante = $_GET['page'];
    } else {
        $pageCourante = 1;
}

$depart = ($pageCourante-1)*$blagueParPage;



if(isset($_SESSION['id']) AND !empty($_SESSION['id'])) 
{
    if(isset($_POST['message']) AND !empty($_POST['message']))
    {
        $message = htmlspecialchars($_POST['message']);

        $insertmsg = $connexion->prepare('INSERT INTO blague(pseudo_auteur, message) VALUES(?, ?)');
        $insertmsg->execute(array($_SESSION['pseudo'], $message));
    }

    ?>

    <html>
        <head>
            <title>MyJoke - Accueil</title>
            <meta charset="utf-8" />
            <link rel="stylesheet" type="text/css" href="accueil.css" />
        </head>

        <body>

        <div id="header">
        <a href="accueil.php"><img src="image/logo.png" alt="logo" /></a>
        <ul>
            <li><a href="#">Les Blagues</li></a>
            <li><a href="#">Le TOP !</li></a>
            <li><a href="redirection.php">Mon Profil</li></a>
            <li><a href="deconnecter.php">Se déconnecter</li></a>
        </ul>

        </div>

        <div class="section">
            <h2>Ajouter une nouvel blague ?</h2>
            <p style="text-decoration: underline;"><a href="condition">Avant de continuer ou de poster une blague, merci de regarder les conditions d'utilisation ici !</a></p>
        <br/>
    
        <form action="" method="post">
            <textarea placeholder="Ma Blague.." name="message" ></textarea>
            <br/>
            <br/>
            <input type="submit" value="Envoyer !" id="submit" />
        </form>

        <br/><br/>
        <h2>Les blagues :</h2>
        <br/><br/><br/>
            
                <?php
                $allmsg = $connexion->query('SELECT * FROM blague ORDER BY id DESC LIMIT '.$depart.','.$blagueParPage);
                while($data = $allmsg->fetch())
                    {
                ?>
                <div style="border: 1px double #EAEAEA; padding: 5px; width: 900px; margin: 0 auto; background-color: #F7F7F7;">
                    <b style="float: left; font-size: 18px; padding: 5px;"> De <?php echo $data['pseudo_auteur']; ?> : </b><br/>
                    <p style="text-align: left; padding: 8px; padding-left: 12px;"> <?php echo $data['message']; ?></p>

                <a href="action.php?t=1&id=<?php $data['id'] ?>"><img src="image/jaime.png" alt="j'aime" style="width: 25px; height: 25px; margin-left: 8px; margin-top: -20px;"/></a>
                <a href="action.php?t=2&id=<?php $id ?>"><img src="image/jaimepas.png" alt="j'aime pas" style="width: 25px; height: 25px; margin-left: 10px; margin-top: -20px; " /></a>
                </div>
                    <br/><br/><br/>            
                <?php
                    }
                ?>
                
                <br /><br/><br /><br/>


                <?php

            for($i=1;$i<=$blagueTotal;$i++) {
                if($i == $pageCourante) {
                    echo $i.'  ';
            } else {
                echo ' <a href="accueil.php?page='.$i.'">'.$i.'</a> ';
            }
    }

        ?>
        </div>
        </body>
    </html>
<?php
}
else
{
    header('Location: index.php');
}
?>
Voila si vous avez des idées ou des solution n'hésitez pas !

Cordialement Azyrix
WhiiTe

WhiiTe Le 8 octobre 2016 à 18:23

Salut,

Je t'invite à lire ceci que j'ai trouvé sur le net en deux secondes de recherche, ça pourrait t'aider. ;-)
  • http://www.petit-kiwi.com/php-creation-pagination-avancee
Azyrix

Azyrix Le 8 octobre 2016 à 18:34

Merci pour ta réponse
J'avais deja vu ce tuto mais en faite j'ai rien compris..

Cordialement Azyrix
Profil introuvable

Profil introuvable Le 8 octobre 2016 à 19:56

Salut 
https://www.primfx.com/article/tuto-php-systeme-pagination-182
Azyrix

Azyrix Le 8 octobre 2016 à 20:16 (Édité le 8 octobre 2016 à 20:21)

Mon système de pagination viens de ce tuto mais il n'explique pas ce que je voudrais faire,
En revanche l'un des commentaires de ce tuto illustre parfaitement ce que je voudrais faire.
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte