Problème sur pagination

Mammouth du PHP | 643 Messages

08 déc. 2015, 23:23

Salut à tous.
Je suis entrain de mettre en place une pagination normalement simple mais je rencontre un soucis.
Les parametres sont pris en compte mais ne marche pas.

Pour l'exemple:
la page par default est :
www.monsite/article.html

Si je je clique sur le bouton 2 de ma pagination il m'affiche donc:
www.monsite/article.html?p=2 ( mais rien ne se passe ça ne me change pas de page )

Et si reclic sur une atre page ca rajoute les parametres à l'url
exemple : www.monsite/article.html?p=2?p=3

Merci à vous

L'essentiel du code:
//traitement pagination
		if(isset($_GET['p']) && $_GET['p']>0 &&  $_GET['p']<=$nbPage) {
			$cpage = $_GET['p'];
		}
		else {
			$cpage = 1;
		}
		
		$pageactuel = $_SERVER['REQUEST_URI'];
		$nb;
		$perPage = 3;
		$nbPage = ceil($nb/$perPage);
		$cpage = 1;
			
       for ($i=1;$i<=$nbPage;$i++) {
	   		echo '<a href="'.$pageactuel.'?p='.$i.'">'.$i.' </a>/';
				   }


		$sql .= ' ORDER BY `loisirs`.`id_loisirs` DESC LIMIT '.$perPage;

Mammouth du PHP | 2703 Messages

08 déc. 2015, 23:31

surement du à l'url rewrting, il faut donc ajouter une possible information de page à son schéma.

Mammouth du PHP | 1967 Messages

09 déc. 2015, 10:15

Tu a une condition qui détecte ton paramètre GET p et qui rempli la variable $cpage en fonction de
et puis tu redéfini ta variable $cpage quelques lignes plus loin. cela rend donc ta condition obsolète.

pour ta variable $pageactuel, il te faudrait récupérer uniquement le nom de la page, pas tes paramètres. soit en changeant de variable SERVER soit en travaillant dessus avec des fonctions de traitement de STRING
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Mammouth du PHP | 1339 Messages

10 déc. 2015, 13:24

www.monsite/article.html c'est deja de l'url rewriting donc si tu passes des variables derriere avec ?= il ne les liras pas...
Donc soit faire www.monsite/article-p2.html
Ou alors fais un print_r($_SERVER) pour voir comment isoler ce qu'il y a après .html
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Avatar du membre
Mammouth du PHP | 1564 Messages

10 déc. 2015, 19:29

Il peut très bien les lires, il suffit de rajouter le flag QSA dans la règle du fichier htaccess:
RewriteRule ^article.html$ article.php [L,QSA]
QSA pour Query String Append ;)

Ta requete est pas bonne:

Code : Tout sélectionner

$sql .= ' ORDER BY `loisirs`.`id_loisirs` DESC LIMIT '.$perPage;
là comme elle est rédigée, quand tu affichera la page 2, ça va te mettre 6 enregistrement, la page 3: 9 enregistrement, ainsi de suite, il te faut limite le nombre de résultat qui s'affiche avec une vigule:

Code : Tout sélectionner

$sql .= ' ORDER BY `loisirs`.`id_loisirs` DESC LIMIT '.$ApartirDe.','.$perPage;
Cette partie doit être modifiée:

Code : Tout sélectionner

echo '<a href="'.$pageactuel.'?p='.$i.'">'.$i.' </a>/';
par:

Code : Tout sélectionner

echo '<a href="article.html?p='.$i.'">'.$i.' </a>/';
lien en "dur", c'est comme ça qu'on dit ?

Mammouth du PHP | 1339 Messages

10 déc. 2015, 19:49

Bon bah j'ai appris un truc du coup !
Bon sinon tu me fais un message privé et on se fait un TeamViewer