PHP简单学生信息查询设计及制作
(新人制作 请多多指教)
数据库的设计:
1、 html页面的编写(index.html):
首先进行html页面的框架搭建,使用表格table、tr、th、td标签来进行表格的编写,使用colgroup、col来设置每一列的宽度。
实现奇数行与偶数行显示不同的背景颜色有两种方式:
1、 使用css样式的奇偶选择器 bth-child(even/odd)even奇数 odd偶数.
2、 使用php代码写出读取数据时进行奇偶判断。添加不同的类名来实现。
下面展示一些 内联代码片
。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<style type="text/css">
a {text-decoration: none;padding: 0 4px;color: #000;}
a:hover{color: #005500;}
a.active{color: #ff0852;}
.h30 {height: 30px;overflow: hidden;}
.tabBox {min-height: 464px;}
.tab {border: 1px solid #000;margin: 0 auto;}
.tab tr th {height: 40px;background: #FFFFFF;border: 1px solid #b0b2b7;}
.tab tr td{height: 30px;border: 1px solid #b0b2b7;text-align: center;vertical-align: middle;padding: 5px 10px;}
.tab tr:nth-child(even) {background: #e8e8bf;}
.tab tr:nth-child(odd) {background: #ffffcb;}
.tab tr:hover {background: #FFFFFF;}
.page {text-align: center;padding: 10px;}
.page span {margin: 0 4px;font-size: 14px;text-align: center;}
</style>
<body>
<div class="h30"></div>
<div class="" style="width: 622px;margin: 150px auto 0;">
<a href="insert.html" style="text-align: right;display:block;padding: 5px;">添加</a>
</div>
<div class="tabBox">
<table class="tab" cellspacing="0" cellpadding="0">
<colgroup>
<col width="50px">
<col width="75px">
<col width="150px">
<col width="80px">
<col width="200px">
<col width="140px">
</colgroup>
<tr>
<th>行号</th>
<th>编号</th>
<th>学号</th>
<th>姓名</th>
<th>时间</th>
<th>编辑</th>
</tr>
<?php foreach($stus as $key => $v){?>
<?php echo "<tr>";?>
<?php echo "<td>".($key+1)."</td>";?>
<?php echo "<td>".$v['id']."</td>";?>
<?php echo "<td>".$v['number']."</td>";?>
<?php echo "<td>".$v['name']."</td>";?>
<?php echo "<td>".$v['time']."</td>";?>
<?php echo "<td><a href='edit.php?id=".$v['id']."'>编辑</a>|<a href='delete.php?id=".$v['id']."' οnclick=\"return confirm('确定删除么?')\">删除</a></td>";?>
<?php echo "</tr>";?>
<?php }?>
</table>
</div>
<div class="page">
<?php include_once('page.php');changePage();?>
</div>
</body>
</html>
2、 php后台代码的编写(database.php):
一、 数据的链接:
首先定义好mysql数据的用户名 密码 需要链接的数据库名称以及数据库的ip地址或者域名,使用mysqli_connect(主机,用户名,密码,数据库名)方法获得链接。
分别封装两个方法分别是获取数据库链接getMysql_connect()和关闭链接my_close();
下面展示一些 内联代码片
。
<?php
header("Content-Type: text/html;charset=utf-8");
function getMysql_connect(){
$servername = "localhost";
$username = "root";
$password = "123456";
$dbname = "test";
// 创建连接
$con = mysqli_connect($servername,$username,$password,$dbname);
$con->query("set names utf8");
if ($con->connect_error) {
die("could not connect to the db:\n" .$con->connect_error);
}
return $con;
}
function my_close($conn){
mysqli_close($conn);
};
?>
二、 进行数据的查询(index.php):
下面展示一些 内联代码片
。
<?php
header("Content-Type: text/html;charset=utf-8");
$page=(int)(isset($_GET['page']) ? $_GET['page']:0);
include_once('database.php');
$con=getMysql_connect();
$d=10;
if($page!=0){
$page=($page-1)*$d;
}
$sql = "SELECT id,number,name,time FROM student order by id asc limit ".$page.",".$d;
$result = $con->query($sql);
$stus=[];
while($row = $result->fetch_assoc()) {
$stu=[];
$stu["id"]=$row["id"];
$stu["number"]=$row["number"];
$stu["name"]=$row["name"];
$stu["time"]=$row["time"];
$stus[]=$stu;
}
my_close($con);
include_once('index.html');
?>
首先设置字符编码为utf-8防止网页显示乱码问题。引入database.php文件,调用getMysql_connect()获得数据库链接,接下来进行数据库查询语句的编写:
SELECT id,number,name,time FROM student order by asc limit 0,10;
order by asc 降序
limit 0,10 从第0行位置开始查询10条数据。
将student表中数据进行降序排序 接着查询表的id,number,name,time的字段值 每次只查询10行。使用query()方法进行查询操作,得到返回的资源 r e s u l t ,使用使用 f e t c h a s s o c ( ) 方法得到每一行的数据 result,使用使用fetch_assoc()方法得到每一行的数据 result,使用使用fetchassoc()方法得到每一行的数据row,然后把每一行数据存入$stus[]数组当中。
三、 进行数据页面的显示:
在index.php页面中包含写好的静态网页index.html;把$stus[]学生信息数组传到页面。
在html页面使用foreach来遍历stus[]里的学生信息,并取出学生信息在页面上打印显示。
四、 分页文件
<?php
header("Content-Type: text/html;charset=utf-8");
function changePage($a=10){
$d=$a;
include_once('database.php');
$c=getMysql_connect();
$sql = "select count(*) from student";
$result= $c->query($sql);
$row=$result->fetch_assoc();
$count=$row['count(*)'];
my_close($c);
$pages=(int)($count/$d)+1;
echo "<div></div>";
$thpage=(int)(isset($_GET['page']) ? $_GET['page']:0);
if($thpage>1){
echo "<a href='index.php?page=".($thpage-1)."' >上一页</a>";
}
for($i=1;$i<=(int)$pages;$i++){
echo "<a class='".($thpage==$i ? 'active':'')."' href='index.php?page=".$i."' >".$i."页</a>";
}
if($thpage<$pages-1){
echo "<a href='index.php?page=".($thpage+1)."' >下一页</a>";
}
echo "<br>";
echo "<span>总共:".((int)$pages+1)."页</span>|<span>当前:第".$thpage."页</span>";
}
?>
3、 页面效果图:页面进行了简单的分页效果
第一页·:
第二页
倒数第二页
最后一页: