全ページをdbから取って表示して、そこから各ページに5件まで表示と書いていました。
例えば、トータル33件のときに、7ページ目で3件しか表示しないですが、
5件までという設定があるため、3件の下に空欄ができてしまいます。
解決したいのは、残り5件未満のときでも、そのまま未満の件数のみ表示することです、空欄がででこないように。
ヒントなど頂けたら幸いです。
説明が下手かもしれませんが、回答よろしくお願いいたします。
php
1<html> 2<head> 3 4<title>DB</title> 5<link rel="stylesheet" type="text/css" href="css.css"> 6</head> 7<body> 8 9<form method="post" name="form" action="insert.php" > 10<input type="text" name="name"> 11<input type="submit"> 12</form> 13 14<table border="2" cellspacing="10"> 15 <tr> 16 <td style="background:green; color:white;">ID</td> 17 <td style="background:green; color:white;">入力値</td> 18 <td style="background:green; color:white;">詳細</td> 19 </tr> 20<?php 21header('content-type:text/html;charset=utf-8'); 22 $link = mysql_connect('localhost', 'root', ''); 23if (!$link) { 24 die('接続失敗です。'.mysql_error()); 25} 26 27$db_selected = mysql_select_db('kd', $link); 28if (!$db_selected){ 29 die('データベース選択失敗です。'.mysql_error()); 30} 31mysql_set_charset('utf8'); 32 $sql="select * from user order by id desc"; 33 $result=mysql_query($sql); 34 $num=mysql_num_rows($result); 35 $pageSize=5; 36 $pageCount=ceil($num/$pageSize); 37 $pageNo=isset($_GET['page'])?$_GET['page']:1; 38 $pageNext=$pageNo+1; 39 $pagePrev=$pageNo-1; 40 41 42 if($pageNext>$pageCount) $pageNext=$pageCount; 43 if($pagePrev<1) $pagePrev=1; 44 if($pageNo>$pageCount) $pageNo=$pageCount; 45 if($pageNo<1) $pageNo=1; 46 47 $offset=($pageNo-1)*$pageSize; 48 mysql_data_seek($result, $offset); 49?> 50 51<style type="text/css"> 52 tr{background-color:#ffffff; font-size:12px;} 53 td{text-align:center;height:30px;} 54 55</style> 56 57 <tr> 58 <?php 59 60 for ($i=0; $i <$pageSize ; $i++){ 61 $row=mysql_fetch_assoc($result); 62 if ($row){ 63 } 64?> 65 <td><?php echo $row['id']?></td> 66 <td><?php echo $row['name']?></td> 67 <td id="ss" name="ss"><a href="info.php?id=<?php print $row['id']; ?>">詳細</a></td> 68 69 </tr> 70 71 <?php 72 } 73 74 ?> 75 76 77</table> 78 79<div id="ctrl"> 80 81 <div id="aa"> 82 <a style="width: 70px;" href="index.php?page=1"><<先頭</a> 83 <a style="width: 40px;" href="index.php?page=<?php echo $pagePrev?>"><<</a> 84 <?php 85 if($pageCount <= 5){ 86 $pageSt = 1; 87 $pageEd = $pageCount; 88 } else { 89 $pageSt = ($pageNo - 2 < 1)? 1: $pageNo - 2; 90 if($pageSt + 4 >= $pageCount) $pageSt = $pageCount - 4; 91 $pageEd = ($pageSt + 4 > $pageCount)? $pageCount: $pageSt + 4; 92 } 93 94 for($i = $pageSt; $i <= $pageEd; $i++){ 95 if($i == $pageNo){ 96 echo $i.' '; 97 } else { 98 echo '<a href="index.php?page='.$i.'">'.$i.'</a> '; 99 } 100 } 101 ?> 102 103 <a style="width: 40px;" href="index.php?page=<?php echo $pageNext?>">>></a> 104 <a style="width: 70px;" href="index.php?page=<?php echo $pageCount?>">最後>></a> 105 </div> 106 107</div> 108</body> 109</html>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/14 05:42
2017/04/14 06:08
2017/04/14 06:41
2017/04/17 00:45