Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Systeme de page en PHP

tybmhi, le samedi 6 septembre 2008 à 19:17:56
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 !
Configuration: Windows Vista
Firefox 3.0.1
Répondre à tybmhi  Signaler ce message aux modérateurs Aller au dernier message

1


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
aelythe, le dimanche 7 septembre 2008 à 21:48:22
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 passionné par PHP, XML, JavasScript, Ajax, virtualisation Xen, Linux, Apache, MySQL... et les bons gâteaux au chocolat bien moelleux!
Répondre à aelythe

2


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
tybmhi, le dimanche 7 septembre 2008 à 22:15:01
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.
Répondre à tybmhi

3


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
 aelythe, le lundi 8 septembre 2008 à 15:30:27
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
:) passionné par PHP, XML, JavasScript, Ajax, virtualisation Xen, Linux, Apache, MySQL... et les bons gâteaux au chocolat bien moelleux!
Répondre à aelythe

Résultats pour systeme de page en PHP

Appel d'une page php dans un code html (Résolu) Bonjour, j'ai trois page php la premiere contient 4 champs(code, airport, nbr adults,nbr children) et un bouton valider la deuxieme contient des conditions sur les 4 champs du premiere .cad en cas d'inexistance de code un message... www.commentcamarche.net/forum/affich-6873013-appel-d-une-page-php-dans-un-code-html
Rechargement automatique page php (Résolu) Bonjour, je voudrais que ma page php ne soit automatiquement recharger a inter val régulier cela est-il possible ?? sinon j'utiliserai le bon vieux F5 :) www.commentcamarche.net/forum/affich-7716501-rechargement-automatique-page-php
Problème affichage html sur page php (Résolu) Je stocke un texte dans un champ text de ma base de données MySql sous ce format: mon texteautre texte. Je le récupère sur une page php. Il s'affiche en brut, soit: mon texteautre texte au lieu de: mon texteautre texte... www.commentcamarche.net/forum/affich-2346955-probleme-affichage-html-sur-page-php

Résultats pour systeme de page en PHP

[PHP] Récupérer login et mot de passe passés par un .htaccessSi vous avez protégé un dossier de votre site en utilisant un fichier .htaccess et que vous souhaitez récupérer dans vos pages PHP le login et le mot de passe que l'utilisateur a saisis, il vous suffit d'utiliser ces variables... www.commentcamarche.net/faq/sujet-4795-php-recuperer-login-et-mot-de-passe-passes-par-un-htaccess

Résultats pour systeme de page en PHP

[Java] Ouvrir une page php (Résolu)Bonjour, comment faire pour ouvrir une page php (ou html) depuis une appli Java ? J'ai essayé avec Runtime.getRuntime().exec(http://www.site.com/page.php); mais j'obtiens l'erreur suivante : CreateProcess: http://www.site.com/index.php... www.commentcamarche.net/forum/affich-1751941-java-ouvrir-une-page-php
[PHP/SQL] erreur http 500 pour une page php (Résolu)Bonjour, je viens de créer une page php ainsi que la table sql correspondante, mais à chaque fois que je veux y accéder, jobtiens une erreur http 500. Cela est-il du a ma page ou au serveur ? www.commentcamarche.net/forum/affich-4551454-php-sql-erreur-http-500-pour-une-page-php
Page php (Résolu)Bonjour,comment puis je aspirer un site avec ses pages php merci d avance www.commentcamarche.net/forum/affich-5765780-page-php