要求:
1.学生成绩添加做成多人成绩同时添加
2.按条件展示数据
3.点击发送邮件给该邮箱发送最近一次考试成绩
项目重点:
分数添加页面 $data是从数据库查询的学生信息(score_add.php):
<form action="score_add_do.php" method="post">
<table border="1">
<tr>
<th>学生姓名</th>
<th>学生性别</th>
<th>学生分数</th>
<th>录入时间</th>
</tr>
<?php foreach($data as $k=>$v){ ?>
<tr>
<td>
<input type="hidden" value="<?php echo $v['s_id']; ?>" class="s_id" name="arr[s_id][]">
<?php echo $v['account']; ?>
</td>
<td>
<?php if($v['sex']==1){ ?>
<?php echo '男'; ?>
<?php }else{ ?>
<?php echo '女'; ?>
<?php } ?>
</td>
<td>
<input type="text" name="arr[score][]" class="score">分
</td>
<td>
<input type="text" name="arr[e_time][]" class="e_time">
</td>
</tr>
<?php } ?>
</table>
<input type="submit" value="添加" id="J_Go">
</form>
分数执行添加(score_add_do.php):
<?php
header('content-type:text/html;charset=utf-8');
$arr = $_POST; //post接收到一个三维数组
foreach ($arr as $value){
foreach($value as $v){
$data[] = $v; //把所有学生的id 分数 和添加时间 分别进行结合做成一个一维数组再放进一个一维数组
}
}
$arr1 = array();
foreach($data as $v){
foreach($v as $key=>$val){
$arr1[$key][] = $val; //把单个学生的id 分数 添加时间放进一个数组 再套入一个数组
}
}
$con=mysqli_connect();
foreach($arr1 as $k=>$v){
if($v[1]&&$v[2]){ //对数组进行过滤防止空数据添加
$arr['sql']="insert into 分数表(学生id,分数,添加时间)values('$v[0]','$v[1]','$v[2]')";
$res=mysqli_query($con,$arr['sql']); //循环添加
}
}
学生根据条件查询分数:
获取筛选栏的值 把值拼接做成查询数据的where条件 查出带条件的数据替换掉以前数据
发送最近一次考试成绩发送邮箱:
给发送邮件按钮增添点击事件并且传入当前学生id
<input type="button" value="发送邮件" οnclick="send( <?php echo $v['s_id']; ?>)">
发送该id到邮件发送页面,根据此id查询此学生最近一次成绩和邮箱地址,然后调用短信接口发送邮件
在linux下运行遇到文字乱码,在连接数据库下面加上 $con->set_charset("utf8");
邮件发不出去 关闭IPtables防火墙 或 firewalld 在运行一遍 如果未解决 再关闭selinux 临时关闭
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
SELINUX=disabled #增加
:wq! #保存退出
setenforce 0 #使配置立即生效
再次发送邮件
#SELINUX=enforcing #注释掉
SELINUX=disabled #增加
:wq! #保存退出
setenforce 0 #使配置立即生效
再次发送邮件