Ma pagination ne s'arrete pas

Résolu/Fermé
Michel300969 Messages postés 7 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 4 janvier 2014 - Modifié par Michel300969 le 30/12/2013 à 20:50
Michel300969 Messages postés 7 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 4 janvier 2014 - 4 janv. 2014 à 10:26
Bonjour,

je rencontre un soucis avec ma pagination le nombre de page s'affiche correctement
mais le limit ne s'arrete pas a 50 titres par page comme demandé.

il m'affiche la liste complète de mes films 336!

Merci d'avance

voici la requete

[code]
mysql_select_db($database_fmt, $fmt);
$Recordset1 = mysql_query($query_Recordset1, $fmt) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
$totaldefilms = mysql_num_rows($Recordset1);
$Nbr_Enrg = mysql_num_rows($Recordset1);


//Nous allons maintenant compter le nombre de pages.
$nombreDePages=ceil($Nbr_Enrg/$LigneParPage);
//echo "nombr page : ".$nombreDePages;
if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
{

$pageActuelle=intval($_GET['page']);
$premier = ($pageActuelle-1)*$LigneParPage;

if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
{
$pageActuelle=$nombreDePages;
$premier = ($pageActuelle-1)*$LigneParPage;
}
}
else // Sinon
{
$pageActuelle=1; // La page actuelle est la n°1
$premier = ($pageActuelle-1)*$LigneParPage;
}


mysql_select_db($database_fmt, $fmt);
$Recordset1 = mysql_query($query_Recordset1, $fmt) or die(mysql_error());
$query_Recordset1 = "SELECT TitreVF, GENRE FROM " . $nom_table . " ORDER BY TitreVF ASC, Genre ASC LIMIT " .$premier. ',' .$LigneParPage;
//echo $query_Recordset1;
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
/code

7 réponses

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
31 déc. 2013 à 11:13
Bonjour,
Pourrais-tu nous faire un echo sur ta requête ($query_Recordset1) afin de voir ce que ça donne une fois le php interprété ?
0
Michel300969 Messages postés 7 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 4 janvier 2014
31 déc. 2013 à 12:34
Bonjour

merci pour ta réponse

voila le Echo de (Squery_Recordset1)

SELECT TitreVF, GENRE FROM films ORDER BY TitreVF ASC, Genre ASC LIMIT 0,50

quand je met mon filtre en place pour ne voir que les comédies par exemple le nombre de page s'affiche correctement aussi (3) mais sa m'affiche les 148 films d'un coup
0
jean448 Messages postés 1340 Date d'inscription mardi 29 décembre 2009 Statut Membre Dernière intervention 26 janvier 2017 237
31 déc. 2013 à 12:57
Salut c'est pas le code complet ?

$LigneParPage est égale à combien
0
Michel300969 Messages postés 7 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 4 janvier 2014
31 déc. 2013 à 13:18
salut sa correspond a 50
0
jean448 Messages postés 1340 Date d'inscription mardi 29 décembre 2009 Statut Membre Dernière intervention 26 janvier 2017 237
31 déc. 2013 à 13:27
Salut prend celui ci il fonctionne

<?php
$messagesParPage=5; //Nombre de vidéo

$retour_total=mysql_query('SELECT COUNT(*) AS total FROM <A modifier> '); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.

//Nous allons maintenant compter le nombre de pages.
$nombreDePages=ceil($total/$messagesParPage);

if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
{
$pageActuelle=intval($_GET['page']);

if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
{
$pageActuelle=$nombreDePages;
}
}
else // Sinon
{
$pageActuelle=1; // La page actuelle est la n°1
}

$premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire

// La requête sql pour récupérer les messages de la page actuelle.
$retour_messages=mysql_query('SELECT * FROM <A modifier> ORDER BY id DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'');

while($donnees_messages=mysql_fetch_assoc($retour_messages)) // On lit les entrées une à une grâce à une boucle
{
//Je vais afficher les messages dans des petits tableaux. C'est à vous d'adapter pour votre design...
//De plus j'ajoute aussi un nl2br pour prendre en compte les sauts à la ligne dans le message.
echo '<table width="400" border="0" align="center" cellpadding="0" cellspacing="0">
<A modifier>
</table><br />';
//J'ai rajouté des sauts à la ligne pour espacer les messages.
}

echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
{
//On va faire notre condition
if($i==$pageActuelle) //Si il s'agit de la page actuelle...
{
echo ' [ '.$i.' ] ';
}
else //Sinon...
{
echo ' <a href="tuto.php?id='.$id.'&page='.$i.'">'.$i.'</a> ';
}
}
echo '</p>';
?>
C'est un code que j'utilise pour les coms mais peut facilement s'adapter
<A modifier> --> Il faut que tu adapte en fonction de ta table
0

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

Posez votre question
Michel300969 Messages postés 7 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 4 janvier 2014
31 déc. 2013 à 13:37
salut ok merci je test
0
Utilisateur anonyme
31 déc. 2013 à 14:40
Bonjour

Extrait de ton code :
$Recordset1 = mysql_query($query_Recordset1, $fmt) or die(mysql_error()); 
$query_Recordset1 = "SELECT TitreVF, GENRE FROM " . $nom_table . " ORDER BY TitreVF ASC, Genre ASC LIMIT " .$premier. ',' .$LigneParPage; 

Tu ne mets le LIMIT dans ta requête qu'APRÈS l'avoir exécutée. C'est normal que le LIMIT n'agisse pas, le LIMIT vient trop tard.
0
Michel300969 Messages postés 7 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 4 janvier 2014
4 janv. 2014 à 10:26
merci à jean448 pour son aide
0