Проблем със странициране

webdeveloper

Registered
Здравейте, имам следното странициране:

PHP:
$query = "SELECT COUNT(id) AS numrows FROM news";
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
$maxPage = ceil($numrows/$broinastranica);
$nomeranastranici = '';
for($page = 1; $page <= $maxPage; $page++)
{
if ($page == $pageNum)
{
$nomeranastranici .= "   $page ";
}
else
{
$nomeranastranici .= " <a href=\"news&page=$page.html\" > $page </a> ";
}}
if ($pageNum > 1)
{
$page = $pageNum - 1;
$predishna = " <a href=\"news&page=$page.html\" > назад</a> ";
$parva = " ";
}
else
{
$predishna = ' назад ';
$parva = ' ';
}
if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$sledvashta = " <a href=\"news&page=$page.html\" > напред </a> ";
$posledna = "  ";
}
else
{
$sledvashta = ' напред ';
$posledna = ' ';
}
echo $parva . $predishna . $nomeranastranici . $sledvashta . $posledna;


Проблема е, че така ми се показват всичките страници долу в echo-то, а аз искам само първите 3 и последните три. Тоест искам да стане нещо такова:

Предишна | 1 | 2 | 3 | ... | 456 | 457 | 458 | Следваща

Как трябва да стане?
 
ЦЪК


Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
     <head>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          <title>PAGINATION СТРАНИЦИРАНЕ</title>
          <style>
               .paginate {
                    font-family:Arial, Helvetica, sans-serif;
                    padding: 3px;
                    margin: 3px;
               }

               .paginate a {
                    padding:2px 5px 2px 5px;
                    margin:2px;
                    /*                border:1px solid #999;*/
                    border:3px solid purple;
                    text-decoration:none;
                    color: #666;
               }
               .paginate a:hover, .paginate a:active {
                    border: 1px solid #999;
                    color: #000;
               }
               .paginate span.current {
                    margin: 2px;
                    padding: 2px 5px 2px 5px;
                    border: 1px solid #999;

                    font-weight: bold;
                    background-color: #999;
                    color: #FFF;
               }
               .paginate span.disabled {
                    padding:2px 5px 2px 5px;
                    margin:2px;
                    border:1px solid #eee;
                    color:#DDD;
               }

               li{
                    padding:4px;
                    margin-bottom:3px;
                    background-color:#FCC;
                    list-style:none;}

               ul{margin:6px;
                  padding:4px;}

          </style>
     </head>
     <body>
          <?php
          mysql_connect('localhost', 'root') or die ('NO SERVER');
          mysql_select_db('porno') or die ('NO DATA BSE');
          ///////////////////////////////////////////////
          $tableName = "galleries_fm_teens_com";
          $targetpage = "index.php";
          $limit = 5;
          $orderby="timeadded";
          $stages = 1;

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

          $page = mysql_escape_string($_GET['page']);
          if ($page) {
               $start = ($page - 1) * $limit;
          } else {
               $start = 0;
          }

          // Get page data
          $query1 = "SELECT * FROM $tableName  order by $orderby  LIMIT $start, $limit";
          $result = mysql_query($query1);

          // Initial page num setup
          if ($page == 0) {
               $page = 1;
          }
          $prev = $page - 1;
          $next = $page + 1;
          $lastpage = ceil($total_pages / $limit);
          $LastPagem1 = $lastpage - 1;


          $paginate = '';
          if ($lastpage > 1) {
               $paginate .= "<div class='paginate'>";
               // Previous
               if ($page > 1) {
                    $paginate.= "<a href='$targetpage?page=$prev'>previous</a>";
               } else {
                    $paginate.= "<span class='disabled'>previous</span>";
               }



               // Pages
               if ($lastpage < 7 + ($stages * 2)) { // Not enough pages to breaking it up
                    for ($counter = 1; $counter <= $lastpage; $counter++) {
                         if ($counter == $page) {
                              $paginate.= "<span class='current'>$counter</span>";
                         } else {
                              $paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";
                         }
                    }
               } elseif ($lastpage > 5 + ($stages * 2)) { // Enough pages to hide a few?
               // Beginning only hide later pages
                    if ($page < 1 + ($stages * 2)) {
                         for ($counter = 1; $counter < 4 + ($stages * 2); $counter++) {
                              if ($counter == $page) {
                                   $paginate.= "<span class='current'>$counter</span>";
                              } else {
                                   $paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";
                              }
                         }
                         $paginate.= "...";
                         $paginate.= "<a href='$targetpage?page=$LastPagem1'>$LastPagem1</a>";
                         $paginate.= "<a href='$targetpage?page=$lastpage'>$lastpage</a>";
                    }
                    // Middle hide some front and some back
                    elseif ($lastpage - ($stages * 2) > $page && $page > ($stages * 2)) {
                         $paginate.= "<a href='$targetpage?page=1'>1</a>";
                         $paginate.= "<a href='$targetpage?page=2'>2</a>";
                         $paginate.= "...";
                         for ($counter = $page - $stages; $counter <= $page + $stages; $counter++) {
                              if ($counter == $page) {
                                   $paginate.= "<span class='current'>$counter</span>";
                              } else {
                                   $paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";
                              }
                         }
                         $paginate.= "...";
                         $paginate.= "<a href='$targetpage?page=$LastPagem1'>$LastPagem1</a>";
                         $paginate.= "<a href='$targetpage?page=$lastpage'>$lastpage</a>";
                    }
                    // End only hide early pages
                    else {
                         $paginate.= "<a href='$targetpage?page=1'>1</a>";
                         $paginate.= "<a href='$targetpage?page=2'>2</a>";
                         $paginate.= "...";
                         for ($counter = $lastpage - (2 + ($stages * 2)); $counter <= $lastpage; $counter++) {
                              if ($counter == $page) {
                                   $paginate.= "<span class='current'>$counter</span>";
                              } else {
                                   $paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";
                              }
                         }
                    }
               }

               // Next
               if ($page < $counter - 1) {
                    $paginate.= "<a href='$targetpage?page=$next'>next</a>";
               } else {
                    $paginate.= "<span class='disabled'>next</span>";
               }

               $paginate.= "</div>";
          }
          echo $total_pages . ' Results';
          echo $paginate;
          ?>
     </body>
</html>
 

Back
Горе