要求:
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="发送邮件" onclick="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 #使配置立即生效
再次发送邮件