<?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调用代码要细看很有用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)