phpで作るページ遷移の基本版

今回はphpで同一機能の中でページ遷移する奴。
よく見かけるのはGoogleとかで使われる検索結果の遷移ですね。
その基本版です。
1ページの表示件数や、ページ遷移の表示数など決められます。
今のところこれで、動いているけど・・・まあ何かあればエラー報告お願いします。

//page内の表示記事数
$p_feed =10;
//ページ遷移の前後表示数
$p_format =3;

$sql_cnt = $sql;
$res = mysql_query($sql_cnt, $CONN);
$p_all = mysql_num_rows($res);

//page処理
//表示ページ番号を指定
$page_this = $_GET[‘p’] ? $_GET[‘p’] :1;
$i_befor = $page_this;
$i_after = $page_this;

//総page数計算
if($p_all!=0){
$p_page = ceil($p_all / $p_feed) ;
}

//データ読み出し開始位置
$d_farst = ($page_this * $p_feed) – $p_feed;
if ($p_all < $d_farst) {
$d_farst= $p_all;
}

//データ読み出し終了位置
$d_last = (($page_this + 1) * $p_feed) – $p_feed – 1;
if ($p_all < $d_last) {
$d_last= $p_all – 1;

}
$d_ken = $d_last – $d_farst+1;
$d_limit = ‘ Limit ‘ . $d_farst.’,’ . $p_feed;
/*デバック用
print “呼び出されたpage番号= ” . $page_this .”<br>”;
print “全データ数:”.$p_all.”件” .”<br>”;
print “トータルページ数:”.$p_page.”<br>”;
print “データ読み出し最初:”.$d_farst.”<br>”;
print “データ読み出し最後:”.$d_last.”<br>”;
print “LIMIT保存内:”.$d_limit.”<br>”;
*/

$link_def = “<a href='”.$_SERVER[‘PHP_SELF’].”?p=”;
for ($cnt = $page_this-$p_format; $cnt < $page_this; $cnt++) {

if($cnt > 0){
$linkurl .= ” ” . $link_def . $cnt .”‘>” . $cnt. “</a> “;
}
}
$linkurl .= ” |”.$page_this.”| “;

for ($cnt = $page_this+1; $cnt < $page_this+$p_format+1; $cnt++) {
if($cnt > $p_page){break;}
$linkurl .= ” ” . $link_def . $cnt .”‘>” . $cnt. “</a> “;
}

if ($page_this <= 1) {
$page_befor = “”;
} else {
$i_befor = $page_this – 1;
$page_befor = “<a href='”.$_SERVER[‘PHP_SELF’].”?p=”.$i_befor. “‘>[前へ] </a> “;
}

if ($page_this >= $p_page) {
$page_after = “”;
} else {
$i_after = $page_this + 1;
$page_after = “<a href='”.$_SERVER[‘PHP_SELF’].”?p=”.$i_after. “‘> [次へ]</a> “;
}

$sql = $sql . $d_limit;
?>
<small><?=$page_befor . ” ” . $linkurl . ” ” . $page_after?></small><br />

コメント

タイトルとURLをコピーしました