Pagination PHP

Résolu/Fermé
tybmhi Messages postés 200 Date d'inscription dimanche 13 juillet 2008 Statut Membre Dernière intervention 18 septembre 2017 - 7 août 2008 à 11:00
tybmhi Messages postés 200 Date d'inscription dimanche 13 juillet 2008 Statut Membre Dernière intervention 18 septembre 2017 - 7 août 2008 à 12:17
Bonjour,

Je vais essayer d'être clair, J'essaie de faire une pagination automatique en php sur mon site. En fait sur une même page "physique" il y a des liens type PAGE : 1 2 3 4 qui au final amèneront sur la même page mais avec des données différentes.

voilà ma requête dans ce bout de code :


if (isset($_GET['page']))
{
$page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
}
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;

$reponse = mysql_query('SELECT * FROM post ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);

Celle-ci fonctionne très bien. Pour une autre page j'ai besoin d'y rajouter une condition, voilà :

$reponse = mysql_query("SELECT * FROM commentpost WHERE pseudodupost='$pseudo' ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage");

et celle-ci ne fonctionne pas du tout, il semble que j'ai une erreur de syntaxe dans ma requête. Je suis débutant en PHP.
Merci de votre aide
A voir également:

5 réponses

zzzer Messages postés 907 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 3 décembre 2023 181
7 août 2008 à 11:02
Je pense qu'il s'agit d'un problème de quotes.
LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage")
Ne serait-ce pas des doubles quotes que tu devrais fermer plutôt ?

0
CrowCrow Messages postés 553 Date d'inscription mercredi 6 août 2008 Statut Membre Dernière intervention 6 août 2010 42
7 août 2008 à 11:04
Je suis pas sur d'avoir tout compris.
Mais tu souhaite avoir une page de base, mais dont le corps sera remplis différemment selon le numéro de la page ?

Si c'est bien ça, je pense que tu devrais te tourner vers les pseudo-frames.

Voici un tuto sur PHP débutant qui devrait t'aider : http://www.phpdebutant.org/article68.php
0
tybmhi Messages postés 200 Date d'inscription dimanche 13 juillet 2008 Statut Membre Dernière intervention 18 septembre 2017 12
7 août 2008 à 11:19
Merci pour vos réponse.

Pour zzzer comme j'ai précisé je suis débutant en PHP et je ne suis pas sûr de bien comrendre le terme "quote". Pourrais-tu me montrer juste la requete avec la bonne syntaxe à faire s'il te plait. Je suppose que c'est juste une erreur de ' ou de " mais je n'y arrive pas. Merci

Pour Crowcrow :

Puisque de nouveaux messages sont régulièrement ajoutés à ma page le système doit être automatisé.
Ce système devra en plus me permettre de changer facilement le nombre de messages affichés par page.
C'estune pagination de type "livre d'or". Merci
0
zzzer Messages postés 907 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 3 décembre 2023 181
7 août 2008 à 11:24
Je ne te garantis rien, mais essaye ceci :
$reponse = mysql_query("SELECT * FROM commentpost WHERE pseudodupost='$pseudo' ORDER BY id DESC LIMIT $premierMessageAafficher, $nombreDeMessagesParPage"); 
0
tybmhi Messages postés 200 Date d'inscription dimanche 13 juillet 2008 Statut Membre Dernière intervention 18 septembre 2017 12
7 août 2008 à 11:53
Je te remercie grandement car ta requete est la bonne. Merci.

Au risque d'abuser j'ai toujours un problème. Le code me permet d'afficher le nombre de message voulu par page. Il affiche aussi le nombre correct de page mais le problème c'est lorsque je clique sur un des numeros de pages ca ne m'affiche plus aucune données et je ne peut donc pas voir le reste des données. Ca m'ennuie car grace à ton aide je n'ai jamais été aussi proche de mon but mais il me manque quelque chose. Ma page se nomme "commentparpseudo.php" voici mon code au complet :


// On met dans une variable le nombre de messages qu'on veut par page
$nombreDeMessagesParPage = 2; // 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 commentpost WHERE pseudodupost='$pseudo'");
$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 href="commentparpseudo.php?page=' . $i . '">' . $i . '</a> ';
}
?>

</p>
<p class=apparition>
<?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 (livreor.php?page=4)
}
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;

$reponse = mysql_query("SELECT * FROM commentpost WHERE pseudodupost='$pseudo' ORDER BY id DESC LIMIT $premierMessageAafficher, $nombreDeMessagesParPage"); // Requête SQL
$lyricspost=nl2br($lyricspost);

// On fait une boucle pour lister tout ce que contient la table :

while ($donnees = mysql_fetch_array($reponse) )
{
.........................
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tybmhi Messages postés 200 Date d'inscription dimanche 13 juillet 2008 Statut Membre Dernière intervention 18 septembre 2017 12
7 août 2008 à 12:17
Je viens de comprendre mon pb c'est ma variable qui ne reste pas. Je m'explique :
lorsque je clique sur "validez" de mon formulaire une variable est créer :
$_POST['choisirauteur'];

moi je lcrée la variable suivante : $pseudo=$_POST['choisirauteur'];

Mais quand je clique sur page 2 par exemple il ne prend plus en compte cette variable.

Je pense que je vais créer un autre sujet car le titre ne correspond plus à mon problème. Je te remercie beaucoup pour ton aide précieuse.
0