Page 1 sur 1

Pagination PHP MYSQL

Posté : 06 juin 2018, 16:53
par azizss
Bonjour tous le monde,

Je suis à la recherche d'aide, ce n'est pas ma 1er demande d'aide sur ce sujet, on me répond pas forcément, alors je me débrouille .
Cela n'est pas tout bon, ça fonctionne et c'est bancal.
C'est pour cela que je demande de l'aide voilà :-)
J'ai sur mon site à droite une partie où j'affiche le nom des connecter sur le site, et j’affiche 30 par 30 cela veut dire que j'ai par exemple 66 connecter cela fera 3 pages. Et on passe de page en page par un suivant ou un précédent.

Et là ça se complique quand j'essaye de faire ma pagination MYSQL, PHP.
je commence de récupére le nombre total d'utilisateurs connecter, puis je divise par 30 ce qui me donne un chiffre a virgule (je l'arrondi au chiffre supérieur), et là j'ai 3 pages.

voilà mon code cela dira tout :

Code : Tout sélectionner

<div class="tab-pane active" id="icon-only-tab1"> <div class="sidebar-category sidebar-category-visible"> <div class="category-content no-padding"> <?php $sql1 = "SELECT COUNT(*) as nb FROM user_reg AS R, user_profile AS P WHERE R.status IN (1,2,3) AND R.id LIKE P.`user_id`"; $req2 = $bdd->query($sql1); $data21 = $req2->fetch(); $nb1 = $data21[0];//66 $nbpage12= $nb1/30; //66/30 = 2,2 $nbpage1 = ceil($nbpage12); // arrondis a 3 page ?> <?php $p=$_GET['page']; $reponse13 = $bdd->query("SELECT R.status, R.gender, R.id, P.user_id, R.username, P.path FROM user_reg AS R, user_profile AS P WHERE R.status IN (1,2,3) AND R.id LIKE P.`user_id` LIMIT $p,30"); while ($donnees13 = $reponse13->fetch()) { ?> <?php $path = $donnees13['path']; ?> <?php $id_user = $donnees13['user_id']; ?> <?php $status = $donnees13['status']; ?> <ul class="navigation navigation-main navigation-accordion"> <li> <a href="index.html"><i class=""><img src="<?php if ($path != "") { echo "./files_photo/$id_user/image_profil/$path"; }else { echo "./img/default_profile.jpg"; } ?>" class="img-circle img-sm" alt="">&nbsp;&nbsp;&nbsp;</i> <span><?php echo $donnees13['username']; ?> &nbsp;&nbsp;&nbsp; <?php if ($status == 0) { echo'<span class="label bg-danger">Déconnecté</span>'; }elseif ($status == 1) { echo'<span class="label bg-success">en ligne</span>'; }elseif ($status == 2) { echo'<span class="label bg-info">Sortir ce soir</span>'; }elseif ($status == 3) { echo'<span class="label bg-warning">Ne pas déranger</span>'; }else{ echo'<span class="label bg-success">en ligne</span>'; } ?> </span> </a> </li> </ul> <?php } $reponse13->closeCursor(); ?> </div> <div class="panel panel-body border-top-teal text-center"> <ul class="pager pager-linked"> <?php for ($e = 1; $e <= $nb1; $e+=30) { echo $e; ?> <form method="POST" action="./blog_grid.php?page=<?php echo $e ?>"> <li><button type="submit" class="btn btn-primary"> &larr;</button></li> </form> <?php } ?> <?php for ($i = 0; $i <= $nb1; ) { echo $i; ?> <form method="POST" action="./blog_grid.php?page=<?php echo $i ?>"> <li><button type="submit" class="btn btn-primary"> &rarr;</button></li> </form> <?php $i+=30; } ?> </ul> </div> </div> </div>
Ce que je cherche a faire c'est ne plus avoir de ligne de code au niveau de la barre adresse(ne plus faire de form method="POST"...), et que la page ne ce rafraichie pas quant on passe de page en page.

Merci de votre aide,

Re: Pagination PHP MYSQL

Posté : 06 juin 2018, 18:50
par or 1

Re: Pagination PHP MYSQL

Posté : 07 juin 2018, 09:18
par azizss
Merci Or 1,

J'ai modifier mon code pouvez-vous m'aider pour que cela ne rafraîchisse plus la page mais juste la partie souhaiter.

Code : Tout sélectionner

<div class="tab-pane active" id="icon-only-tab1"> <div class="sidebar-category sidebar-category-visible"> <div class="category-content no-padding"> <?php $sql1 = "SELECT COUNT(*) as nb FROM user_reg AS R, user_profile AS P WHERE R.status IN (1,2,3) AND R.id LIKE P.`user_id`"; $req21 = $bdd->query($sql1); $data21 = $req21->fetch(); $nb1 = $data21[0];//66 $nbpage12= $nb1/30; //66/30 = 2/2 $nbpage1 = ceil($nbpage12); // arrondis a 3 page ?> <?php $p=$_POST['page']; $reponse13 = $bdd->query("SELECT R.status, R.gender, R.id, P.user_id, R.username, P.path FROM user_reg AS R, user_profile AS P WHERE R.status IN (1,2,3) AND R.id LIKE P.`user_id` LIMIT $p,30"); while ($donnees13 = $reponse13->fetch()) { ?> <?php $path = $donnees13['path']; ?> <?php $id_user = $donnees13['user_id']; ?> <?php $status = $donnees13['status']; ?> <ul class="navigation navigation-main navigation-accordion"> <li> <a href="index.html"><i class=""><img src="<?php if ($path != "") { echo "./files_photo/$id_user/image_profil/$path"; }else { echo "./img/default_profile.jpg"; } ?>" class="img-circle img-sm" alt="">&nbsp;&nbsp;&nbsp;</i> <span><?php echo $donnees13['username']; ?> &nbsp;&nbsp;&nbsp; <?php if ($status == 0) { echo'<span class="label bg-danger">1</span>'; }elseif ($status == 1) { echo'<span class="label bg-success">2</span>'; }elseif ($status == 2) { echo'<span class="label bg-info">3</span>'; }elseif ($status == 3) { echo'<span class="label bg-warning">4</span>'; }else{ echo'<span class="label bg-success">5</span>'; } ?> </span> </a> </li> </ul> <?php } $reponse13->closeCursor(); ?> </div> <div class="text-center"> <div class="btn-group"> <?php $p1=$_POST['page']; $nb1; $p4 = $p1 -30; ?> <?php if ($p4 >= 0) { ?> <label class="btn btn-primary"> <form method="POST" action="./gi.php"> <input type="hidden" name="page" value="<?php echo $p4 ?>" /> <button type="submit" class="btn btn-primary"> &larr;</button> </form> </label> <?php } ?> <?php $p2=$_POST['page']; $nb1; $p3 = $p2 +30; ?> <?php if ($p3 < $nb1) { ?> <label class="btn btn-primary"> <form method="POST" action="./gi.php"> <input type="hidden" name="page" value="<?php echo $p3 ?>" /> <button type="submit" class="btn btn-primary"> &rarr;</button> </form> </label> <?php } ?> </div> </div> </div> </div>
Merci de votre aides,