2016-05-06 5 views
0

次のコードは自分のテーブルのPHPページネーションですが、結果は正しくロードされますが、次のページをクリックすると最初のページ。結果は変わらない。私はそれが間違っているのを見つけることができませんでしたか?PHPページネーションはテーブルの第2ページには機能しません

paginate.php

function paginate($reload, $page, $tpages) { 
$adjacents = 10; 
$prevlabel = "‹ Prev"; 
$nextlabel = "Next ›"; 
$out = ""; 
// previous 

if ($page <= 1) { 
    $out.= "<span style='font-size:14px; float:left; padding:5px;'>" . $prevlabel . "</span>\n"; 
} else { 
    $out.= "<li><a href=\"" . $reload . "&amp;page=" . ($page - 1) . "\">" . $prevlabel . "</a>\n</li>"; 
} 

$pmin = ($page > $adjacents) ? ($page - $adjacents) : 1; 
$pmax = ($page < ($tpages - $adjacents)) ? ($page + $adjacents) : $tpages; 
for ($i = $pmin; $i <= $pmax; $i++) { 
    if ($i == $page) { 
     $out.= "<li class=\"active\"><a href=''>" . $i . "</a></li>\n"; 
    } elseif ($i == 1) { 
     $out.= "<li><a href=\"" . $reload . "\">" . $i . "</a>\n</li>"; 
    } else { 
     $out.= "<li><a href=\"" . $reload . "&amp;page=" . $i . "\">" . $i . "</a>\n</li>"; 
    } 
} 

if ($page < ($tpages - $adjacents)) { 
    $out.= "<span style='font-size:14px; padding:10px;'> 
    <a style='font-size:14px' href=\"" . $reload . "&amp;page=" . $tpages . "\">" . $tpages . " "."Pages"."</a></span>\n"; 
} 
// next 
if ($page < $tpages) { 
    $out.= "<li><a href=\"" . $reload . "&amp;page=" . ($page + 1) . "\">" . $nextlabel . "</a>\n</li>"; 
} else { 
    $out.= "<span style='font-size:14px; float:left; padding:5px;'>" . $nextlabel . "</span>\n"; 
} 
$out.= ""; 
return $out; 

} viewuser.php`

   <?php 
       $per_page = 15; 
       $sql = "SELECT * FROM employee"; 
       $query = mysql_query($sql,$con); 
       $num_rows = mysql_num_rows($query); 
       $total_pages = ceil($num_rows/$per_page); 
       if (!isset($_GET['page'])) { 
        $show_page = 1;    
       } 
       if (isset($_GET['page'])) { 
        $show_page = $_GET['page'];    
        if ($show_page > 0 && $show_page <= $total_pages) { 
         $start = ($show_page - 1) * $per_page; 
         $end = $start + $per_page; 
        } else { 
         $start = 0; 
         $end = $per_page; 
        } 
       } else { 
        $start = 0; 
        $end = $per_page; 
       } 
       if(isset($_GET['page'])){ 
        $page = intval($_GET['page']); 

        $tpages=$total_pages; 
        if ($page <= 0) 
         $page = 1;} 
       else{ 
        $page = 1; 
        $tpages=$total_pages; 
       } 
       ?> 
       <?php 
       if($num_rows==0){ 

        echo "<b>No Results found.</b>";} 
       else { 
        echo "<h5><small>".$num_rows." "."employees has registered"."</small></h5>";} 

       echo '<table class="table table-striped table-hov> 
       <tr id="tb_header"> 

        <th>name</th> 
        <th>Image</th> 
        <th>designation </th> 
        <th>division</th> 
        <th>email</th> 
        <th>contact number</th> 
        <th></th> 
        </tr>'; 
       ?> 
       <?php 
       $reload = $_SERVER['PHP_SELF'] . "?tpages=" . $tpages; 
       echo '<div class="pagination"> 
       <ul class="pagination"><ul>'; 
       if ($total_pages > 1) { 
        echo paginate($reload, $show_page, $total_pages); 
       } 
       echo "</ul></div>";?> 

       <?php $url = basename($_SERVER['REQUEST_URI']);?> 
       <?php 
       for ($i = $start; $i < $end; $i++) { 
       if ($i == $num_rows) { 
          break;}?> 
         <?php 
         $row = mysql_fetch_array($query); 
         ?> 
         <tr><td><?php echo $row["name"]?></td> 
         <td><img src="<?php echo $row["photo"]?>" style=" width: 75px;"></td> 
         <td><?php echo $row["designation"]?></td> 
         <td><?php echo $row["division"]?></td> 
         <td><?php echo $row["email"]?></td> 
         <td><?php echo $row["contact_number"]?></td> } 
          } 
          ?> 
      </table> 

助けてください!

+0

** WARNING **:あなただけのPHPを学習している場合は、http://php.net/manual/en/function.mysql-query([ 'mysql_query']時代遅れを習得しないでください.php)インターフェイス。それはひどいので、PHP 7では削除されました。[PDOは学ぶのが難しくありません](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo- for database-access /)、[PHP The Right Way](http://www.phptherightway.com/)のようなガイドはベストプラクティスの説明に役立ちます。 **あなたのユーザーパラメータが[正しくエスケープされている](http://bobby-tables.com/php)か、重大な[SQLインジェクションバグ](http://bobby-tables.com/ )。 – tadman

+0

ここで改ページしようとしているようですが、改ページに使用される通常の 'LIMIT'と' OFFSET'条件は表示されません。これは、結果を特定のページに絞り込むために通常行われている処理です。 – tadman

+0

私はポイントを、あらかじめありがとう。 – Chathurika

答えて

0

私はすべてのコードを追跡しませんでしたが、if-elseが何であっても設定していることに気付きました。$page = 1

if ($page <= 0) { 
    $page = 1; 
} else { 
    $page = 1; 
    $tpages = $total_pages; 
} 
+0

それではどうすればいいですか? – Chathurika

関連する問題