Pagination PHP
Résolu
tybmhi
Messages postés
200
Date d'inscription
Statut
Membre
Dernière intervention
-
tybmhi Messages postés 200 Date d'inscription Statut Membre Dernière intervention -
tybmhi Messages postés 200 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Pagination PHP
- Pagination powerpoint - Guide
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Sommaire avec pagination - Guide
- Le fichier de pagination est insuffisant pour terminer cette opération ✓ - Forum Matériel & Système
5 réponses
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 ?
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
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
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
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
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) )
{
.........................
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) )
{
.........................
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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.