カテゴリー
PHP

ページネイション、ページ入力

<?php

    if (isset($_GET['page'])) {
	$page = (int)$_GET['page'];
    } else {
	$page = 1;
    }
  } catch (PDOException $e) {
      echo 'Connection failed: ' . $e->getMessage();
  }

    // スタートのポジションを計算する
    if ($page > 1) {
	// 例:2ページ目の場合は、『(2 × 10) - 10 = 10』
	$start = ($page * 10) - 10;
    } else {
	$start = 0;
    }
    //meiboテーブルから10件のデータを取得する
    $posts = $dbh->prepare("
        SELECT id, namae, jyusyo
        FROM meibo
        LIMIT {$start}, 10
    ");
    $posts->execute();

    echo "<table>\n";
    echo "\t<tr><th>id</th><th>namae</th><th>jyusyo</th></tr>\n";
    while( $result = $posts->fetch( PDO::FETCH_ASSOC ) ){
      echo "\t<tr>\n";
      echo "\t\t<td>{$result['id']}</td>\n";
      echo "\t\t<td>{$result['namae']}</td>\n";
      echo "\t\t<td>{$result['jyusyo']}</td>\n";
      echo "\t</tr>\n";
    }
    echo "</table>\n";

    // 接続を使用する
    $page_num = $dbh->prepare("
	SELECT  COUNT(*) id
	FROM posts
     ");
    $page_num->execute();
    $page_num = $page_num->fetchColumn();
    //ページネーションの数を取得する
    $pagination = ceil($page_num / 10);
?>


<?php
    for ($x=1; $x <= $pagination ; $x++) { ?>
	<a href="$_SERVER[PHP_SELF]?page=<?php echo $page+1 ?>"><?php echo $page + 1; ?></a>
<?php }
 
  print "$APPFOOTER";
 
?>
<p><a href="DBphpmenu.php">データベースメニューへ戻る</a></p>

</body>
</html>

何ページあるかをどうして知るか?という問題は残ります。

inserted by FC2 system