分页和编辑类别状态

时间:2010-04-03 19:16:59

标签: php

对于类别的编辑家庭状态,我有一个链接:

<span class=\"ha\" title=\"Active in Homepage\">Active in Homepage</span><a href=\"?page=homestatus&id={$row['id']}\" class=\"hp\"  title=\"\">Passive in home page</a>

和功能:

function homestatus() {
  $ID     = mysql_real_escape_string($_GET['id']);
  $query  = "UPDATE category SET home = 0  WHERE id= $ID ";
  $result = mysql_query($query);
    if (mysql_affected_rows () == 1) {
       header('Location: index.php?page=categories');
      }
 }

一切正常,但有分页:

/index.php?page=categories&pg=2

我想要一个位于pg = 2的项目,重定向到index.php?page = categories&amp; pg = 2 我怎样才能做到这一点?提前致谢

分页功能:

function Pages($tbl_name,$limit,$path){

$query = "SELECT COUNT(*) as num FROM $tbl_name";
$total_pages = mysql_fetch_array(mysql_query($query));
$total_pages = $total_pages[num];
$adjacents = "2";
$pg = $_GET['pg'];
if($pg)
    $start = ($pg - 1) * $limit;
else
    $start = 0;

$sql = "SELECT id FROM $tbl_name LIMIT $start, $limit";
$result = mysql_query($sql);

if ($pg == 0) $pg = 1;
    $prev = $pg - 1;
    $next = $pg + 1;
    $lastpage = ceil($total_pages/$limit);
    $lpm1 = $lastpage - 1;

    $pagination = "";
if($lastpage > 1)
{   
    $pagination .= "<div class='pagination'>";
if ($pg > 1)
    $pagination.= "<a href='".$path."pg=$prev' class=\"prev\">« Önecki</a>";
else
    $pagination.= "<span class='disabled'>« Önceki</span>";   

if ($lastpage < 7 + ($adjacents * 2))
{   
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $pg)
    $pagination.= "<span class='current'>$counter</span>";
else
    $pagination.= "<a href='".$path."pg=$counter'>$counter</a>";                   
}
}
elseif($lastpage > 5 + ($adjacents * 2))
{
if($pg < 1 + ($adjacents * 2))       
{
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($counter == $pg)
    $pagination.= "<span class='current'>$counter</span>";
else
    $pagination.= "<a href='".$path."pg=$counter'>$counter</a>";                   
}
    $pagination.= "...";
    $pagination.= "<a href='".$path."pg=$lpm1'>$lpm1</a>";
    $pagination.= "<a href='".$path."pg=$lastpage'>$lastpage</a>";       
}
elseif($lastpage - ($adjacents * 2) > $pg && $pg > ($adjacents * 2))
{
    $pagination.= "<a href='".$path."pg=1'>1</a>";
    $pagination.= "<a href='".$path."pg=2'>2</a>";
    $pagination.= "...";
for ($counter = $pg - $adjacents; $counter <= $pg + $adjacents; $counter++)
{
if ($counter == $pg)
    $pagination.= "<span class='current'>$counter</span>";
else
    $pagination.= "<a href='".$path."pg=$counter'>$counter</a>";                   
}
    $pagination.= "..";
    $pagination.= "<a href='".$path."pg=$lpm1'>$lpm1</a>";
    $pagination.= "<a href='".$path."pg=$lastpage'>$lastpage</a>";       
}
else
{
    $pagination.= "<a href='".$path."pg=1'>1</a>";
    $pagination.= "<a href='".$path."pg=2'>2</a>";
    $pagination.= "..";
for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $pg)
    $pagination.= "<span class='current'>$counter</span>";
else
    $pagination.= "<a href='".$path."pg=$counter'>$counter</a>";                   
}
}
}

if ($pg < $counter - 1)
    $pagination.= "<a href='".$path."pg=$next'>Sonraki »</a>";
else
    $pagination.= "<span class='disabled'>Sonraki »</span>";
    $pagination.= "</div>\n";       
}


return $pagination;
}

1 个答案:

答案 0 :(得分:0)

我认为您需要做的是获取pg变量并将其添加到重定向。在header命令之前添加以下行。 (is_numeric()检查是为了安全。)

 if (is_numeric($_GET["pg"]))
  $page = "&pg=".$_GET["pg"];
 else
  $page = null; 

 header("Location: index.php?page=categories$page");

旧回答:

您在寻找分页解决方案吗? SO上已经有一些了。相关问题:

More on SO