批改状态:合格
老师批语:
<?php// *表格的打印namespace _221202a;// *引用php数据对象use PDO;// *连接数据库$db = new PDO('mysql:dbname=phpedu1', 'root', 'root');// *$sql:sql语句$sql = <<< SQLSELECT `id`,`name`,`sex`,`email`FROM `staff`;SQL;//*$stme: sql语句预处理对象$stmt = $db->prepare($sql);// *执行sql$stmt->execute();// *绑定一个列到变量中$stmt->bindColumn('id', $id);$stmt->bindColumn('name', $name);$stmt->bindColumn('sex', $sex);$stmt->bindColumn('email', $email);//* while,foreach, list()进行结果数组的解构到变量中// while($stmt->fetch()){// printf('%s:%s,%s,(%s)<br>',$id,$name,$sex,$email);// }// *用表格进行格式化打印$table = <<< TABLE<style>table {border-collapse: collapse;width: 90%;min-width: 360px;margin: 30px auto;text-align:center;}table,th,td {border: 1px solid #000;padding: 5px;}table caption {font-size: 18px;margin-bottom: 10px;}table thead {background: lightcyan;}table tbody tr:hover {cursor: pointer;background: #efefef;}</style><table><caption>员工信息表</caption><thead><tr><th>ID</th><th>姓名</th><th>性别</th><th>邮箱</th></tr></thead><tbody>TABLE;// *PDO::FETCH_BOUND: 可以省的, 如果出现问题,再加上试试while ($stmt->fetch(PDO::FETCH_BOUND)) {// *拼装html代码$sex = $sex ? '女' : '男';$table .= <<< TR<tr><td>$id</td><td>$name</td><td>$sex</td><td>$email</td></tr>TR;}$table .= '</tbody></table>';echo $table;



<?php// *页码,行数/页,偏移量,总记录行数,总页数namespace _221202b;// *引用php数据对象use PDO;// *连接数据库$db = new PDO('mysql:dbname=phpedu1', 'root', 'root');// *1. 页码// *$page:页码(即第几页),??:表示默认值$page = $_GET['p'] ?? 1;echo '当前页码: p = ' . $page . '<br>';// *2.$num:行数/页$num = 5;echo '行数/页: num = ' . $num . '<br>';// *3. 偏移量 = (页码 - 1) * 页数$offset = ($page - 1) * $num;echo '当前偏移量: offset = ' . $offset . '<br>';// *4. 计算总记录行数// SELECT CEIL(COUNT(*)/5) AS `total` FROM `staff`// SELECT COUNT(*) AS `total` FROM `staff`// *$sql:sql语句$sql = 'SELECT COUNT(*) AS `total` FROM `staff`';//*$stme: sql语句预处理对象$stmt = $db->prepare($sql);// *执行sql$stmt->execute();// *将总记录行数绑定到一个变量上$stmt->bindColumn('total', $total);$stmt->fetch();echo '当前总记录行数: total = ' . $total . '<br>';// *5. 计算总页数:$pages// *ceil(x/y):为向上取整$pages = ceil($total / $num);echo '当前总页数: pages = ' . $pages . '<br>';// *$sql:sql语句$sql = <<< SQLSELECT *FROM `staff`LIMIT $offset, $num;SQL;//*$stme: sql语句预处理对象$stmt = $db->prepare($sql);// *执行sql$stmt->execute();// *fetchAll():获取所有数据行并返回一个2维数组$staffs = $stmt->fetchAll(PDO::FETCH_ASSOC);echo '<hr>';if (count($staffs) === 0) {// *如果此2维数组为空echo '查询结果为空';} else {// *反之,将此2维数组作为1维数组遍历foreach ($staffs as $staff) {// *extract($staff):将此数组键转换为变量名称,将数组值转换为变量值extract($staff); // $id,$name,$sex,$email// *格式化打印printf('%s-%s-%s-%s<br>', $id, $name, $sex, $email);}}echo '<hr>';


<?php require 'demo2.php' ?><!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>分页展示数据</title><style>table {width: 400px;border-collapse: collapse;text-align: center;}table th,table td {border: 1px solid;padding: 5px;}table thead {background-color: lightcyan;}table caption {font-size: larger;margin-bottom: 8px;}body>p {display: flex;}p>a {text-decoration: none;color: #555;border: 1px solid;padding: 5px 10px;margin: 10px 2px;}/* 按钮高亮的样式 */.active {background-color: seagreen;color: white;border: 1px solid seagreen;}</style></head><body><table><caption>员工信息表</caption><thead><tr><th>ID</th><th>姓名</th><th>性别</th><th>邮箱</th></tr></thead><tbody><?php foreach ($staffs as $staff) :extract($staff) ?><tr><td><?=$id?></td><td><?=$name?></td><td><?=$sex?></td><td><?=$email?></td></tr><?php endforeach ?></tbody></table><p><!-- *对总页数进行for循环 --><?php for ($i=1; $i <= $pages; $i++): ?><?php// *$url为网页上方的地址栏,当p值改变时使页码跳转// *PHP_SELF:表示当前的php脚本$url = $_SERVER['PHP_SELF'] . '?p=' . $i;// *页码$page默认值为1$page = $_GET['p'] ?? 1;//* 实现页码高亮// *三元运算符:当前的页码与地址栏的p相等时,则该链接按钮为active样式,反之为null$active = ($i == $page) ? 'active' : null;?><a href="<?=$url?>"class="<?=$active?>"><?=$i?></a><?php endfor ?></p></body></html>



Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号