Problème avec ma Pagination
- Accueil
- Forum
- Programmation
- PHP
- Problème avec ma Pagination
Azyrix Le 8 octobre 2016 à 18:19 (Édité le 25 janvier 2019 à 17:52)
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 Le 8 octobre 2016 à 18:23 (Édité le 1 janvier 1970 à 01:00)
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 Le 8 octobre 2016 à 18:34 (Édité le 1 janvier 1970 à 01:00)
J'avais deja vu ce tuto mais en faite j'ai rien compris..
Cordialement Azyrix
Profil introuvable Le 8 octobre 2016 à 19:56 (Édité le 1 janvier 1970 à 01:00)
https://www.primfx.com/article/tuto-php-systeme-pagination-182
Azyrix Le 8 octobre 2016 à 20:16 (Édité le 8 octobre 2016 à 20:21)
En revanche l'un des commentaires de ce tuto illustre parfaitement ce que je voudrais faire.