Aller au contenu

Pb de pagination et de lien


Sujets conseillés

Posté

Bonjour à tout le monde !

Comme j'ai résolu de nombreux problème grâce à webmaster-hub, je reviens tenter ma chance avec un nouveau problème qui me casse la tête.

Sur mon site des internautes viennent poster des messages. Ensuite j'ai installé un système de vote de ce type:

bien (34) pas bien(23)

Sur chaque page je ne fais apparaitre que quatre messages, donc des qu'il y a plus de quatre messages les pages sont créées automatiquement. En fait, c'est toujours la même page où va apparaitre la pagination du type :

Page : 1 2 3 4

Le problème que j'ai c'est si un internaute vote pour un message en page 2 ou autre il revient forcément à la page 1.

J'aimerais donc qu'après avoir voté l'internaute puisse rester sur la même page.

Voici le lien de vote :

<a href="affichage.php?page =<?echo "$page"?>&votebien=r&categorie=<?php echo "$categorie" ?>&souscategorie=<?php echo "$souscategorie" ?> &id=<?php echo $donnees['id']; ?>"  class="lienvote">
C'est bien</a>

Et voici le code de ma pagination automatique (site du zero) :

<?php
// --------------- Etape 2 -----------------
// On écrit les liens vers chacune des pages
// -----------------------------------------

// On met dans une variable le nombre de messages qu'on veut par page
$nombreDeMessagesParPage = 4;
// On récupère le nombre total de messages
$retour = mysql_query("SELECT COUNT(*) AS nb_messages FROM message WHERE categorie='$categorie' AND souscategorie='$souscategorie' ");
$donnees = mysql_fetch_array($retour);$totalDesMessages = $donnees['nb_messages'];
// On calcule le nombre de pages à créer
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
// Puis on fait une boucle pour écrire les liens vers chacune des pages
?>
<p class="numeropage">
<?php
echo 'Page : ';
for ($i = 1; $i <= $nombreDePages; $i++)
{
echo '<a style="color:white;font-weight:bolder;" href="affichage.php?categorie='.$categorie.'&page=' . $i . '&souscategorie='.$souscategorie.'">' . $i . '</a> ';
}
?>

</p>

<?php
// --------------- Etape 3 ---------------
// Maintenant, on va afficher les messages
// ---------------------------------------

if (isset($_GET['page']))
{
$page = $_GET['page'];
// On récupère le numéro de la page indiqué dans l'adresse
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
$page = 1; // On se met sur la page 1 (par défaut)
}


// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;

?>

Avec ce que j'ai fait, lorsque je clique sur un lien de vote, dans la barre d'adresse du navigateur la variable page est égale à la bonne page (2 ou 3 par exemple) mais le navigateur m'affiche toujours la page 1.

Cela fait plusieurs jour que je cherche une solution mais je ne trouve rien. Merci d'avance pour votre aide précieuse.

Posté
J'ai juste supprimé des espaces en trop et ca fonctionne.

Peux-tu préciser où étaient ces espaces en trop ? Merci, ton code m'intéresse.

Posté
Peux-tu préciser où étaient ces espaces en trop ? Merci, ton code m'intéresse.

Voici mon lien remodeler

<a href="affichage.php?page=<?echo "$page"?>&votebien=r&categorie=<?php echo "$categorie" ?>&souscategorie=<?php echo "$souscategorie" ?>&id=<?php echo $donnees['id'];?>" class="lienvote">
C'est bien !</a>

Et là ca marche nickel !

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...