
批改狀態(tài):合格
老師批語:非常棒
1.connect.php 連接數(shù)據(jù)庫
<?php
// 連接數(shù)據(jù)庫
// PDO連接對象
$pdo = new PDO('mysql:host=localhost;dbname=mysqli', 'root', '142536');
// 設(shè)置結(jié)果默認(rèn)獲取方式: 關(guān)聯(lián)數(shù)組
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
2.page-list.php
<?php
require 'page-data.php';?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>數(shù)據(jù)展示</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<table>
<caption>用戶信息表</caption>
<thead>
<tr>
<td>id</td>
<td>姓名</td>
<td>性別</td>
<td>年齡</td>
<td>郵件</td>
<td>手機(jī)</td>
<td>操11作</td>
</tr>
</thead>
<tbody>
<?php foreach ($show as $users):?>
<tr>
<!-- 短標(biāo)簽來簡化變量的顯示 -->
<td><?=$users['id']?></td>
<td><?=$users['username'] ?></td>
<td><?=$users['sex'] ?></td>
<td><?=$users['age'] ?></td>
<td><?=$users['email']?></td>
<td><?=$users['mobile'] ?></td>
<td><button onclick="location.href='handle.php?action=edit&id=<?=$users['id']?>'" >編輯</button>
<button onclick="location.href='handle.php?action=del&id=<?=$users['id']?>'" >刪除</button></td>
</tr>
<?php endforeach ?>
</tbody>
</table>
<p>
<?php show($pages,$page)?>
</p>
</body>
</html>
3.page-data.php分頁處理
<?php
// 連接數(shù)據(jù)庫
require 'connect.php';
//獲取分頁數(shù)據(jù),一定要知道的二個數(shù)據(jù)
//1.每頁顯示的數(shù)量
$zpage = $_GET['zpage'];
if($zpage == "")
{
$num = 5;
}
else
{
$num = $zpage;
}
//2.當(dāng)前頁碼,默認(rèn)為1
$page = $_GET['p'] ?? 1;
//3.計算每一頁的第一條記錄的顯示偏移量
$offset =($page - 1) * $num;
//4.獲取分頁數(shù)據(jù)
$sql = "SELECT * FROM `user` LIMIT {$num} OFFSET {$offset}";
$show = $pdo->query($sql)->fetchAll();
//計算總頁數(shù) SELECT COUNT(`ID`) AS `total` FROM `user`
//計算表中共有多少條記錄
//每一頁顯示幾條
//總頁數(shù) = ceil(記錄總數(shù)/每頁的記錄數(shù)) 向上取整 相當(dāng)于9.1等于10
$sql = "SELECT CEIL(COUNT(`id`)/{$num}) AS `total` FROM `user`";
$pages=$pdo->query($sql)->fetch()['total'];
function show($pages,$page)
{
$w = $pages-1;
$c = $pages-10;
$w1 =$pages-13;
$w2 =$page-7;
$w3 =$page+7;
$show = "<a href=".$_SERVER['PHP_SELF'].">首頁</a>";
$prev =$page-1;
if($prev == 0) $prev = 1;
$show .= "<a href='{$_SERVER['PHP_SELF']}?p={$prev}'>上一頁</a>";
if($pages<10)
{
for($i = 1 ;$i<=$pages;$i++)
{
$href=sprintf('%s?p=%s',$_SERVER['PHP_SELF'],$i);
$active = ($i == $page) ? 'active':NULL;
$show.= "<a href='{$_SERVER['PHP_SELF']}?p={$i}' class='{$active}'>{$i}</a>";
}
}
if($pages>=10 && $prev<10)
{
for($i = 1 ;$i<=10;$i++)
{
$href=sprintf('%s?p=%s',$_SERVER['PHP_SELF'],$i);
$active = ($i == $page) ? 'active':NULL;
$show.= "<a href='{$_SERVER['PHP_SELF']}?p={$i}' class='{$active}'>{$i}</a>";
}
$show.= "<a href='{$_SERVER['PHP_SELF']}?p=14'>...</a>";
$show.= "<a href='{$_SERVER['PHP_SELF']}?p={$w}'>{$w}</a>";
$show.= "<a href='{$_SERVER['PHP_SELF']}?p={$pages}'>{$pages}</a>";
}
if($prev >= 10 && $prev < $c)
{
$show.= "<a href='{$_SERVER['PHP_SELF']}?p=1'>1</a>";
$show.= "<a href='{$_SERVER['PHP_SELF']}?p=2'>2</a>";
$show.= "<a href='{$_SERVER['PHP_SELF']}?p={$w2}'>...</a>";
for($i = $prev-2 ;$i<=$prev+4;$i++)
{
$href=sprintf('%s?p=%s',$_SERVER['PHP_SELF'],$i);
$active = ($i == $page) ? 'active':NULL;
$show.= "<a href='{$_SERVER['PHP_SELF']}?p={$i}' class='{$active}'>{$i}</a>";
}
$show.= "<a href='{$_SERVER['PHP_SELF']}?p={$w3}'>...</a>";
$show.= "<a href='{$_SERVER['PHP_SELF']}?p={$w}'>{$w}</a>";
$show.= "<a href='{$_SERVER['PHP_SELF']}?p={$pages}'>{$pages}</a>";
}
if($prev >=$c)
{
$show.= "<a href='{$_SERVER['PHP_SELF']}?p=1'>1</a>";
$show.= "<a href='{$_SERVER['PHP_SELF']}?p=2'>2</a>";
$show.= "<a href='{$_SERVER['PHP_SELF']}?p={$w1}'>...</a>";
for($i = $pages-9 ;$i<=$pages;$i++)
{
$href=sprintf('%s?p=%s',$_SERVER['PHP_SELF'],$i);
$active = ($i == $page) ? 'active':NULL;
$show.= "<a href='{$_SERVER['PHP_SELF']}?p={$i}' class='{$active}'>{$i}</a>";
}
}
$next = $page + 1;
if($next >=$pages) $next = $pages;
$show.= "<a href='{$_SERVER['PHP_SELF']}?p={$next}'>下一頁</a>";
$show.= "<a href='{$_SERVER['PHP_SELF']}?p={$pages}'>尾頁</a>";
echo $show;
}
4.handle.php 處理修改和刪除
<?php
require 'connect.php';
//獲取操作
$action = $_GET['action'];
$id = $_GET['id'];
switch($action)
{
case 'edit':
include 'edit.php';
break;
case 'doedit':
$sql = 'UPDATE `user` SET `username`=?,`password`=? WHERE `id`=?;';
$stmt = $pdo->prepare($sql);
if (!empty($_POST)) {
$stmt->execute([$_POST['username'],sha1($_POST['password']), $id]);
if ($stmt->rowCount() == 1) echo '<script>alert("更新成功");location.href="page-list.php"</script>';
}
break;
case 'del':
$sql ='DELETE FROM `user` WHERE `id`=?';
$stmt = $pdo->prepare($sql);
$stmt->execute([$id]);
if ($stmt->rowCount() == 1) echo '<script>alert("刪除成功");location.href="page-list.php"</script>';
}
5.edit.php 修改的信息提交
<?php
// 獲取要被編輯的數(shù)據(jù)
$user = $pdo->query("SELECT * FROM `user` WHERE `id`={$id}")->fetch();
//print_r($user);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>用戶編輯</title>
</head>
<body>
<h3>用戶編輯</h3>
<form action="<? echo $_SERVER['PHP_SELF']. '?action=doedit&id='.$id?>" method="POST">
<p>
<label for="name">用戶名:</label>
<input type="text" name="username" id="username" value="<?=$user['username']?>">
</p>
<p>
<label for="email">密碼:</label>
<input type="password" name="password" id="password" value="******">
</p>
<p>
<button>保存</button>
</p>
</form>
</body>
</html>
示例圖:
總結(jié):在給分頁添加功能,主要是對pages和prev進(jìn)行處理。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號