PHP pagerについて
現在mysqlに登録されているデータを表示させてなおかつ表示制限をつくっています。
pagerにて表示を分割しています。
http://www.phppro.jp/qa/3073のソースを参考に作成したみたのですが、
下記が自分なりに編集したコードです。
define(LMAX, 5);
if (!isset($_GET['page'])) {
$page = 1;
} else {
$page = intval($_GET['page']);
if ($page == 0 ) {
die('page no error');
}
}
$skip = ($page - 1) * LMAX;
$query = sprintf('SELECT * FROM `test` LIMIT '.$skip.','.(LMAX + 1));
$result = mysql_query($query, $link) or die(mysql_error());
$line = 0;
while ($row = mysql_fetch_array($result)) {
if ($line >= LMAX) {
break;
}
if ($line == 0) { // ヘッダ出力
$r_list .= "<tr>\n";
$r_list .= "<th>テスト1</th>\n";
$r_list .= "<th>テスト2</th>\n";
$r_list .= "<th>テスト3</th>\n";
$r_list .= "<th>テスト4</th>\n";
$r_list .= "</tr>\n";
}
$line++;
$r_list .= "<tr>\n";
$r_list .= "<td>" .$row["test1"]. "</td>\n";
$r_list .= "<td>" .$row["test2"]. "</td>\n";
$r_list .= "<td>" .$row["test3"]."</td>\n";
$r_list .= "<td>" .$row["test4"]."</td>\n";
$r_list .= "</tr>\n";
}
if ($page > 1) {
$prev = '<a href="?page=' . ($page - 1) . '">Prev</a>';
}
if ($line > LMAX) {
$next = '<a href="?page=' . ($page + 1) . '">Next</a>';
}
としています。
いくつかご質問がお分かりの方が、いらっしゃいましたら教えていただけないでしょうか?
・define(LMAX, 5);のところで5にしているにもかかわらず5件表示がされない。
・このコードだとPrevやNextがでない。
・ 2個目の$r_list .= "</tr>\n";の下に$line++;を書くとPrevやNextが表示される。
以上になります。
宜しくお願いいたします。