PHP -- 案例 -- 学生管理系统

/*$student = json_encode($student);//把数组转成json格式的字符串  */  
$filename = 'class.txt';

$class = [];
if(file_exists($filename)){
    //file_exists — 检查文件或目录是否存在
    //处理这个文件之前要先检查文件是否存在
    //有这个文件才执行,没有就不执行了
    
$class = file($filename);
    foreach($class as $k=>$v){
        $class[$k] = json_decode($v, true);
    }
}


//分页显示
/* 
   $num = 3;
   第 1 页: $offset = 0 
   第 2 页: $offset = 3 $num等于几这里就是几
   第 2 页: $offset = $num
   第 2 页: $offset = 1*$num
   
   这里分页重点就是$now_page的变化
*/

$num = 3;//每页显示数量

$count = count($class);//获取学生信息总的数量
$total_page = ceil($count/$num);//ceil — 进一法取整,取整数 +1
//一共需要显示总的页数  
//这里除出来可能是小数,intval整型不能用在这里
//因为整型会取消小数,就会少显示一个学生信息
// 7/3 = 2.333 intval取整 = 2  ceil取整 = 3


//获取当前页  
$now_page = isset($_GET['page'])?$_GET['page']:1;
//如果写1就写死了,数据就不会变了
//但是不写1的话,第一次点进来地址栏是不显示page的,就获取不到page
//所以需要用三目运算符,如果没有page取值就取1,有的话就优先获取page的值
//$_GET['page']获取浏览器搜索栏的当前页(地址栏page后面的值)
//不是只有form表单才能用$_GET



//这个if判定点到最后一页之后,再点就停在最后一页
if($now_page < $total_page){//当前页小于总页数,就可以继续下一页
    $next_page = $now_page + 1;//下一页
}else{
    $next_page = $total_page;//如果是最后一页,怎么点都停在这一页
}

//这个if判定点到第一页之后,再点就停在第一页
if($now_page > 1){
    $prev_page = $now_page-1;//上一页 = 当前页 - 1
}else{
    $prev_page = 1;//如果是第一页,怎么点都停在这一页
}



$offset = ($now_page - 1)*$num;
$list = array_slice($class, $offset, $num);
//array_slice — 从数组中取出一段
//取出来的在页面显示,
//第一个参数是要截取的数组
//第二个参数是从几开始
//第三个参数是截几个(每页显示几个)
?>
    
    
    
    
        



    学生列表
    
    
    
    


    ";
                //要做修改功能的话还要新建一个页面
                //同时要修改哪一个学生的信息,也要把名字传过去
                //这个名字会在地址栏显示出来,这样就知道要修改的是哪一个了
            }   
        ?>
        
        
        
添加学生
姓名 性别 年龄 操作
{$v['name']}{$v['sex']}{$v['age']}修改|删除
/ 上一页 下一页
image.png

 0){//验证$num是否收到数据,大于0就成功,否则失败
            die("");//成功就输出并且跳转到显示页面
        }else{
            die("");//失败也输出信息但是停在此页面
        }
    }
?>





    添加学生
    
    
    
    


    

添加学生

姓名:

性别:

年龄:

image.png

//修改学生信息的跳转页面




    function find_student($class, $name){
        $result = [];
        foreach($class as $key=>$student){
            //这里要加key是因为要知道需要修改的学生在数据库的位置
            //所以需要拿到这个学生信息在数组的索引
            if($student['name'] == $name){
                $result = array_merge($student, ['number' => $key]);
                //array_merge — 合并一个或多个数组
                //给学生加一个学号(就是数组的索引)
                break;
            }
        }
        if(empty($result)){
            $ret = '查无此人';
        }else{
            $ret = $result;
        }
        return $ret;
    }
    //在这里是要修改的学生信息
    $name = $_GET['name'];
    
    
    //班级信息:
    $class = [];
    $filename = 'class.txt';
    if(file_exists($filename)){
        $class = file($filename);
        foreach($class as $k=>$v){
            $class[$k] = json_decode($v, true);
        }
    }
    // print_r($class); 
    $info = find_student($class, $name);
    // print_r($info);
    if(!empty($_POST)){//如果接收到的数据不为空,就是如果接收到了数据做以下操作
        $data = $_POST;
    }
?>




    
    
    
    


    

修改学生信息

姓名: >

性别: />男 />女

年龄: >

image.png

你可能感兴趣的:(PHP -- 案例 -- 学生管理系统)