php+mysql 实现分页

第一,我们先创建一个表,用来存放数据的

本人实现的是用原生php+mysql实现。都混在一起

<?php
header(‘content-type:text/html;charset=utf-8‘);
	include(‘./sqldb.php‘);
	$sql="select * from test order by id desc";
	$result=mysql_query($sql);
	$num=mysql_num_rows($result);                	//页总数
	$pageSize=5;  									//页尺寸
	$pageCount=ceil($num/$pageSize);				//总页数
	$pageNo=isset($_GET[‘page‘])?$_GET[‘page‘]:1; 	//页码
	$pageNext=$pageNo+1;							//下一页
	$pagePrev=$pageNo-1;							//上一页

	//判断页码越界
	if($pageNext>$pageCount)  $pageNext=$pageCount;
	if($pagePrev<1) 		  $pagePrev=1;
	if($pageNo>$pageCount)    $pageNo=$pageCount;
	if($pageNo<1)			  $pageNo=1;

	$offset=($pageNo-1)*$pageSize;       			//偏移量
	mysql_data_seek($result, $offset);				//将结果指针移至offset处
?>

<style type="text/css">
	tr{background-color:#ffffff; font-size:12px;}
	td{text-align:center;height:30px;}

</style>
<table width="100%;" bgcolor="#333666" cellspacing="1">
	<tr>
		<td>ID</td>
		<td>姓名</td>
		<td>权限</td>
	</tr>
	<tr>
	<?php

    for ($i=0; $i <$pageSize ; $i++):
		$row=mysql_fetch_assoc($result);
		 if ($row) :
?>
		<td><?php echo $row[‘id‘]?></td>
		<td><?php echo $row[‘name‘]?></td>
		<td>
				<?php

				switch ($row[‘flag‘]) {
				case ‘1‘:
					echo "老师";
					break;
				case ‘2‘:
					echo "教授";
					break;

				default:
					echo "学生";
					break;
			}

		?>
</td>
	</tr>

	<?php
		endif;
	endfor;
	?>
	<tr>
		<td colspan="3">
			共<?php echo $num ?>条
			共<?php echo $pageCount ?> 页
			每页 <?php echo $pageSize ?>条
			<a href="Page.class.php?page=1">首页</a>
			<a href="Page.class.php?page=<?php echo $pagePrev ?> ">第一页</a>
			<a href="Page.class.php?page=<?php echo $pageNext?>">下一页</a>
			<a href="Page.class.php?page=<?php echo $pageCount?>">最后一页</a>

		</td>
	</tr>

</table>

  

时间: 2024-10-10 08:27:25

php+mysql 实现分页的相关文章

MySQL的分页优化

mysql的分页比较简单,只需要limit offset,length就可以获取数据了,但是当offset和length比较大的时候,mysql明显性能下降 1.子查询优化法 先找出第一条数据,然后大于等于这条数据的id就是要获取的数据 缺点:数据必须是连续的,可以说不能有where条件,where条件会筛选数据,导致数据失去连续性 实验下 Sql代码   mysql> set profiling=1; Query OK, 0 rows affected (0.00 sec) mysql> s

MySQL的分页

有朋友问: MySQL的分页似乎一直是个问题,有什么优化方法吗?网上看到网上推荐了一些分页方法,但似乎不太可行,你能点评一下吗? 方法1: 直接使用数据库提供的SQL语句 ---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N. ---适应场景: 适用于数据量较少的情况(元组百/千级). ---原因/缺点: 全表扫描,速度会很慢 且 有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,1,3).Limit限制的是从结果集的M位置处取

atitit。mssql sql server 转换mysql 及 分页sql ast的搭建

atitit.mssql sql server 转换mysql  及 分页sql ast的搭建 1. 主要的的转换::函数的转换,分页的转换 1 2. 思路::mssql sql >>ast>>mysql 1 3. sql主要的如下::: 1 4. Mssql2MysqlConvertor (proj:wechatAdm4propt 2 1. 主要的的转换::函数的转换,分页的转换 2. 思路::mssql sql >>ast>>mysql 3. sql主要

php分页例子实现读取mysql数据分页显示

以下代码是PHP分页案例,测试通过,主要是PHP+mysql实现分页,代码来处百度空间,有兴趣看的话可以了解一下PHP是如何分页的? <?php $link = mysql_connect("localhost","root", "2855") //连接数据库 or die("连接不上服务器:".mysql_error()); mysql_select_db("aming"); $ittype=$_G

MySQL完美分页

自己学的MySQL完美分页,觉得以后用的着就写篇博客 输出效果图:(没有进行美化) 先在根目录下建立demo.php 和 page.class.php两个文件(demo.php为测试文件,page.class.php为分页类文件) 在数据库中建立自己相应的表,这里以sqldb库和shops表为例 </pre><p><span style="font-size:12px"><img src="http://img.blog.csdn.n

Struts2+Hibernate3+Spring三大框架技术实现MySQL数据分页

原文:Struts2+Hibernate3+Spring三大框架技术实现MySQL数据分页 源代码下载地址:http://www.zuidaima.com/share/1550463494638592.htm 本项目采用了Struts2,Hibernate3,Spring三框架技术来实现对MySQL中的数据进行分页,在本机上面测试通过了,特此分享 java源代码截图:

MySql通用分页存储过程

MySql通用分页存储过程 1MySql通用分页存储过程 2 3过程参数 4p_cloumns varchar(500),p_tables varchar(100),p_where varchar(4000),p_order varchar(100),p_pageindex int,p_pagesize int,out p_recordcount int,out p_pagecount int 5 6$$:begin 7 declare v_sqlcounts varchar(4000); 8

mybatis对mysql进行分页

Mybatis对mysql数据库分页 在generator中增加插件,下载地址http://download.csdn.net/detail/shunlongjin/6937045 <plugintype="org.mybatis.generator.plugins.EqualsHashCodePlugin" /> <plugintype="org.duoku.groom.mybatis.plugin.PaginationPlugin">&l

oracle 的分页与 mySQL&#39;的分页转化

oracle 分页:  关键字ROWNUM SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM ( SELECT A.*, ROWNUM RN FROM (SELECT EMPNO, ENAME, JOB, MGR, TO_CHAR(HIREDATE,'yyyy-MM-dd') HIREDATE, SAL, COMM, DEPTNO FROM EMP ORDER BY EMPNO) A WHERE ROWNUM <= <

mysql limit分页优化

近期一个项目遇到mysql limit分页奇慢无比,查看了数量也就一百万左右,可是查询的一页数据需要两分多钟,sql语句大约是order by limit,网上的优化大概都是在索引,优化子查询这类,都一一试过,速度并没有大的提升. 后来脑洞大开,是不是order by的问题,想想一百万条数据排序应该也是很耗时间的,于是将order by删除了,果然两分半钟竟然缩短到了0.045秒.经过测试如果是单个表的查询,order by 对速度的影响不太明显,当查询和关联和子查询的时候,对速度的影响就显而易