php分页问题,在线等。

来源:百度知道 编辑:UC知道 时间:2024/05/30 08:53:38
$pagesize = 5;
$url = $_SERVER["REQUEST_URI"];
$url = parse_url($url);
$url = $url[path];

$numq = mysql_query("select * from test");
$num = mysql_num_rows($numq); //取得数据库条数

if($_GET[page]){
$pageval = $_GET[page];
$page = ($pageval-1)*$pageval;
$page.=',';
}

if($num > $pagesize){
if($pageval<=1)$pageval=1;
echo "共 $num 条".
" <a href=$url?page=".($pageval-1).">上一页</a> <a href=$url?page=".($pageval+1).">下一页</a>";
}

$sql = "select * from test limit $page $pagesize";

谁能给我讲讲这个分页原理是什么意思啊?
特别是这段:if($_GET[page]){
$pageval = $_GET[page];
$page = ($pageval-1)*$pageval;
$page.=',';
}
$page = ($pageval-1)*$pageval; 这个$page不是取得当前页数么?
那 $page.=','; 是啥意思?
麻烦高手了,

php的分页思路取决与mysql的数据截取机制
在mysql中,得到1-20条记录的sql语句是
select * from table limit 1, 20
limit后面的两个参数分别是从第几条记录开始、得到几条记录

所以就需要php根据传递进来的页数来计算要显示从第几条记录开始的20条记录(假设每页20条记录)

if($_GET[page]){//如果?后面有 page=xxx,如page=3
$pageval = $_GET[page];//pageval=3
$page = ($pageval-1)*$pageval;//page=2*3=6
$page.=',';//page="6,"
}
因为MYSQL的limit语法是
select * from table limit a,b
意思是从a开始取b条(每页b条,)

$sql = "select * from test limit $page $pagesize";
就是select * from test limit 6,5

$page.=','; 可能没有注意到 有一个点 .

为了容易看懂最好应该写成 $page= $page . ',';

就是后面添加一个 逗号。

$page.=','; 的意思是:在$page的内容后面添加一个逗号