PHP,在html中怎样实现分页代码:首页、下一页、上一页、尾页???

PHP,在html中怎样实现分页代码:首页、下一页、上一页、尾页???,第1张

给你个实例看看吧:

<?php

include("conn/conn.php")

$pagesize=2

$url=$_SERVER["REQUEST_URI"]

$url=parse_url($url)

$url=$url['path']

$sql="select * from tb_info "

$query=mysql_query($sql)

//print_r($query)

$rows=mysql_num_rows($query)

$pageval=1

$page=($pageval-1)*$pagesize

if(@$_GET['page']){

$pageval=$_GET['page']

if ($pageval<=0){

$pageval=1

}

$page=($pageval-1)*$pagesize

}

echo "共 $rows 条"

$pagenum=ceil($rows/$pagesize)

for($i=1$i<=$pagenum$i++){

if ($pageval==$i){

echo "<font color=#ff0000>".$i."</font>&nbsp"

}else{

echo "<a href=$url?page=".$i.">$i</a>&nbsp"

}

}

if($rows>$pagesize){

if ($pageval==1){

echo "<a href=$url?page=".($pageval+1).">下一页</a>"

}else{

if ($pageval*$pagesize>=$rows){

echo "<a href=$url?page=".($pageval-1).">上一页</a>"

}else{

echo "<a href=$url?page=".($pageval-1).">上一页</a>&nbsp"."<a href=$url?page=".($pageval+1).">下一页</a>"

}

}

}

echo "<br>"

$sqli="select * from tb_info limit $page,$pagesize"

$que=mysql_query($sqli)

while($row=mysql_fetch_array($que)){

echo $row['type']."<br>".$row['content']."<br>"

echo str_repeat("_",40)."<br>"

}

?>

方法/步骤

首先要了解下分页的原理即

SELECT * FROM table …… limit 开始位置 , *** 作条数

开始位置从0开始

SELECT * FROM table …… limit 0 , 20

取最前面20条

SELECT * FROM table …… limit 10 , 20

11条到20条

其次分页要用的公式

得到公式

(当前页数 - 1 )X 每页条数 , 每页条数

Select * from table limit ($Page- 1) * $PageSize, $PageSize

还要了解parse_url()解析URL函数

parse_url() 是讲URL解析成有固定键值的数组的函数

$ua=parse_url("http://username:password@hostname/path?arg=value#anchor")

print_r($ua)

结果:

Array

(

[scheme] =>http

[host] =>hostname

[user] =>username

[pass] =>password

[path] =>/path

[query] =>arg=value

[fragment] =>anchor

)

创建数据库bbs和表test有

CREATE TABLE `test` (

`id` int(11) NOT NULL auto_increment,

`name` varchar(50) character set gb2312 NOT NULL,

`sex` varchar(2) character set gb2312 NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11

然后插入十几条测试数据即可

写mysql数据库连接代码保存conn.php文件里

代码如下

<?php

$conn = @ mysql_connect("localhost", "root", "") or die("数据库链接错误")

mysql_select_db("bbs", $conn)

mysql_query("set names 'GBK'")//使用GBK中文编码

function htmtocode($content) {

$content = str_replace("\n", "<br>", str_replace(" ", " ", $content))

return $content

}

//$content=str_replace("'","'",$content)

//htmlspecialchars()

?>

写分页函数page.php

代码如下

<?php

function _PAGEFT($totle, $displaypg = 20, $url = '') {

global $page, $firstcount, $pagenav, $_SERVER

$GLOBALS["displaypg"] = $displaypg

if (!$page)

$page = 1

if (!$url) {

$url = $_SERVER["REQUEST_URI"]

}

//URL分析:

$parse_url = parse_url($url)

$url_query = $parse_url["query"]//单独取出URL的查询字串

if ($url_query) {

$url_query = ereg_replace("(^|&)page=$page", "", $url_query)

$url = str_replace($parse_url["query"], $url_query, $url)

if ($url_query)

$url .= "&page"

else

$url .= "page"

} else {

$url .= "?page"

}

$lastpg = ceil($totle / $displaypg)//最后页,也是总页数

$page = min($lastpg, $page)

$prepg = $page -1//上一页

$nextpg = ($page == $lastpg ? 0 : $page +1)//下一页

$firstcount = ($page -1) * $displaypg

//开始分页导航条代码:

$pagenav = "显示第 <B>" . ($totle ? ($firstcount +1) : 0) . "</B>-<B>" . min($firstcount + $displaypg, $totle) . "</B>条记录,共 $totle 条记录"

//如果只有一页则跳出函数:

if ($lastpg <= 1)

return false

$pagenav .= " <a href='$url=1'>首页</a>"

if ($prepg)

$pagenav .= " <a href='$url=$prepg'>前页</a>"

else

$pagenav .= " 前页 "

if ($nextpg)

$pagenav .= " <a href='$url=$nextpg'>后页</a>"

else

$pagenav .= " 后页 "

$pagenav .= " <a href='$url=$lastpg'>尾页</a>"

//下拉跳转列表,循环列出所有页码:

$pagenav .= " 到第 <select name='topage' size='1' onchange='window.location=\"$url=\"+this.value'>\n"

for ($i = 1$i <= $lastpg$i++) {

if ($i == $page)

$pagenav .= "<option value='$i' selected>$i</option>\n"

else

$pagenav .= "<option value='$i'>$i</option>\n"

}

$pagenav .= "</select>页,共 $lastpg 页"

}

include("conn.php")

$result=mysql_query("SELECT * FROM `test`")

$total=mysql_num_rows($result)

//调用pageft(),每页显示10条信息(使用默认的20时,可以省略此参数),使用本页URL(默认,所以省略掉).

_PAGEFT($total,5)

echo $pagenav

$result=mysql_query("SELECT * FROM `test` limit $firstcount,$displaypg ")

while($row=mysql_fetch_array($result)){

echo "<hr><b>".$row[name]." | ".$row[sex]

}

?>

调用数据和分页list.php

<?php

/**

* 爱微网 www.iiwnet.com/php/

*/

include("conn.php")

$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)*$pagesize

$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>"

}

echo $SQL="SELECT * FROM `test` limit $page $pagesize "

$query=mysql_query($SQL)

while($row=mysql_fetch_array($query)){

echo "<hr><b>".$row[name]." | ".$row[sex]

}

?>

注意事项

注意分页公式写法你只要记住即可;

(当前页数 - 1 )X 每页条数 , 每页条数;

Select * from table limit ($Page- 1) * $PageSize, $PageSize;

注意三个代码文件在同一个目录下;

主要是最后的list.php调用代码要细看很有用。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6185594.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-17
下一篇 2023-03-17

发表评论

登录后才能评论

评论列表(0条)

保存