久しぶりのSYSLOG検索くんの機能追加になります。
第6回目のsyslog.phpのページ表示は100件づつで次のページと前のページへのリンクしか作っていませんでした。
ログが多くなれば当然1ページ毎では間に合わないので4つ前後まで表示させれるようにして、さらに最初のページと最後のページも表示できるようにします。
syslog.php
ページリンク部分↓
//ページ表示
if ($all_rows < 100) {
print(“1ページ中1ページ目を表示<br>”);
} else {
print(ceil($all_rows/100).”ページ中”.ceil($page/100 + 1).”ページ目を表示<br>”);
}
//最初のページ
if ($page > 0) {
print(“<a href = syslog.php?page=0> < 最初のページ</a>”);
}
//4つ前の100件
if ($page > 300) {
print(“<a href = syslog.php?page=”.($page – ($page_rows * 4)).”> < 4つ前</a>”);
}
//3つ前の100件
if ($page > 200) {
print(“<a href = syslog.php?page=”.($page – ($page_rows * 3)).”> < 3つ前</a>”);
}
//2つ前の100件
if ($page > 100) {
print(“<a href = syslog.php?page=”.($page – ($page_rows * 2)).”> < 2つ前</a>”);
}
//前の100件
if ($page > 0) {
print(“<a href = syslog.php?page=”.($page – $page_rows).”> < 1つ前</a>”);
}
print (“ ”);
//次の100件
if ( $last_rows < ($all_rows-1)) {
print (“<a href = syslog.php?page=”.($page + $page_rows).”>次 > </a>”);
}
//2つ次の100件
if ( $last_rows + 100 < ($all_rows-1)) {
print (“<a href = syslog.php?page=”.($page + $page_rows * 2).”>2つ次 > </a>”);
}
//3つ次の100件
if ( $last_rows + 200 < ($all_rows-1)) {
print (“<a href = syslog.php?page=”.($page + $page_rows * 3).”>3つ次 > </a>”);
}
//4つ次の100件
if ( $last_rows + 300 < ($all_rows-1)) {
print (“<a href = syslog.php?page=”.($page + $page_rows * 4).”>4つ次 > </a>”);
}
//最後のページ
if ( $last_rows < ($all_rows-1)) {
print (“<a href = syslog.php?page=”.($all_rows – ($all_rows%100)).”>最後のページ > </a>”);
}
4つ前や後は単純に100件分追加しています。
最初のページに戻るのもpageを0指定してやれば問題ありません。
最後のページについてはちょっと計算する必要があります。
$all_rowsでクエリ全行を確認します。
そして全行を100行ずつ表示させるので100で割って余る値を出して
全行から余り行を引いた値を指定しています。
最後のページって基本的に100行ずつ表示して余った分のページになりますからね。