Php 如何限制页码?

Php 如何限制页码?,php,html,pagination,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!="") $conditi

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

我的代码是

$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);
$start\u date=$\u请求['date1'];
$end_date=$_请求['date2'];
$condition=“1=1”;
如果($start\u date!=“”)
$condition.=“和event_date>=”。date(“Y-m-d”,strotime($start_date))。”;
如果($end\u date!=“”)

$condition.=“和event_date已经有上百个关于如何实现这一点的教程。你尝试过谷歌搜索吗

这里有几个例子:


等等。

当我评论你的问题时,你的代码中有很多问题,因此最好使用一些现成的函数/类:)只需搜索它

我怎么能给你一个简单的方式来展示你想要的

用该代码替换FOR循环就可以了:)

$start=(地板($page/10)*10)+1;
对于($i=$start;$i<$totalPages;$i++){
如果($i>=($start+10)){
打破
}
回声';
}
但是真正的
保护您的代码

1st-不推荐使用MYSQL\函数,请改用mysqli或PDO

第二个-转义查询中的所有变量

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


一个好主意是使用一些现成的分页函数或类。没有必要“发现美国”".. 在您的代码中,您不会转义数据,任何人都可以进行sql注入,这是不好的:)谢谢你的帮助。实际上,我对php和mysql还不熟悉。以后我会按照你的指示去做。再次感谢您,您的代码可以正常工作
:)
如果我也希望它按相反的顺序运行,我该怎么办??
$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;';
}