百亿佳和
蛮好的。
qq_慕丝6230790
用align=center
weixin_宝慕林5007077
shide
读书人ok
weixin_慕哥0467611
Mr_zhaoyouqian
你把更新方法加一个定时器不就得了?
无缘之间
慕前端6476978
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
</head>
<body>
<?php
/**
* Created by PhpStorm.
* User: 123
* Date: 2020/2/14
* Time: 12:16
*/
/*1.传入页码*/
$page = $_GET['p'];
/*2.根据页码取出数据, php -> mysql*/
$host = "localhost";
$username = "root";
$password = "123456";
$db = "page";
$pageSize = 3;
$showPage = 5;
//连接数据库
$conn = mysqli_connect($host, $username, $password, $db);
if (!$conn) {
var_dump("连接失败");
}
//设置数据库的编码格式,防止乱码
mysqli_query($conn, "SET NAMES UTF8");
//编写sql获取分页数据 SELECT * FROM 表名 LIMIT 起始位置,显示条数
$sql = "SELECT * FROM test LIMIT " . ($page - 1) * $pageSize . ",{$pageSize}";
//把sql语句传送数据中
$result = mysqli_query($conn, $sql);
//处理数据
echo "<table border='1' cellspacing='0' width='40%' class='margin: 0 auto'>";
echo "<tr><td>ID</td><td>name</td></tr>";
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr><td>{$row['id']}</td><td>{$row['name']}</td></tr>";
}
echo "</table>";
//释放结果,关闭连接
mysqli_free_result($result);
//获取数据总数
$total_sql = "SELECT COUNT(*) FROM test";
$total_result = mysqli_fetch_assoc(mysqli_query($conn, $total_sql));
$total = $total_result['COUNT(*)'];
$total_page = ceil($total / $pageSize);
mysqli_close($conn);
//3.显示数据 + 分页条
$page_banner = '';
if ($page > 1) {
$page_banner .= "<a href='" . "{$_SERVER['PHP_SELF']}?p=1" . "'>首页</a>";
$page_banner .= "<a href='" . "{$_SERVER['PHP_SELF']}?p=" . ($page - 1) . "'>上一页</a>";
}
//初始化数据
$start = 1; //开始页面
$end = $total_page; //结束页面
$pageOffset = ($showPage - 1) / 2;
if ($total_page > $showPage) { //如果总页面大于显示的页面
if ($page > $pageOffset + 1) { //如果当前页面大于偏移量
$page_banner .= "...";
}
if ($page > $pageOffset) { //当前页大于偏移量
$start = $page - $pageOffset;
$end = $total_page > $page + $pageOffset ? $page + $pageOffset : $total_page;
} else {
$start = 1;
$end = $total_page > $showPage ? $showPage : $total_page;
}
if ($page + $pageOffset > $total_page) {
$start = $start - ($page + $pageOffset - $end);
}
}
for ($i = $start; $i <= $end; $i++) {
$page_banner .= "<a href='" . "{$_SERVER['PHP_SELF']}?p={$i}" . "'>{$i}</a>";
}
//尾部省略
if ($total_page > $showPage && $total_page > $page + $pageOffset){
$page_banner .= "...";
}
if ($page < $total_page) {
$page_banner .= "<a href='" . "{$_SERVER['PHP_SELF']}?p=" . ($page + 1) . "'>下一页</a>";
$page_banner .= "<a href='" . "{$_SERVER['PHP_SELF']}?p={$total_page}" . "'>尾页</a>";
}
$page_banner .= "总页数{$total_page},";
$page_banner .= "<form action='demo1.php' method='get'>";
$page_banner .= "到第<input type='text' size='2' name='p'>页";
$page_banner .= "<input type='submit' value='确定'>";
$page_banner .= "</form>";
echo $page_banner;
?>
</body>
</html>
小小单身
Mcfly46
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<?php
include "conn.php";
$page = isset($_GET['p']) ? $_GET['p'] : '';
$page_size = 10;
$page_from = ($page-1) * $page_size;
$sql = "SELECT * FROM message LIMIT $page_from, $page_size";
$res = $conn->query($sql);
?>
<table class="one" border="1">
<tr>
<td>id</td><td>用户</td><td>内容</td><td>时间</td><td>操作</td>
</tr>
<?php while($row = $res->fetch_assoc()){ ?>
<tr>
<td><?php echo $row['id']; ?></td>
<td><?php echo $row['username']; ?></td>
<td><?php echo $row['mes']; ?></td>
<td><?php echo $row['mestime']; ?></td>
<td><a href="#">修改</a> | <a href="#">删除</a></td>
</tr>
<?php } ?>
</table>
<br /><br />
<div class="page">
<?php
$page_banner = "";
$sql = "SELECT * FROM message";
$res = $conn->query($sql);
$total_records = $res->num_rows;
$total_pages = ceil($total_records / $page_size);
$start = $page-5;
$end = $page+4;
if($page < 6){
$start = 1;
$end = 10;
}
if($page > $total_pages-4){
$start = $total_pages-9;
$end = $total_pages;
}
if($total_pages < 10){
$start = 1;
$end = $total_pages;
}
if($page > 1){
$page_banner = "<a href='page.php?p=1'>首页</a>";
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=".($page-1)."'>上一页</a>";
}
for($i=$start; $i<=$end; $i++){
if($page == $i){
$page_banner .= "<span class='current'>{$i}</span>";
}else{
$page_banner .= "<a href='page.php?p=".$i."'>".$i."</a>";
}
}
if($page < $total_pages){
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=".($page+1)."'>下一页</a>";
$page_banner .= "<a href='page.php?p=$total_pages'>尾页</a>";
}
echo $page_banner;
echo "共".$total_pages."页";
?>
</div>
</body>
</html>
qq_扮縯尛醜_0
自己解决了
天雨潇潇
贴代码
无心人哦
会不会是数据库密码错误了
卑鄙与我
你可以通过使用var_dump($total_result)查看数组内容,通过看对应的键就可以知道该键对应的值,这里的0键对应的应该是id
慕设计2812226
慕设计2812226
我跟你出错是一样的啊
空中鱼儿
这个错误
慕尼黑9899992
执行完$total_result = mysql_fetch_array(mydqli_query($total_sql));
后的得到的是一个数组
array{
[0] =>数据数
[counte(*)] =>数据数
}
所以你只需要取其中的一个就行了的
hqq尘子
$sql="SELECT * FROM empmanage LIMIT ".(($page-1)*10).",10"; 像我这样写是没问题的
hqq尘子
我个人觉得,这个p可以用,但是会报错。为什么这么说呢。因为:
在地址框里文件名后,输入?p=1 后回车,是有显示的;
用$pageSize=10定义好单页展示条数,用sql语句分页:$sql="SELECT * FROM article LIMIT " .(($page-1)*$pageSize) .",".($pageSize); 页面分好之后,地址框输入 ?p=数值,回车会跳到指定页面;
这里我出现一个问题,就是浏览器打开php文件,地址框不带p的值,会报错,报错的地方,就是接收p的语句,我的是:$page=$_GET['p']; 。但是,跳转页面之后,就不再报错了。我怎么知道的呢,因为我先把分页条做了出来,不管报错,点击页码跳转到任何一个页面,只要地址框出现 ?p=数值,就不再报错了。
所以我说,想直接获取页码,好像不太行,但是之后的操作可以进行。
慕雪6897041
等号前面一个.
会偷鱼的猫
if($page<1 || $page>$total_page || !preg_match("/^\d*$/",$page)){ echo "页码不正确"; die(); }
慕田峪2038597
可以用int把浮点型自己强制转换成整形,不转化的话应该也可以但是考虑到浮点型有精度丢失还是转一下比较好
西街光影
下载一个WampServer就好了
hacker_m
如果是0改为1,大于总页数让page等于总页数
c放过自己
如果是按讲师写的话只有在$total_page>$showpage才会进入if里,当$total_page<$show_page时不会进if,这时$start=1,你看看for循环是不是有问题或者$start初始值有没有给1
祖国大花朵
图片分页原理是一样的
Seabiscuit_
我刚刚打完,你要我代码吗
qq_責责_0
Joper
$sql="SELECT * FROM test LIMIT ".(($page-1)*10).",10"; 加个括号