PHP ! Pagination defaillante ! Petite erreur

Résolu/Fermé
dubuducu Messages postés 391 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 19 mai 2010 - 3 juil. 2008 à 12:19
dubuducu Messages postés 391 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 19 mai 2010 - 3 juil. 2008 à 13:01
Bonjour,
Mon code me retourne de fausses valeurs, je ne sais pas a cause de quoi . pouvez vous m'aider merci ?
$entrees_par_page = 5; 
	
if(!isset($_GET['page'])){
        $page_courante = 1; // si aucune page n'existe dans l'URL, on attribue 1 à la page courante
    } else {
        $page = $_GET['page'];
        if ($page<1) $page_courante=1; // on ne peut avoir de page inférieure à 1 : dans ce cas la valeur par défaut est 1
        elseif ($page>$total_pages) $page_courante=$total_pages; // on ne peut avoir de page supérieure au nombre total de pages : dans ce cas la valeur par défaut est la dernière page
        else $page_courante=$page; // sinon la page courante est celle indiquée dans l'URL
    }
	
	
$start = ($page_courante * $entrees_par_page - $entrees_par_page);	
if ( ($a == 'null'))
{

	if ($b == 'null')
	{
	

	 $sql = "SELECT * FROM devis_table  WHERE sous_categorie = '" . $k . "' ORDER BY '" . $a ."' LIMIT $start, $entrees_par_page  "; 
	$result = mysql_query( $sql) or die( "Erreur : " . mysql_error() );
	$nb_entrees = mysql_num_rows($result);
	$total_pages = ceil($nb_entrees/$entrees_par_page);
	}
	else
	
	$sql = "SELECT * FROM devis_table  WHERE thematique_projet = '" . $b . "' ORDER BY '" . $a ."' LIMIT $start, $entrees_par_page  "; 
	$result = mysql_query( $sql) or die( "Erreur : " . mysql_error() ); 
	$nb_entrees = mysql_num_rows($result);
	$total_pages = ceil($nb_entrees/$entrees_par_page);	

	}
else
{

$sql = "SELECT * FROM devis_table  WHERE departement = '" . $a . "' AND thematique_projet = '" . $b . "' ORDER BY '" . $a ."' LIMIT $start, $entrees_par_page "; 
$result = mysql_query( $sql) or die( "Erreur : " . mysql_error() ); 
$nb_entrees = mysql_num_rows($result);
$total_pages = ceil($nb_entrees/$entrees_par_page);

}

echo "$start";echo "_";
echo "$entrees_par_page";echo "_";
echo "$total_pages";echo "_";
echo "$page_courante";
echo "_";
A voir également:

4 réponses

Bonjour,

Je crois déceler un problème au niveau du $nb_entrees = mysql_num_rows($result);
Il me semble que le nombre de ligne doit prendre globalement la requête et NON faire un Limit dessus .
0
dubuducu Messages postés 391 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 19 mai 2010 4
3 juil. 2008 à 12:35
c vrai que si je compte le nombre de ligne sur ma requete limitée ... hum !
que dois-je faire alors ?
0
Tu dois faire 2 requêtes :

Une avec un limit et une sans.
0
dubuducu Messages postés 391 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 19 mai 2010 4
3 juil. 2008 à 13:01
Exactment. Un grand Merci !!!
0