У меня есть следующий код, который является основой для нумерации страниц в более крупном приложении. Тем не менее, это не работает, так как, хотя я должен получить значение pg из URL-адреса, pg никогда не идет выше 2. По какой-то причине next = pg + 1; кажется, всегда видеть pg как 1, независимо от того, что передается по URL. Это аналогичная проблема с прошлым. Я предполагаю, что переопределяю значение, полученное из GET, но я не уверен, где.
Кажется, проблема в том, как я работаю с $ max и пределом, так как вместо 0, 10, -10, 10 проходит. Кроме того, ifcode перед $ max, похоже, не может остановить pg от 0.
<?php
if (isset($_GET["pg"])) {
$pg = $_GET["pg"];
} else $pg = 1;
$con = mysql_connect("localhost","","");
if(!$con) {
die('Connection failed because of' .mysql_error());
}
mysql_select_db("ebay",$con);
if ($pg < 1) {
$pg = 1;
} elseif ($pg > $last) {
$pg = $last;
}
$table = 'AUCTIONS';
$page_rows = 10;
$max = ' limit ' .($pg - 1) * $page_rows .', ' .$page_rows;
$rows = getRowsByArticleSearch($query, $table, $max);
$rowcount = count($rows);
echo $rowcount;
$last = ceil($rowcount/$page_rows);
$page_rows = 10;
$rowcount = 2;
// Would normally obtain the number of rows returned, but database stuff is snipped for brevity
$last = ceil($rowcount/$page_rows);
if ($pg < 1) {
$pg = 1;
} elseif ($pg > $last) {
$pg = $last;
}
$self = htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES,'utf-8');
echo " <a href='$self?pg=1'> <<-First</a> ";
$previous = $pg-1;
echo " <a href='$self?pg=$previous'> <-Previous</a> ";
echo "---------------------------";
$next = $pg+1;
echo " <a href='$self?pg=$next'>Next -></a> ";
echo " <a href='$self?pg=$last'>Last ->></a> ";