|
La Communauté Webmaster 
| Pages: [1] |
 |
|
|
|
Auteur |
Sujet: pagination d'une requète sql aléatoir (Lu 3296 fois) |
|
 |
pagination d'une requète sql aléatoir
« sur: le 26-11-2013 a 08:43:52 » |
|
tom.dev
Membre récent

Hors-Ligne
Messages: 3

|
Bonjour a tous , Je travail sur un projet en ce moment (pour m'entrainer , je débute).
J'ai donc réussi a créer une pagination automatique du résultat d'une requète sql en suivant un tuto sur internet dont voici mon code :
<?php try { $bdd = new PDO('mysql:host=localhost;dbname=dechetterie_npdc' , 'root' , '' ) ; } catch (Exception $e) { die('Erreur :' .$e->getMessage()); }
// --------------- Étape 1 ----------------- // Si un message est envoyé, on l'enregistre // ----------------------------------------- if (isset($_POST['pseudo']) AND isset($_POST['message'])) { $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); // De même pour le message $message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br /> // On peut enfin enregistrer :o) mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "')"); } // --------------- É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="test3.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 ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage); while ($donnees = $reponse->fetch()) { echo '<p><strong>' . $donnees['adresse'] . '</strong> a écrit :<br />' . $donnees['ville'] . '</p>'; }
|
|
Je voudrais maintenant obtenir la meme chose mais avec une requete à tri aléatoir du type :
| $reponse = $bdd->query('select * from (select * from npdc ) s order by rand()') |
|
Je ne sais pas trop comment mis prendre , sur le code actuel , on fait une boucle et a chaque changement de page , on relance la requete en changeant les LIMIT ( enfin si j'ai bien compris);
Si vous avez une solution( un tuto , une idée de départ??) , j'ai pas mal chercher sur le web mais j'ai pas trouvé se que je voulais.
En vous remerciant. |
|
|
|
|
|
|
 |
Re:pagination d'une requète sql aléatoir
« Répondre #1 sur: le 26-11-2013 a 11:17:34 » |
|
|
|
|
 |
Re:pagination d'une requète sql aléatoir
« Répondre #2 sur: le 26-11-2013 a 14:34:05 » |
|
|
|
|
| Pages:
[1] |
|
|
|
| |
|
|