如何限制页码?

时间:2014-04-15 07:49:45

标签: php html pagination

我的代码显示一页上的所有页数。我想限制页数?

我的代码是

$start_date = $_REQUEST['date1'];
$end_date = $_REQUEST['date2'];

$condition="1=1";
if ($start_date!="")
    $condition.=" AND event_date>='".date( "Y-m-d", strtotime($start_date))."'";
if ($end_date!="")
    $condition.=" AND event_date<='".date( "Y-m-d", strtotime($end_date))."'";
$start_date = date( "Y-m-d", strtotime($start_date));
$end_date = date( "Y-m-d", strtotime($end_date));

$link = mysql_connect('localhost', 'username', 'password');
if (!$link) 
{
    die('Could not connect: ' . mysql_error());
}
if ($_REQUEST["orderby"]!="") $ord = " ORDER BY ".$_REQUEST["orderby"];
if ($_REQUEST["dir"]!="") $ord .= " ".$_REQUEST["dir"];

mysql_select_db("intern_db", $link);
$page = (isset($_GET['page'])) ? $_GET['page'] : 1;

$recordPerPage= '30';
$startPoint = ($page - 1)*$recordPerPage;
$result = mysql_query("SELECT count(*) cnt FROM ` admin_crmf_poc_event_history` where   $condition");
$row = mysql_fetch_array($result);
$num_rows = $row["cnt"];
$result = mysql_query("SELECT * FROM ` admin_crmf_poc_event_history` where $condition   $ord LIMIT $startPoint,$recordPerPage");
$totalPages=ceil($num_rows/$recordPerPage);

if ($page > 1) {
    echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.($page-   1).'&date1='.$_REQUEST["date1"].'&date2='.$_REQUEST["date2"].'">Previous</a>';
}
for ($i = 1; $i < $totalPages; $i++) {
    echo '&nbsp;&nbsp;<a href="'.$_SERVER['PHP_SELF'].'?page= '. $i  .'&date1='.$_REQUEST["date1"].'&date2='.$_REQUEST["date2"].'">' . $i . '</a>&nbsp;&nbsp;';
}
if ($page < $totalPages ) {
    echo '<a href="'.$_SERVER['PHP_SELF'].'?page='. ($page+1).'&date1='.$_REQUEST["date1"].'&date2='.$_REQUEST["date2"].'">Next</a>';
}
echo "<br>";
echo "you are in $page page";
mysql_close($link);

我希望像previous 1 2 3 4 5 6 7 8 9 10 next一样展示。 当我点击下一步时,它将显示11到20之间的其他10页,依此类推

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

当我评论你的问题时,你的代码中有A LOT个问题,所以最好使用一些就绪函数/类:)只搜索它..

我怎么能给你简单的方式展示你想要的东西..

用你的代码替换你的FOR循环,没关系:)

$start = ( floor($page/10) * 10 ) + 1;
for( $i = $start; $i < $totalPages; $i++){
    if( $i >= ($start + 10)){
        break;
    }
    echo '&nbsp;&nbsp;<a href="'.$_SERVER['PHP_SELF'].'?page= '. $i  .'&date1='.$_REQUEST["date1"].'&date2='.$_REQUEST["date2"].'">' . $i . '</a>&nbsp;&nbsp;';
}

但真的SECURE YOUR CODE !!!

  

1st - 不推荐使用MYSQL_函数使用mysqli或PDO ..

     

第二步 - ESCAPE查询中的所有变量..

     

3 - 考虑使用更灵活的工作方法(功能/对象......)