Version complète: sur le forum Webmaster Hub : Pb de pagination et de lien
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
TYBMHI
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 :
CODE
<a href="affichage.php?page =<?echo "$page"?>&amp;votebien=r&amp;categorie=<?php echo "$categorie" ?>&amp;souscategorie=<?php echo "$souscategorie" ?> &amp;id=<?php echo $donnees['id']; ?>"  class="lienvote">
    C'est bien</a>


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

CODE
<?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.'&amp;page=' . $i . '&amp;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.
TYBMHI
problème résolu. J'ai juste supprimé des espaces en trop et ca fonctionne.
serdj
CITATION(TYBMHI @ samedi 20 septembre 2008 à 16:06) *
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.
TYBMHI
CITATION(serdj @ samedi 20 septembre 2008 à 19:20) *
Peux-tu préciser où étaient ces espaces en trop ? Merci, ton code m'intéresse.


Voici mon lien remodeler

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


Et là ca marche nickel !
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.