У меня есть следующий код, который является основой для разбивки на страницы в более крупном приложении. Однако это не работает, поскольку, хотя я должен получать значение pg из url, pg никогда не выходит выше 2. По какой-то причине next = pg + 1; кажется, всегда видит pg как 1, независимо от того, что передается по URL-адресу. Это аналогичная проблема с последним. Я полагаю, что я переоцениваю значение, полученное от GET, но я не уверен, где.проблема с возрастанием pagination
Проблема заключается в том, как я разрабатываю $ max и предел, а вместо 0, 10, -10, 10 передается. Также ifcode, прежде чем $ макс, похоже, не удалось остановить пг от того, 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> ";
Спасибо за ваш ответ, я посмотрю. Я основывал свой код на учебнике здесь, у вас есть идея, почему theres работает, а мой не будет? http://php.about.com/od/phpwithmysql/ss/php_pagination_3.htm – 2009-02-05 10:37:31
Да. // Здесь мы подсчитываем количество результатов $ data = mysql_query ("SELECT * FROM topsites"); $ rows = mysql_num_rows ($ data); см. Http://php.about.com/od/phpwithmysql/ss/php_pagination.htm Они делают то, что я предложил: подсчитывая количество полных строк перед вычислением количества страниц. –
ОК, я пробовал, что, ничто не потушится. Интересно, можете ли вы проверить весь мой код (все еще короткий), поскольку теперь ничего не выводится, и я не хочу задавать новый вопрос только для этого. http://pastebin.com/d65cc6b30 – 2009-02-05 11:17:19