2017-11-16 11 views
2

次と前のページネーション。 前のページ区切りページでは、0より下にはないように否定にはなりませんが、次のページではそれ以上の行はありません。次をクリックすると、クリック以上の量のページが投稿よりも多くなります。貴重な私はこれを行ったが、私は次に何をするのですか?投稿の終わりやページが投稿より先に進まないときに次のページを無効にする方法。私はこれを理解できません。どんな助けでも感謝します。ページネーションは投稿を超えません。

あなたは、現在のページはあなたの現在のページが少ない総ページ数であれば、次のボタンと同じ前BTNを表示するよりもよりも1よりもgreterがある場合には(PREVボタンのための条件を追加する必要が

<?php 
$page = (isset($_GET['page']) && $_GET['page'] > 0) ? (int)$_GET['page'] : 1; 
$perpage = 10; 
$limitp = ($page > 1) ? ($page * $perpage) - $perpage : 0; 


$query = mysqli_query($dbc, "SELECT SQL_CALC_FOUND_ROWS * FROM test LIMIT {$limitp}, {$perpage}"); 
$records = mysqli_fetch_all($query); 

$total = mysqli_query($dbc, "SELECT FOUND_ROWS() as total"); 
$total = mysqli_fetch_assoc($total)['total']; 

$pages = ceil($total/$perpage); 

?> 

<?php 
include ("connection.php"); 
?> 
<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Pagination</title> 
    <link rel="stylesheet" href="style.css"> 
</head> 
<body> 

<div> 
    <a href="?page=<?php $pagep = $page -1; echo $pagep; ?>">Prev</a> 
    <a href="?page=<?php $pagen = $page +1; echo $pagen; ?>">Next</a> 
</div> 

<table> 
    <tr> 
     <th>ID</th> 
     <th>Email</th> 
    </tr> 
    <?php foreach ($records as $record): ?> 
     <tr> 
      <td><?php echo $record[0]; ?></td> 
      <td><?php echo $record[4]; ?></td> 
     </tr> 
    <?php endforeach; ?> 
</table> 
</body> 
</html> 

答えて

1

PHPすなわちtotalrecord /あなたの場合の上限は10であり、合計レコードが22/10より22より大きい場合は2.2になります2.2から3になるceilの値を取得する)現在のページが3より小さい場合、次のバートンを表示するよりも小さい

希望私はあなたのコードでこのコードの作業を願って解決しようとしています

<?php 
 
$page = (isset($_GET['page']) && $_GET['page'] > 0) ? (int)$_GET['page'] : 1; 
 
$perpage = 10; 
 
$limitp = ($page > 1) ? ($page * $perpage) - $perpage : 0; 
 
$limitn = ($limito) 
 

 
$query = mysqli_query($dbc, "SELECT SQL_CALC_FOUND_ROWS * FROM test LIMIT {$limitp}, {$perpage}"); 
 
$records = mysqli_fetch_all($query); 
 

 
$total = mysqli_query($dbc, "SELECT FOUND_ROWS() as total"); 
 
$total = mysqli_fetch_assoc($total)['total']; 
 

 
$pages = ceil($total/$perpage); 
 

 
?> 
 

 
<?php 
 
include ("connection.php"); 
 
?> 
 
<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
    <meta charset="UTF-8"> 
 
    <title>Pagination</title> 
 
    <link rel="stylesheet" href="style.css"> 
 
</head> 
 
<body> 
 

 
<div> 
 
<?php 
 
if($page>1){ 
 
?> 
 
    <a href="?page=<?php $pagep = $page -1; echo $pagep; ?>">Prev</a> 
 
<?php 
 
} 
 
?> 
 

 
<?php 
 
if($page<$pages){ 
 
?> 
 
    <a href="?page=<?php $pagen = $page +1; echo $pagen; ?>">Next</a> 
 
<?php 
 
} 
 
?> 
 
    
 
</div> 
 

 
<table> 
 
    <tr> 
 
     <th>ID</th> 
 
     <th>Email</th> 
 
    </tr> 
 
    <?php foreach ($records as $record): ?> 
 
     <tr> 
 
      <td><?php echo $record[0]; ?></td> 
 
      <td><?php echo $record[4]; ?></td> 
 
     </tr> 
 
    <?php endforeach; ?> 
 
</table> 
 
</body> 
 
</html>

+0

はい、それは理にかなっています。私は$ _GET ['page']を試してみたり、恐ろしいことをしました。それはうまく動作します。 –

関連する問題