Ce système de pagination ne fonctionne pas !?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Ce système de pagination ne fonctionne pas !?

Re: Ce système de pagination ne fonctionne pas !?

par sam12 » 22 sept. 2012, 20:10

Et que donne la source html de echo '<a href="pagination.php?page="' . $page_actuelle . '">' . $i . ' </a>'; ?

Ce système de pagination ne fonctionne pas !?

par Crétinus Totalus » 22 sept. 2012, 14:03

Bonjour,

Je suis en train d'apprendre à faire un système de pagination, mais ça ne marche pas. J'ai ma table "pagination" qui contient 11 entrées. J'ai fait un lien vers chaque page en bas, mais ça ne marche pas. Logiquement, il y a 3 lien (parce qu'il y a 11 entrées dans ma table). Quand je veux aller par exemple sur ma page 2 et que je clique sur le lien "2" en bas, ça n'affiche rien (juste les liens en bas) et ça me met ça comme url -> http://localhost:8888/pagination.php?page= au lien de http://localhost:8888/pagination.php?page=2. Par contre quand je change ma page en modifiant l'url (en mettant un chiffre après le signe égal du lien), ça marche très bien. Comment faire ?
Merci d'avance.
<?php
try
{
     $db = new PDO('mysql:host=localhost;dbname=test2', 'root', 'root'); // Connexion à la BDD
}
catch (Exception $error)
{
     die('Erreur : ' . $error->getMessage()); // Si il y a une erreur, ça l'affiche.
}
?>
<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Untitled Document</title>
    </head>

    <body>
    	<?php
			$message_par_page = 4; // Je veux 4 messages par pages
			
			$request = $db->query('SELECT COUNT(*) AS total FROM pagination'); // Je fais une requête pour savoir combien d'entrées il y a en tout (11)
			$data = $request->fetch();
			
			$total = $data['total']; // Je récupère le nombre d'entrées dans total.
			
			$nombre_de_pages = ceil($total/$message_par_page); // Je calcule le nombre de pages qu'il doit y avoir avec la fonction ceil qui arrondi au nombre entier supérieur.
			
			if (isset($_GET['page'])) // Si $_GET['page'] existe...
			{
				$page_actuelle = intval($_GET['page']); // Ma page actuelle...
				
				if ($page_actuelle > $nombre_de_pages) Si je suis à la page 53 par exemple alors qu'il y en a seulement 3...
				{
					$page_actuelle = 1; // ... Ça me ramène à la page 1.
				}
			}
			else
			{
				$page_actuelle = 1; // Sinon la page actuelle sera la page 1.
			}
			
			$premier_message = ($page_actuelle-1) * $message_par_page; // Je calcule le premier message à afficher sur la page.
			
			$messages_a_lire = $db->query('SELECT * FROM pagination ORDER BY id DESC LIMIT ' . $premier_message . ', ' . $message_par_page . '');
			while ($donnees = $messages_a_lire->fetch())
			{
				echo $donnees['nom'] . '<br />'; // J'affiche tous mes messages
			}
			
			for ($i = 1; $i<= $nombre_de_pages; $i++) // Je fais ma pagination...
			{
				echo '<a href="pagination.php?page="' . $page_actuelle . '">' . $i . ' </a>';
			}
		?>
    </body>
</html>