BreathTake/ホームページ作成の小技・MySQL篇

*
ホームページ作成の小技タイトル・MySQL篇・イメージ写真
ホームページ作成の小技TOP>> MySQLの小技篇>> プログラムページ送り
ページ送りプログラム

ページ送りのプログラムソ−ス

<?php
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##■ページ送りの設定■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■



##********************************************************************************
// サーバー情報
##********************************************************************************

define( "_DB_SERVER", "サーバー名");
define( "_DB_UID", "ユーザーID" );
define( "_DB_PASS", "パスワード" );
define( "_DB_NAME", "データベース名" );

##********************************************************************************
//SQLデータの取得
##********************************************************************************

if( ! $conn = mysql_connect( _DB_SERVER, _DB_UID, _DB_PASS) ){
  die( 'MySQL接続失敗' );
}
##********************************************************************************
//データベースの選択
##********************************************************************************

mysql_select_db( _DB_NAME, $conn );


##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##■SQLデータの読み込み(ページ送りの設定) ■■■■■■■■■■■■■■■■■■■■
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##********************************************************************************
//クエリーを作成
##********************************************************************************

$sql01 = mysql_query( "SELECT COUNT(*) AS counti FROM tbl_name" , $conn) or die("ページ送り用データ抽出エラー");
##********************************************************************************
//クエリーの実行
##********************************************************************************

$rec = mysql_fetch_array($sql01, MYSQL_ASSOC);
##********************************************************************************
//クエリーの値の取得
##********************************************************************************
//データ数の取得

$datacount = $rec["counti"];
//取り出すレコード最大数
$lim_rec = 50;
##********************************************************************************
//表示するページ位置を取得する(送信されたページ数を受け取り整数に変換 )
##********************************************************************************

$pagei = intval(@$_GET["pagei"]);
//ページ位置が1より小さい時は1に変換
if ($pagei < 1) {
  $pagei = 1;
}
##********************************************************************************
//表示するデータの開始位置を取得(3ページ目であれば、(3-1)×10 = 20)
##********************************************************************************

$st = ($pagei - 1) * $lim_rec;
//前のページ($prev)のページ番号を取得する
$prev = $pagei - 1;
//ページ位置が1より小さい時は1に変換
if ($prev < 1) {
  $prev = 1;
}
##********************************************************************************
//次のページ($next)のページ番号を取得する
##********************************************************************************

$next = $pagei + 1;
//抽出する最初のページ
$next2 = $pagei * $lim_rec;


##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##掲載データの抽出■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##********************************************************************************

//クエリーを作成()
##********************************************************************************
$sql02 = "SELECT * FROM tbl_name ORDER BY ID LIMIT $st,$lim_rec;";

##********************************************************************************
//クエーリーの設定
##********************************************************************************

$res02 = mysql_query($sql02, $conn) or die("データ抽出エラー");
$i=1;
##********************************************************************************
//クエーリーの実行と値の取得
##********************************************************************************

while ( $rec = mysql_fetch_array($res02, MYSQL_ASSOC)) {
  $SQL_id[$i] = $rec['id'];
  $i++;
  $maxi=$i;
}


##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
//表示件数の設定■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##********************************************************************************
//表示件数の最初
##********************************************************************************

if ( $SQL_id[1] == "" ) {
  $st_first = "0";
} elseif ( $SQL_id[1] == "0" ) {
  $st_first = "0";
} else {
  $st_first = $st+1;
}
##********************************************************************************
//表示件数の最後
##********************************************************************************

if ( $st+$lim_rec >= $datacount ) {
  $st_last = $datacount;
} else {
  $st_last = $st+$lim_rec;
}
?>
全<?= $datacount ?>件中<?= $st_first ?>〜<?= $st_last ?>件表示

<?PHP
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
//リンクページの設定■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##********************************************************************************
##前のページへのリンクを設定する(表示するページが1ページ目より後の場合)
##********************************************************************************

if ($pagei > 1) {
?>
<a href="/school/index.php?pagei="><<前のページ</a>
<?PHP
}
?>
<?PHP
if ($pagei > 1 or $next2 < $datacount) {
?<
現在のページ
<?PHP
}
?>
<?PHP
##********************************************************************************
##次のページへのリンクを設定する(次のページの開始位置が全データ数より小さい場合)
##********************************************************************************

if ( $next2 < $datacount) {
?>
<a href="/school/index.php?pagei=">次ページ>></a>
<?PHP
}
?>


<?php
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##データの表示■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

for($counti=1; $counti<$maxi; $counti++){
$POST_ID = $SQL_ID[$counti];
?>

<?= $POST_ID ?>

<?php
}
##********************************************************************************
//クエリーを開放する
##********************************************************************************

mysql_free_result( $sql02 );
mysql_free_result( $sql01 );
##********************************************************************************
//DBを閉じる
##********************************************************************************

mysql_close($conn);
##********************************************************************************
?>

 

 

Copyright © 2011 BreathTake All Rights Reserved