PHP操作数据分页
2021/9/5 20:07:04
本文主要是介绍PHP操作数据分页,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
PHP操作数据分页
一、数据库安全
string addslashes ( string $str ) 返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。 一个使用 addslashes() 的例子是当你要往数据库中输入数据时。例如,将名字 O'reilly 插入到数据库中,这就需要对其进行转义。大多数据库使用 \ 作为转义符:O\'reilly。这样可以将数据放入数据库中,而不会插入额外的 \。当 PHP 指令 magic_quotes_sybase 被设置成 on 时,意味着插入 ' 时将使用 ' 进行转义。 默认情况下,PHP 指令 magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
二、分页
首先说一下分页的核心思想:首先当前页,页面大小,总记录数。这个三个数值可以通过总记录数和页面大小,我们就可以计算出总的页数。
# 1、连接MySQL服务器 $link = @mysqli_connect('localhost','root','123456','school'); if(!$link){ $logs = date('Y-m-d H:i:s'); $logs .= ' mysql错误编码:'.mysqli_connect_errno().'错误信息:'.mysqli_connect_error(); file_put_contents('mysql_error.log',$logs . PHP_EOL,FILE_APPEND); exit('亲 MySQL连接失败!'); } # 2、设置字符集 if( !mysqli_set_charset($link,'utf8') ){ $logs = date('Y-m-d H:i:s'); $logs .= ' mysql错误编码:'.mysqli_errno($link).'错误信息:'.mysqli_error($link); file_put_contents('mysql_error.log',$logs . PHP_EOL,FILE_APPEND); }
1、总记录数
// 获取总的记录数 $sql_total_records = "select count(*) from innodb_table_stats"; $total_records_result = mysqli_query($link,$sql_total_records); $total_records = mysqli_fetch_row($total_records_result); echo "总的记录数位: ".$total_records[0]."<br>";
2、当前页
# 通过GET方式获取客户端访问的页码 $current_page = isset($_GET['page_number']) ?$_GET['page_number'] : 1; if( $current_page < 1 ){ $current_page = 1; } if( $current_page > $total_pages ){ $current_page = $total_pages }
3、分页核心
$begin_position = ($current_page_number-1) * $page_size; $sql = "select * from tb_user limit $begin_position,$page_size"; $result = mysqli_query($link,$sql);
4、页面展示
echo '<a href="index.php?page_number=1">首页</a> '; for($i=1;$i<=$total_pages;$i++){ echo '<a href="./index.php?page_number='.$i.'">第'.$i.'页</a> '; } echo '<a href="index.php?page_number='.($current_page_number-1).'">上一页</a> '; echo '<a href="index.php?page_number='.($current_page_number+1).'">下一页</a> '; echo '<a href="index.php?page_number='.($total_pages).'">尾页</a> ';
贡献代码
header('content-type:text/html;charset=utf-8'); # 1、连接MySQL服务器 $link = @mysqli_connect('localhost','root','123456','school'); if(!$link){ $logs = date('Y-m-d H:i:s'); $logs .= ' mysql错误编码:'.mysqli_connect_errno().'错误信息:'.mysqli_connect_error(); file_put_contents('mysql_error.log',$logs . PHP_EOL,FILE_APPEND); exit('亲 MySQL连接失败!'); } # 2、设置字符集 if( !mysqli_set_charset($link,'utf8') ){ $logs = date('Y-m-d H:i:s'); $logs .= ' mysql错误编码:'.mysqli_errno($link).'错误信息:'.mysqli_error($link); file_put_contents('mysql_error.log',$logs . PHP_EOL,FILE_APPEND); } //-------------------------------------------------------------------------- # 获取总记录数 $t_sql = "select count(*) as t from student"; $res = mysqli_query($link,$t_sql); $row = mysqli_fetch_assoc($res); $total = $row['t']; # 每页显示多少记录 $pageRows = 2; # 获取总页数 $tPage = ceil($total/$pageRows); # 根据当前页码 来生成查询用的SQL if(isset($_GET['p']) && intval($_GET['p'])){ $page = $_GET['p'] > $tPage ? $tPage : $_GET['p']; }else{ $page = 1; } $start = ($page-1)*$pageRows; $sql = "select * from student limit $start,$pageRows"; //------------------------------------------------------------------ # 4、执行SQL $result 查询出来的结果集 $result = mysqli_query($link,$sql); echo '<table border="1" width="600" align="center">'; while($rows = mysqli_fetch_assoc($result)){ echo '<tr> <td>'.$rows['sno'].'</td> <td>'.$rows['sname'].'</td> <td>'.$rows['ssex'].'</td> <td>'.$rows['sbirthday'].'</td> <td>'.$rows['class'].'</td> </tr>'; } echo '</table>'; # 5、收功 mysqli_free_result($result); # 6、关闭数据库连接 mysqli_close($link); ?> <style> a { border:1px solid red; padding:2px; margin-right:3px; text-decoration:none; } </style> <div style="width:500px;margin:20px auto;"> <?php echo "<a href='page.php?p=1'>首页</a>"; echo "<a href='page.php?p=".($page-1)."'>上一页</a>"; for($i=1;$i<=$tPage;$i++){ echo "<a href='page.php?p=$i'>$i</a>"; } echo "<a href='page.php?p=".($page+1)."'>下一页</a>"; echo "<a href='page.php?p=$tPage'>尾页</a>"; ?> </div>
来自为知笔记(Wiz)
这篇关于PHP操作数据分页的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享