Category Page / Pagination Issue...

  • Brian Jester
  • Beginner
  • Beginner
  • Brian Jester
  • Posts: 61
  • Loc: Bayonne, New Jersey USA

Post 3+ Months Ago

Hi,

It's been long while since I have been on this forum. like to say glad to be back!

Any how, on to the pagination issue. What I am trying to accomplish is to make the following script echo out some categories from the db on a pagination page. The categories need to be output in a table where I can specify the number of columns as needed. The pagination code is below which basically has all the functionality I am looking for, it just needs to be checked for the errors. The end result should be to have the categories displayed with the option to limit the amount displayed / page.

For reference:

Database Name: categories
Table Name: categories
Row to output: 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>

Thank you for your help in advance!
Brian
  • Anonymous
  • Bot
  • No Avatar
  • Posts: ?
  • Loc: Ozzuland
  • Status: Online

Post 3+ Months Ago

Post Information

  • Total Posts in this topic: 1 post
  • Users browsing this forum: No registered users and 156 guests
  • You cannot post new topics in this forum
  • You cannot reply to topics in this forum
  • You cannot edit your posts in this forum
  • You cannot delete your posts in this forum
  • You cannot post attachments in this forum
 
 

© 1998-2014. Ozzu® is a registered trademark of Unmelted, LLC.