Petite question système de pagination
- Accueil
- Forum
- Programmation
- PHP
- Petite question système de pagination
essonne91 Le 26 août 2020 à 20:57 (Édité le 1 janvier 1970 à 01:00)
if(isset($_SESSION['auth'])) {
$req = $pdo->prepare('SELECT * FROM f_messages WHERE id_posteur = ?');
$req->execute([$_SESSION['auth']['id']]);
$grade = $req->rowCount();
}
$articleCount = 10;
if(isset($_SESSION['auth']['admin'])) {
if($_SESSION['auth']['admin'] == 0) {
if(isset($grade) AND $grade >= 101) {
$articleTotale = $pdo->query('SELECT id FROM articles');
$articleTotale = $articleTotale->rowCount();
$allpages = ceil($articleTotale / $articleCount);
} else {
$articleTotale = $pdo->query('SELECT id FROM articles WHERE publication = 1');
$articleTotale = $articleTotale->rowCount();
$allpages = ceil($articleTotale / $articleCount);
}
} else {
$articleTotale = $pdo->query('SELECT id FROM articles');
$articleTotale = $articleTotale->rowCount();
$allpages = ceil($articleTotale / $articleCount);
}
} else {
$articleTotale = $pdo->query('SELECT id FROM articles WHERE publication = 1');
$articleTotale = $articleTotale->rowCount();
$allpages = ceil($articleTotale / $articleCount);
}
if(isset($_GET['page']) AND !empty($_GET['page']) AND $_GET['page'] > 0 AND $_GET['page'] <= $allpages) {
$_GET['page'] = intval($_GET['page']);
$pageCourante = $_GET['page'];
} else {
$pageCourante = 1;
}
$go = ($pageCourante-1)*$articleCount;
if(isset($grade,$_SESSION['auth'])) {
if($grade >= 101 OR $_SESSION['auth']['admin'] == 1){
$articles = $pdo->query('SELECT * FROM `articles` ORDER BY date_publication DESC LIMIT '.$go.','.$articleCount);
}else {
$articles = $pdo->query('SELECT * FROM `articles` WHERE publication = 1 ORDER BY date_publication DESC LIMIT '.$go.','.$articleCount);
}
} else {
$articles = $pdo->query('SELECT * FROM `articles` WHERE publication = 1 ORDER BY date_publication DESC LIMIT '.$go.','.$articleCount);
}
partie 1 pour préparer la suite
<ul class="uk-pagination my-5 uk-flex-center" uk-margin>
<?php
$pageminus = $pageCourante - 1;
$pageplus = $pageCourante + 1;
$max_page = 2;
if($pageminus >=1) { ?>
<li>
<?php echo '<a href="index.php"><<</a> '; ?>
</li>
<li>
<?php echo '<a href="index.php?page='.$pageminus.'"><</a> '; ?>
</li>
<?php }
for ($i = $pageCourante - $max_page; $i < $pageCourante; $i++) {
if ($i > 0) { ?>
<li>
<?php echo '<a href="index.php?page='.$i.'">'.$i.'</a> '; ?>
</li>
<?php }
} ?>
<li class="uk-active">
<?php echo '<a class="uk-active">'.$pageCourante.'</a> '; ?>
</li>
<?php for ($i= $pageCourante + 1; $i <= $allpages; $i++) { ?>
<li>
<?php echo '<a href="index.php?page='.$i.'">'.$i.'</a> '; ?>
</li>
<?php if ($i >= $pageCourante + $max_page) {
if ($i <= $allpages - 2){ ?>
<li class="uk-disabled">
<?php echo '<a href="index.php?page=">...</a> '; ?>
</li>
<li>
<?php echo '<a href="index.php?page='.$allpages.'">'.$allpages.'</a> '; ?>
</li>
<?php }
break;
}
}
if($pageplus <= $allpages) { ?>
<li>
<?php echo '<a href="index.php?page='.$pageplus.'">></a> '; ?>
</li>
<li>
<?php echo '<a href="index.php?page='.$allpages.'">>></a> '; ?>
</li>
<?php } ?>
</ul>
cette partie c'est l'affichage j'ai tiré ce code de mon site en local qui est en dévellopement
essonne91 Le 2 septembre 2020 à 10:27 (Édité le 1 janvier 1970 à 01:00)
Oui il marche très bien. Je suis en train de mettre en ligne mon site et j'ai gardé cette version de la pagination