English 中文(简体)
分页增量问题
原标题:
  • 时间:2009-02-05 09:41:45
  •  标签:

我有以下代码,它是一个更大应用程序中分页的基础。然而,它不起作用,因为虽然我应该从url获取pg的值,但pg从未超过2。由于某种原因,next = pg + 1;似乎总是将pg视为1,而不管url传递什么。这是last的类似问题。我认为我正在覆盖从GET获取的值,但我不确定在哪里。

问题似乎在于我如何计算$max和极限,因为传递的不是0、10、-10、10。此外,$max之前的if代码似乎无法成功阻止$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> ";
最佳回答

基于现在修改过后的问题:

$rowcount = count($rows);

将自然地始终返回10,因为您正在限制结果。

... LIMIT 10;

但这可能会有所帮助:

SQL CALC FOUND ROWS Example:

mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
    -> WHERE id > 100 LIMIT 10;
mysql> SELECT FOUND_ROWS();

第一个查询仍将返回您的文章,而第二个查询将返回如果没有使用LIMIT子句,则前一个选择将具有的行数。

希望有所帮助。

问题回答

代码是正确的,但数据是错误的。

当你拥有

$page_rows = 10;
$rowcount = 2;

它实际上意味着,在每页上显示10行的情况下,您将在页面上显示2行。这使得总共只有一页。

把它改成

$page_rows = 10;
$rowcount = 200;

然后,您将获得分页。

这是你的问题:

$last = ceil($rowcount/$page_rows);

这是将$last设置为1,然后你就有:

if ($pg > $last) {
  $pg = $last;
}

编辑:我想知道你是否意味着这个。

$last = ceil($page_rows/$rowcount);

再次编辑:根据Cassy的答案,你可能只需要为这些变量设置正确的值:

$page_rows = 10;
$rowcount = 2;




相关问题
热门标签