Systeme de page en PHP

Fermé
tybmhi Messages postés 200 Date d'inscription dimanche 13 juillet 2008 Statut Membre Dernière intervention 18 septembre 2017 - 6 sept. 2008 à 19:17
aelythe Messages postés 10 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 19 août 2009 - 8 sept. 2008 à 15:30
Bonjour,

J'ai installé un système de page automatique en PHP (pris sur le site du zero ) qui fonctionne très bien sur une page où apparait des messages posté par les internautes.
Sur cette page j'ai placé un système de vote par lien hypertexte(+PHP) dont voici le lien :

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

Ce lien rempli très bien son rôle sauf qu'il me ramène toujours à la page 1. Alors que j'aimerais que si j'ai voté pour un message qui se trouve sur la page 3 par exemple je reste donc sur la page 3. Dans la barre d'adresse on voit pourtant bien page=3 mais on atterrit toujours sur la page 1.

Je pense que je ne choisis peut être pas la bonne variable à inclure dans le lien. Voici mon système de vote.


<?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; // Essayez de changer ce nombre pour voir :o)
// On récupère le nombre total de messages
$retour = mysql_query("SELECT COUNT(*) AS nb_messages FROM tousdescons 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;" 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'];

}
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;

?>

Merci d'avance !
A voir également:

2 réponses

aelythe Messages postés 10 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 19 août 2009
7 sept. 2008 à 21:48
Salut!

a mon sens le mieux serait pour toi de memoriser dans la session la page dans laquelle tu te trouves :

// 1. assure-toi que la session soit lancee :
session_start();

// 2. memorise en session la page courante si la page est indiquee
if(isset($_REQUEST['page']) && intval($_REQUEST['page']))
{
$_SESSION['page_courante'] = $_REQUEST['page'];
}
else
{
// valeur par defaut
$_SESSION['page_courante'] = 1;
}


Ainsi tu n'es plus oblige a passer le parametre de la page si tu ne changes pas de page, et le code me semble plus elegant et plus simple a maintenir (pense au cas ou tu pourrais avoir 10 liens tous legerement differents dans la meme page).

Paul
0
tybmhi Messages postés 200 Date d'inscription dimanche 13 juillet 2008 Statut Membre Dernière intervention 18 septembre 2017 12
7 sept. 2008 à 22:15
Merci beaucoup pour ta réponse. Je vais certainement te paraitre complètement idiot mais j'ai recopié exactement ton code en tête de ma page et ca ne marche toujours pas. Pour ma défense je débute en PHP. J'imagine qu'il faut l'adapter mais je ne sais pas comment.
0
aelythe Messages postés 10 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 19 août 2009
8 sept. 2008 à 15:30
Salut!

en fait il faut bien sur remplacer dans ton lien actuel <?=$page?> avec <?=$_SESSION['page_courante']> pour recuperer la valeur creee par le script.

Paul
:)
0