排序不适用于分页的第二页 - PHP

时间:2014-01-15 22:50:18

标签: php sorting pagination

我已经在我的网站中实现了分页,效果很好。当我尝试在我的网站中添加“按价格排序”部分代码时出现问题..它在分页的第1页上排序很好,但是当我点击第2页时,它似乎重置了所有产品

我有以下代码按价格排序:

$orderby='';


if ( !empty($_GET['Sort']) && $_GET['Sort'] == 'PriceAsc' ) 
  {
    $orderby=" ORDER BY Cost ASC";
  } 

if ( !empty($_GET['Sort']) && $_GET['Sort'] == 'PriceDesc' ) 
  {
    $orderby=" ORDER BY Cost DESC";
  }

然后在页面的下方我有我的分页设置代码,并且在我在变量$ orderby中添加的代码的查询部分中看起来像这样:

$sql2 = mysql_query("SELECT * FROM laptops $orderby $limit");

然后最后我在底部循环时获取了fetch数组,以使用以下方式回显数据:

while ($row = mysql_fetch_array($sql2))

任何人都可以帮助我/建议我如何修复我的代码,以便在我按下我的分页的第2,3页等时排序。

由于

2 个答案:

答案 0 :(得分:2)

第2页是否仍设置了get变量'sort'?即第2页(来自第1页)的链接是否包含此变量。

例如page.php?page = 2& sort = PriceDesc

答案 1 :(得分:0)

$ _ GET如果设置它会得到一个值。如果你想看到像page.php?page = 2这样没有任何变量定义的URL,你必须使用$ _POST。 请注意,您必须使用html格式将变量发布到page.php:

<form method="post" action="page.php">
 <input type="hidden" name="sort" value="{$_POST['sort'] ? $_POST['sort'] : ''}" />
 <input type="submit" name="p" value="2" />
</form>