导读:很多朋友问到关于php如何做分页效果的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!
本文目录一览:
1、php这种分页是如何做到的?
2、PHP怎么制作分页
3、我的php页面代码如下,效果如下,请问如何添加分页效果?代码怎么写啊?
4、PHP怎样一个页面实现3个分页效果
5、php实现分页功能
6、php分页怎么弄?
php这种分页是如何做到的?
链接传输当前页数(例如页数5),通过当前页数计算显示 当前页-1、当前页(页数5)、当前页+1、当前页+2 (4、5、6、7..).就可以了,有很多类似的php分页类,修改一下判断就可以
PHP怎么制作分页
方法/步骤
首先要了解下分页的原理即
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("");
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 "hrb".$row[name]." | ".$row[sex];
}
?
调用数据和分页list.php
?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 "hrb".$row[name]." | ".$row[sex];
}
?
注意事项
注意分页公式写法你只要记住即可;
(当前页数 - 1 )X 每页条数 , 每页条数;
Select * from table limit ($Page- 1) * $PageSize, $PageSize;
注意三个代码文件在同一个目录下;
主要是最后的list.php调用代码要细看很有用。
我的php页面代码如下,效果如下,请问如何添加分页效果?代码怎么写啊?
$perNumber=10; //每页显示的记录数
$page=$_GET['page']; //获得当前的页面值
$count=mysql_query("select count(*) from td_oa"); //获得记录总数
$rs=mysql_fetch_array($count);
$totalNumber=$rs[0];
$totalPage=ceil($totalNumber/$perNumber); //计算出总页数
if (!isset($page)) {
$page=1;
} //如果没有值,则赋值1
$startCount=($page-1)*$perNumber; //分页开始,根据此方法计算出开始的记录
$result=mysql_query("select * from user limit $startCount,$perNumber"); //根据前面的计算出开始的记录和记录数
while ($row=mysql_fetch_array($result)) {
echo "user_id:".$row[0]."br";
echo "username:".$row[1]."br"; //显示数据库的内容
}
if ($page != 1) { //页数不等于1
?
a href="fenye.php?page=?php echo $page - 1;?"上一页/a !--显示上一页--
?php
}
for ($i=1;$i=$totalPage;$i++) { //循环显示出页面
?
a href="fenye.php?page=?php echo $i;?"?php echo $i ;?/a
?php
}
if ($page$totalPage) { //如果page小于总页数,显示下一页链接
?
a href="fenye.php?page=?php echo $page + 1;?"下一页/a
?php
}
?
PHP怎样一个页面实现3个分页效果
这个可以用if来做,首先点击就显示3个不同的分类,然后当点击其中一个分类的时候先传递一个type过去,最后就根据这个type来显示不同分类信息。如果用iframe这个做可能会比较麻烦点
php实现分页功能
具体代码如下:
/**
* 获取分页的HTML内容
* @param integer $page 当前页
* @param integer $pages 总页数
* @param string $url 跳转url地址 最后的页数以 'page=x' 追加在url后面
*
* @return string HTML内容;
*/
public static function getPageHtml($page, $pages, $url){
//最多显示多少个页码
$_pageNum = 5;
//当前页面小于1 则为1
$page = $page1?1:$page;
//当前页大于总页数 则为总页数
$page = $page $pages ? $pages : $page;
//页数小当前页 则为当前页
$pages = $pages $page ? $page : $pages;
//计算开始页
$_start = $page - floor($_pageNum/2);
$_start = $_start1 ? 1 : $_start;
//计算结束页
$_end = $page + floor($_pageNum/2);
$_end = $_end$pages? $pages : $_end;
//当前显示的页码个数不够最大页码数,在进行左右调整
$_curPageNum = $_end-$_start+1;
//左调整
if($_curPageNum$_pageNum $_start1){
$_start = $_start - ($_pageNum-$_curPageNum);
$_start = $_start1 ? 1 : $_start;
$_curPageNum = $_end-$_start+1;
}
//右边调整
if($_curPageNum$_pageNum $_end$pages){
$_end = $_end + ($_pageNum-$_curPageNum);
$_end = $_end$pages? $pages : $_end;
}
$_pageHtml = 'ul class="pagination"';
/*if($_start == 1){
$_pageHtml .= 'lia title="第一页"«/a/li';
}else{
$_pageHtml .= 'lia title="第一页" href="'.$url.'page=1"«/a/li';
}*/
if($page1){
$_pageHtml .= 'lia title="上一页" href="'.$url.'page='.($page-1).'"«/a/li';
}
for ($i = $_start; $i = $_end; $i++) {
if($i == $page){
$_pageHtml .= 'li class="active"a'.$i.'/a/li';
}else{
$_pageHtml .= 'lia href="'.$url.'page='.$i.'"'.$i.'/a/li';
}
}
/*if($_end == $pages){
$_pageHtml .= 'lia title="最后一页"»/a/li';
}else{
$_pageHtml .= 'lia title="最后一页" href="'.$url.'page='.$pages.'"»/a/li';
}*/
if($page$_end){
$_pageHtml .= 'lia title="下一页" href="'.$url.'page='.($page+1).'"»/a/li';
}
$_pageHtml .= '/ul';
echo $_pageHtml;
}
php分页怎么弄?
原理:
1.设定每页显示数
$num = 15;
2.获取数据总数计算总页数
3.通过get方法获取页码,无获取值页码为1,超过最大页数为最大页面数
$page = $_GET['page'] ? $_GET['page'] : 1;
4.通过页码来计算当前显示起始记录
$start = $page*$num-1;
5.通过sql语句查询
query("select * from tablename limit $start,$num");
然后输出就行了
页面上可以循环输出1~总页数 这些数字来实现翻页,也可以用其他方法
比较方便的方法是,可以去找一个分页类
结语:以上就是编程笔记为大家介绍的关于php如何做分页效果的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。