[RESOLU] Système de pagination qui fonctionne mal

Eléphanteau du PHP | 37 Messages

19 juil. 2014, 03:23

Bonjour à tous, j'espère que vous aller bien :)

Je viens vers vous car j'ai créé un système de pagination sur ce site, birdstream.net ... Voici le code html et php de ma page:

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//FR" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="fr"> <head> <title>BirdStream - Films streams illimités et en excellente qualités</title> <link rel="stylesheet" href="admin/style.css"> <link rel="stylesheet" href="admin/box.css" media="screen"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <meta name="keywords" content="Film en streaming , film streaming , vk streaming , vk-streaming, vkstreaming, you-stream, film streaming , film stream , film streaming hd, streaming hd , streaming 720p ,youtube film streaming , streaming sans limite , streaming illimité, stream no limite ,"> <meta name="description" content="film streaming , streaming film , films en streaming , film divx , VkPlayer , Vk Film , Vk Serie , vk streaming , Film Sur Vk , vimple , streaming hd , streaming 720p , streaming sans limite"> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> <script type="text/javascript" src="admin/js/lytebox.js"></script> </head> <body> <div class="header"> </div> <div class="sousheader"> <div class="infobird"><span>birdstream.net n’héberge et n'hebergera aucune vidéo sur ses serveurs , il ne consiste qu'en un référencement de liens vidéos hébergées par des sites publics et légalement reconnus tels que: Youwatch, VK, Putocker, Youtube...</span></div> <a href="http://birdstream.net/"> <div id="logo"></div> </a> </div> <div class="spacer"></div> <a class="brise" href="report.php"><span><img src="http://icons.iconarchive.com/icons/custom-icon-design/pretty-office-8/48/Link-icon.png" style="float: left;"/>Film non-disponible ?</span></a> <div class="pubside"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- birdsidebar --> <ins class="adsbygoogle" style="display:inline-block;width:300px;height:600px" data-ad-client="ca-pub-5018812178728317" data-ad-slot="8889365781"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="positionpost"> <?php $base = mysql_connect ('...', '...', '...'); mysql_select_db ('...', $base) ; // Numero de page (1 par défaut) if( isset($_GET['page']) && is_numeric($_GET['page']) ) $page = $_GET['page']; else $page = 1; // Nombre d'info par page $pagination = 16; // Numéro du 1er enregistrement à lire $limit_start = ($page - 1) * $pagination; // Préparation de la requête $sql = "SELECT * FROM stream LIMIT $limit_start, $pagination"; $sql = "SELECT titre, description, year, pays, acteurs, iframe, image, genre FROM stream ORDER BY rand()"; $req = mysql_query($sql) or die(mysql_error()); while($data = mysql_fetch_assoc($req)) { $sujet = substr($data['titre'], 0, 20); echo "<div class='vupost'><span class='titreposition'>".$sujet."</span><br /><a href='".$data['iframe']."' class='lytebox' data-lyte-options='width:700 height:700 scrolling:no' data-description='Titre: <b>".$data['titre']."</b><br /><i>".$data['description']."</i><br /><br />Genre: <b>".$data['genre']."</b> | Année: <b>".$data['year']."</b> | Pays: <b>".$data['pays']."</b><br /><br />Acteurs: <b>".$data['acteurs']."</b>'><img src='".$data['image']."' /></a></div>"; } // Nb d'enregistrement total $nb_total = mysql_query('SELECT COUNT(*) AS nb_total FROM stream'); $nb_total = mysql_fetch_array($nb_total); $nb_total = $nb_total['nb_total']; mysql_close(); // Pagination $nb_pages = ceil($nb_total / $pagination); echo '<p>'; // Boucle sur les pages for ($i = 1 ; $i <= $nb_pages ; $i++) { if ($i == $page ) echo " <a class='lpagination' href='#'>$i</a>"; else echo " <a class='lpagination' href=\"?page=$i\">$i</a> "; } echo ' </p>'; ?> </div> <div class="footer"></div> </body> </html>
Mon problème est que j'ai dit à mon code php de créer une nouvelle page au bout de 16 films affichés. Ceci fonctionne puisque à 17 film une autre page est créé. Mon problème est que le 17 ième film continue de s'afficher sur ma première page et les 17 film se recopie sur la deuxième page aussi. Essayer pour mieux comprendre ;)

Comment régler ce problème ?

Merci d'avance xx

Mammouth du PHP | 1339 Messages

19 juil. 2014, 11:06

Déj) c'est absurde de faire de la pagination si tu les classes au hasard ... Il n' y aura pas de logique. Ou alors faire la pagination en javascript en affichange les films par calque de 16 films a chaque fois c'est possible aussi.

Tu écris 2 fois la variables $sql ... Donc il prend encompte que la 2eme.
Pas besoin non plus de faire un deuxieme requete pour savoir le nombre total ...
Voila comment je fais moi.
// Préparation de la requête
$sql = "SELECT titre, description, year, pays, acteurs, iframe, image, genre FROM stream ORDER BY titre ASC";
$req = mysql_query($sql) or die(mysql_error());
$nb_total = mysql_num_rows($req); // Je calcule le total

$sql .= " LIMIT ".$limit_start.", ".$pagination;
$req = mysql_query($sql) or die(mysql_error());

while($data = mysql_fetch_assoc($req)) {
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphanteau du PHP | 37 Messages

19 juil. 2014, 16:45

SUPER :D!

Pour Elie, je te dois une fière chandelle, merci beaucoup pour toute cette aide, vraiment, merci :D!!