tom.dev
Membre récent

Hors-Ligne
Messages: 3

|
Bonjour a tous , Aujourdui je vaudrais corser un peu mon code d'hier ( pour ce qui ont suivi ).
Je voudrais faire une pagination des résultats de 3 requètes sql aléatoire ( en faite j'ai dans ma table sql une colonne positions avec comme valeurs soit 1 , 2 ou 3) .
En gros : REQUETE A (position = 1) : résultat sur x nombre de pages REQUETE B (position = 2) : résultat sur x nombre de pages a la suite de requète A REQUETE C (position = 3) : résultat sur x nombre de pages a la suite de requète B
Il faudra que je puisse inserer les titres de mes requetes(requete A, requete B, requette C) avant les résultats
je met mon code d'hier ou la pagination fonctionne parfaitement sur une seul requete aléatoire :
<?php session_start(); if (!isset($_SESSION['key'])) { $_SESSION['key'] = rand(1, 1000); } if ((isset($_GET['action'])) && ($_GET['action'] == 'logout')) { $_SESSION = array(); session_destroy(); session_start(); } ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> <head> <title>Livre d'or</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> form, .pages { text-align:center; } </style> </head> <p class="pages"> <p><a href="test4.php?action=logout" title="Déconnexion">Se déconnecter</a></p> <?php try { $bdd = new PDO('mysql:host=localhost;dbname=dechetterie_npdc' , 'root' , '' ) ; } catch (Exception $e) { die('Erreur :' .$e->getMessage()); }
// --------------- Étape 2 ----------------- // On écrit les liens vers chacune des pages // ----------------------------------------- // On met dans une variable le nombre de messages qu'on veut par page $nombreDeMessagesParPage = 4; // Essayez de changer ce nombre pour voir :o) // On récupère le nombre total de messages $retour = $bdd->query('SELECT COUNT(*) AS nb_messages FROM npdc'); $donnees = $retour->fetch(); $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 echo 'Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { echo '<a href="test4.php?page=' . $i . '">' . $i . '</a> '; } ?> </p> <?php // --------------- Étape 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 = $bdd->query('SELECT * FROM npdc WHERE POSITION=1 ORDER BY RAND(' . $_SESSION['key'] . ') LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage); while ($donnees = $reponse->fetch()) { echo '<p><strong>' . $donnees['adresse'] . '</strong> a écrit :<br />' . $donnees['ville'] . '</p>'; } ?> </body> </html>
|
|
Voila j'ai beaucoup chercher sur le net hier après-midi et soir , j'ai pas trouvé ce que je voulais , il y a pas mal d'info pour 1 seul requete mais pas plusieurs , apparament c'est assez complexe .
Moi je débute , je me lance quelque defis pour apprendre .
En vous remerciant. |