Page de catégorie / question de Pagination

  • Brian Jester
  • Beginner
  • Beginner
  • No Avatar
  • Inscription: Jan 06, 2006
  • Messages: 61
  • Loc: Bayonne, New Jersey USA
  • Status: Offline

Message Juillet 2nd, 2011, 4:46 pm

Salut

Son long tandis que depuis, j'ai été sur ce forum. comme dit heureux d'être de retour !

Tout comment, sur la question de la pagination. Ce que je suis en train d'accomplir est de faire ce qui suit script écho à certaines catégories de la db sur une page de pagination. Les catégories doivent être sortie dans une table où je peux spécifier le nombre de colonnes en fonction des besoins. Le code de pagination est au-dessous de laquelle essentiellement ont toutes les fonctionnalités que je cherche, elle doit seulement être vérifiée pour les erreurs. Le résultat final devrait être de page / ont les catégories affichées avec l'option de limiter le montant affiché.

Pour référence:

Nom de la base de données : catégories
Nom de la table : catégories
Rangée de sortie : category_name


Code: [ Select ]

<html>

<head> <title>Reunite My Site - Category Index</title>
<link rel="stylesheet" type="text/css" href="/css/default.css" media="screen">

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
<meta name="Description" content="The World's Most Trusted Source For Online Advertising!">

<style type="text/css">

.gradient {
border: 1px solid #000;
background: #c5deea; /* old browsers */
background: -moz-linear-gradient(top, #c5deea 0%, #8abbd7 31%, #066dab 100%); /* firefox */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#c5deea), color-stop(31%,#8abbd7), color-stop(100%,#066dab)); /* webkit */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#c5deea', endColorstr='#066dab',GradientType=0 ); /* ie */
}

</style>

</head>

<body>

<script type="text/javascript" src="track.php?mode=js"></script>
<noscript><img src="track.php?mode=img" border="0" alt="" width="1" height="1"></noscript>

<div class="gradient">

<br>
<a name="Top" target="_TOP">&nbsp;</a>

<div class="pagination white">

<!-- The Following Php Code is the pagination script, which will create pages based on the number of banners in the database. Ex: 2 columns (across) x 5 Rows (down) the page -->
<?php
      /* Include your code to connect to DB. */
      
      include('cats_db.php');

      /* Your DB table name */

      $tbl_name="categories";

      // How many adjacent pages should be shown on each side?
      $adjacents = 1;

      /*
      First get total number of rows in data table.
      If you have a WHERE clause in your query, make sure you mirror it here.
      */

      $query = "SELECT COUNT(*) as num FROM $tbl_name";
        $total_pages = mysql_fetch_array(mysql_query($query));
        $total_pages = $total_pages[num];

      /* Setup vars for query. */
      $targetpage = "categories.php";   //your file name (the name of this file)

      $limit = 1;       //how many items to show per page

      $page = $_GET['page'];
      if($page)
      $st = ($page - 1) * $limit; //first item to display on this page

      else
    $st = 0;      //if no page var is given, set st to 0
      /* Get data. */

      $sql = "SELECT category_name FROM $tbl_name LIMIT $st, $limit";
        $result = mysql_query($sql);

      /* Setup page vars for display. */
      if ($page == 0) $page = 1;        //if no page var is given, default to 1.
      $prev = $page - 1;         //previous page is page - 1
      $next = $page + 1;         //next page is page + 1
      $lastpage = ceil($total_pages/$limit);  //lastpage is = total pages / items per page, rounded up.
      $lpm1 = $lastpage - 1;      //last page minus 1

      /*
    Now we apply our rules and draw the pagination object.
    We're actually saving the code to a variable in case we want to draw it more than once.
      */

      $pagination = "";
      if($lastpage > 1)
       {
    $pagination .= "";

    //previous button

    if ($page > 1)
    $pagination.= "<a href=\"$targetpage?page=$prev\" class=\"current\"> previous </a>";
    else
    $pagination.= "<span class=\"disabled\"> previous </span>";

    //pages

    if ($lastpage < 7 + ($adjacents * 2))  //not enough pages to bother breaking it up
    {  
    for ($counter = 1; $counter <= $lastpage; $counter++)
    {
    if ($counter == $page)
    $pagination.= "<span class=\"number\">$counter</span>";
    else
    $pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</a>";        
    }
    }
    elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some
    {

    //close to beginning; only hide later pages

    if($page < 1 + ($adjacents * 2))    
    {
    for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
    {
    if ($counter == $page)
    $pagination.= "<span class=\"number\">$counter </span>";
    else
    $pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</a>";
        }
    $pagination.= "<span class=\"dots\">...</span>";
    $pagination.= "<a href=\"$targetpage?page=$lpm1\" class=\"number\">$lpm1</a>";
    $pagination.= "<a href=\"$targetpage?page=$lastpage\" class=\"number current\">$lastpage</a>";    
        }

    //in middle; hide some front and some back

    elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
    {
    $pagination.= "<a href=\"$targetpage?page=1\" class=\"number\">1</a>";
    $pagination.= "<a href=\"$targetpage?page=2\" class=\"number\">2</a>";
    $pagination.= "<span class=\"dots\">...</span>";
    for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
    {
    if ($counter == $page)
    $pagination.= "<span class=\"number\">$counter</span>";
    else
    $pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</ a>";        
    }
    $pagination.= "<span class=\"dots\">...</span>";
    $pagination.= "<a href=\"$targetpage?page=$lpm1\" class=\"number\">$lpm1</a>";
    $pagination.= "<a href=\"$targetpage?page=$lastpage\" class=\"number current\">$lastpage</a>";    
    }

    //close to end; only hide early pages

        else
    {
    $pagination.= "<a href=\"$targetpage?page=1\" class=\"number\">1</a>";
    $pagination.= "<a href=\"$targetpage?page=2\" class=\"number\">2</a>";
    $pagination.= "<span class=\"dots\">...</span>";
    for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
    {
    if ($counter == $page)
    $pagination.= "<span class=\"number\">$counter</span>";
    else
    $pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</a>";
    }
    }
    }
    
    //next button

    if ($page < $counter - 1)
    $pagination.= "<a href=\"$targetpage?page=$next\" class=\"number current\"> next </a>";
    else
    $pagination.= "<span class=\"disabled\"> next </span>";
    $pagination.= "</div>\n";    
      }
// End of Pagination Script //

?>

<!-- Table Output Code -->

<?php

$result = mysql_query("SELECT * FROM category_name") or die(mysql_error());

$numCols = 2;
$numPerCol = ceil(mysql_num_rows($result) / $numCols);

echo "<table valign=\"top\"><tr>";

for($col = 1; $col <= $numCols; $col++) {

echo "<td valign=\"top\">";

for($row = 0; $row < $numPerCol; $row++) {

$resultRow = mysql_fetch_assoc($result);

if($resultRow == false) {

break;
}

// while loop goes here

  }
  echo "</td>";
}
echo "</tr></table>";

?>

<?=$pagination?>

</div>
<div align="center" valign="absbottom"><a href="main.php#Top" target="_parent">Goto Top of Page</a>
</body>
</html>
  1. <html>
  2. <head> <title>Reunite My Site - Category Index</title>
  3. <link rel="stylesheet" type="text/css" href="/css/default.css" media="screen">
  4. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
  5. <meta name="Description" content="The World's Most Trusted Source For Online Advertising!">
  6. <style type="text/css">
  7. .gradient {
  8. border: 1px solid #000;
  9. background: #c5deea; /* old browsers */
  10. background: -moz-linear-gradient(top, #c5deea 0%, #8abbd7 31%, #066dab 100%); /* firefox */
  11. background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#c5deea), color-stop(31%,#8abbd7), color-stop(100%,#066dab)); /* webkit */
  12. filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#c5deea', endColorstr='#066dab',GradientType=0 ); /* ie */
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <script type="text/javascript" src="track.php?mode=js"></script>
  18. <noscript><img src="track.php?mode=img" border="0" alt="" width="1" height="1"></noscript>
  19. <div class="gradient">
  20. <br>
  21. <a name="Top" target="_TOP">&nbsp;</a>
  22. <div class="pagination white">
  23. <!-- The Following Php Code is the pagination script, which will create pages based on the number of banners in the database. Ex: 2 columns (across) x 5 Rows (down) the page -->
  24. <?php
  25.       /* Include your code to connect to DB. */
  26.       
  27.       include('cats_db.php');
  28.       /* Your DB table name */
  29.       $tbl_name="categories";
  30.       // How many adjacent pages should be shown on each side?
  31.       $adjacents = 1;
  32.       /*
  33.       First get total number of rows in data table.
  34.       If you have a WHERE clause in your query, make sure you mirror it here.
  35.       */
  36.       $query = "SELECT COUNT(*) as num FROM $tbl_name";
  37.         $total_pages = mysql_fetch_array(mysql_query($query));
  38.         $total_pages = $total_pages[num];
  39.       /* Setup vars for query. */
  40.       $targetpage = "categories.php";   //your file name (the name of this file)
  41.       $limit = 1;       //how many items to show per page
  42.       $page = $_GET['page'];
  43.       if($page)
  44.       $st = ($page - 1) * $limit; //first item to display on this page
  45.       else
  46.     $st = 0;      //if no page var is given, set st to 0
  47.       /* Get data. */
  48.       $sql = "SELECT category_name FROM $tbl_name LIMIT $st, $limit";
  49.         $result = mysql_query($sql);
  50.       /* Setup page vars for display. */
  51.       if ($page == 0) $page = 1;        //if no page var is given, default to 1.
  52.       $prev = $page - 1;         //previous page is page - 1
  53.       $next = $page + 1;         //next page is page + 1
  54.       $lastpage = ceil($total_pages/$limit);  //lastpage is = total pages / items per page, rounded up.
  55.       $lpm1 = $lastpage - 1;      //last page minus 1
  56.       /*
  57.     Now we apply our rules and draw the pagination object.
  58.     We're actually saving the code to a variable in case we want to draw it more than once.
  59.       */
  60.       $pagination = "";
  61.       if($lastpage > 1)
  62.        {
  63.     $pagination .= "";
  64.     //previous button
  65.     if ($page > 1)
  66.     $pagination.= "<a href=\"$targetpage?page=$prev\" class=\"current\"> previous </a>";
  67.     else
  68.     $pagination.= "<span class=\"disabled\"> previous </span>";
  69.     //pages
  70.     if ($lastpage < 7 + ($adjacents * 2))  //not enough pages to bother breaking it up
  71.     {  
  72.     for ($counter = 1; $counter <= $lastpage; $counter++)
  73.     {
  74.     if ($counter == $page)
  75.     $pagination.= "<span class=\"number\">$counter</span>";
  76.     else
  77.     $pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</a>";        
  78.     }
  79.     }
  80.     elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some
  81.     {
  82.     //close to beginning; only hide later pages
  83.     if($page < 1 + ($adjacents * 2))    
  84.     {
  85.     for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
  86.     {
  87.     if ($counter == $page)
  88.     $pagination.= "<span class=\"number\">$counter </span>";
  89.     else
  90.     $pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</a>";
  91.         }
  92.     $pagination.= "<span class=\"dots\">...</span>";
  93.     $pagination.= "<a href=\"$targetpage?page=$lpm1\" class=\"number\">$lpm1</a>";
  94.     $pagination.= "<a href=\"$targetpage?page=$lastpage\" class=\"number current\">$lastpage</a>";    
  95.         }
  96.     //in middle; hide some front and some back
  97.     elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
  98.     {
  99.     $pagination.= "<a href=\"$targetpage?page=1\" class=\"number\">1</a>";
  100.     $pagination.= "<a href=\"$targetpage?page=2\" class=\"number\">2</a>";
  101.     $pagination.= "<span class=\"dots\">...</span>";
  102.     for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
  103.     {
  104.     if ($counter == $page)
  105.     $pagination.= "<span class=\"number\">$counter</span>";
  106.     else
  107.     $pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</ a>";        
  108.     }
  109.     $pagination.= "<span class=\"dots\">...</span>";
  110.     $pagination.= "<a href=\"$targetpage?page=$lpm1\" class=\"number\">$lpm1</a>";
  111.     $pagination.= "<a href=\"$targetpage?page=$lastpage\" class=\"number current\">$lastpage</a>";    
  112.     }
  113.     //close to end; only hide early pages
  114.         else
  115.     {
  116.     $pagination.= "<a href=\"$targetpage?page=1\" class=\"number\">1</a>";
  117.     $pagination.= "<a href=\"$targetpage?page=2\" class=\"number\">2</a>";
  118.     $pagination.= "<span class=\"dots\">...</span>";
  119.     for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
  120.     {
  121.     if ($counter == $page)
  122.     $pagination.= "<span class=\"number\">$counter</span>";
  123.     else
  124.     $pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</a>";
  125.     }
  126.     }
  127.     }
  128.     
  129.     //next button
  130.     if ($page < $counter - 1)
  131.     $pagination.= "<a href=\"$targetpage?page=$next\" class=\"number current\"> next </a>";
  132.     else
  133.     $pagination.= "<span class=\"disabled\"> next </span>";
  134.     $pagination.= "</div>\n";    
  135.       }
  136. // End of Pagination Script //
  137. ?>
  138. <!-- Table Output Code -->
  139. <?php
  140. $result = mysql_query("SELECT * FROM category_name") or die(mysql_error());
  141. $numCols = 2;
  142. $numPerCol = ceil(mysql_num_rows($result) / $numCols);
  143. echo "<table valign=\"top\"><tr>";
  144. for($col = 1; $col <= $numCols; $col++) {
  145. echo "<td valign=\"top\">";
  146. for($row = 0; $row < $numPerCol; $row++) {
  147. $resultRow = mysql_fetch_assoc($result);
  148. if($resultRow == false) {
  149. break;
  150. }
  151. // while loop goes here
  152.   }
  153.   echo "</td>";
  154. }
  155. echo "</tr></table>";
  156. ?>
  157. <?=$pagination?>
  158. </div>
  159. <div align="center" valign="absbottom"><a href="main.php#Top" target="_parent">Goto Top of Page</a>
  160. </body>
  161. </html>

Merci pour votre aide à l'avance !
Brian
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Juillet 2nd, 2011, 4:46 pm

Afficher de l'information

  • Total des messages de ce sujet: 1 message
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 129 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC