基于Sql Server 2008的分布式数据库的实践(五)

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: 原文 基于Sql Server 2008的分布式数据库的实践(五) 程序设计 ----------------------------------------------------------------------------------------------------------------- Index.

原文 基于Sql Server 2008的分布式数据库的实践(五)

程序设计

-----------------------------------------------------------------------------------------------------------------

Index.php————选择界面,并且实现学生和老师的注册

sql_ini.php————SQL配置文件

./student————学生的后台

./admin————老师的后台

-----------------------------------------------------------------------------------------------------------------

./student

cookie.php————cookie转跳文件

index1.php————后台界面

login.php————登录界面

loginout.php————cookie注销处理

main.php————主界面

menu.php————后台菜单

sclass.php————显示学生选课信息

score.php-————显示学生成绩

sinfo.php————显示学生资料

sql_ini.php————SQL配置文件

up.php————后台表单处理文件

-----------------------------------------------------------------------------------------------------------------

./admin

class.php————显示老师课程信息

cookie.php————cookie转跳文件

index1.php————后台界面

info.php————显示老师资料(有权限设置)

login.php————登录界面

loginout.php————cookie注销处理

main.php————主界面

menu.php————后台菜单

score.php-————登记学生成绩

sql_ini.php————SQL配置文件

up.php————后台表单处理文件

程序解释

学生注册

复制代码
 1 if(isset($_POST['addstudent']))
 2 {
 3     //判断是否有空,即没有输入的
 4     if(($_POST['sname']=='')||($_POST['sex']=='')||($_POST['school']=='')||($_POST['scount']=='')||($_POST['spwd1']=='')||($_POST['spwd2']==''))
 5     {
 6         echo '请输全信息!';
 7         exit();
 8     }
 9     //把传递的数据赋值到变量里面
10     $sname=$_POST['sname'];
11     $sex=$_POST['sex'];
12     $school=$_POST['school'];
13     $scount=$_POST['scount'];
14     $spwd1=$_POST['spwd1'];
15     $spwd2=$_POST['spwd2'];
16     $sid=rand(1,9999);//随机一个学号
17     //判断两次密码是不是相同
18     if($spwd1==$spwd2)
19     {
20         //SQL Server 对数据处理前的操作
21         sql();
22         //SQL语句
23         $sql="select * from [V3].[dbo].[V3_student]";
24         $result = mssql_query($sql);
25         //从结果集中取得一行作为关联数组
26         while ($row = mssql_fetch_array($result, MSSQL_ASSOC))
27         {
28             //二次判断是否登录帐号重复
29             if($row['scount']==$scount)
30             {
31                 //报错并终止
32                 echo ("已经有人申请了这个帐号!");
33                 exit();        
34             }
35         }
36         //SQL语句插入到视图里面
37         $sql_add="INSERT INTO [V3].[dbo].[V3_student] ([sid],[sex],[sname],[school],[scount],[spwd]) 
38                         VALUES (".$sid.",'".$sex."','".$sname."','".$school."','".$scount."','".$spwd1."')";
39         $result_add = mssql_query($sql_add);
40         //对SQL操作的结果的判断
41         if($result_add)
42             {echo "<center>注册成功!</center>";}
43         else 
44             {echo "sql出错!";}
45     }
46     else
47     {
48         //密码不相同报错并终止
49         echo ("两次密码不对");
50         exit();
51     }
52 }
复制代码

 

老师注册

复制代码
 1 if(isset($_POST['addadmin']))
 2 {
 3     //判断是否有空,即没有输入的
 4     if(($_POST['name']=='')||($_POST['sex']=='')||($_POST['age']=='')||($_POST['count']=='')||($_POST['pwd']=='')||($_POST['pwd2']=='')||($_POST['ageage']=='')||($_POST['tel']=='')||($_POST['address']==''))
 5     {
 6         echo '请输全信息!';
 7         exit();
 8     }    
 9     //把传递的数据赋值到变量里面
10     $tname=$_POST['name'];
11     $tsex=$_POST['sex'];
12     $tage=$_POST['age'];
13     $tcount=$_POST['count'];
14     $tpwd=$_POST['pwd'];
15     $tpwd2=$_POST['pwd2'];
16     $age=$_POST['ageage'];
17     $tel=$_POST['tel'];
18     $address=$_POST['address'];    
19     $tsuper=1;
20     $tidid=rand(1,9999);
21     //判断两次密码是否相同
22     if($tpwd==$tpwd2)
23     {
24         //SQL Server 对数据处理前的操作
25         sql();
26         //SQL语句
27         $sql="select * from [V3].[dbo].[teacher]";
28         $result = mssql_query($sql);
29         //从结果集中取得一行作为关联数组
30         while ($row = mssql_fetch_array($result, MSSQL_ASSOC)) 
31         {
32             //二次判断是否登录帐号重复
33             if($row['tcount']==$tcount)
34             {
35                 //报错并终止
36                 echo ("已经有人申请了这个帐号!");
37                 exit();                
38             }
39         }
40         $sql_add="EXEC [V3].[dbo].[V3_teacher] ".$tidid.",'".$tname."', '".$tage."', '".$tsex."', '".$tcount."', '".$tpwd."', '".$tsuper."','".$age."','".$tel."','".$address."'";
41         $result_add = mssql_query($sql_add);
42         if($result_add)
43             {echo "<center>注册成功!</center>";}
44         else 
45             {echo "sql出错!";}    
46     }
47     else
48     {
49         //报错并终止
50         echo ("两次密码不对");
51         exit();
52     }
53 }
复制代码

学生登录和查看资料

复制代码
 1 //cookie传递id
 2     $sid=$_COOKIE['uid'];
 3     sql();
 4     //SQL 语句
 5     $query = "SELECT * FROM [V3].[dbo].[V3_student] where [sid]=".$sid."";
 6     $result = mssql_query($query);
 7     //取得这个表有多少列
 8     $db_t_num=mssql_num_fields($result);
 9     //保存字段中文含义
10     $arrname[0]='学号';
11     $arrname[1]='姓名';
12     $arrname[2]='学院';
13     $arrname[3]='帐号';
14     $arrname[4]='密码';
15     /*******************
16             HTML表格输出
17     *******************/
18     echo "<table border='1' >\n";
19     echo "\t<tr>\n";
20     for($num=0;$num<$db_t_num;$num++)
21     {
22         //输出字段中文含义
23         echo "\t\t<td>".$arrname[$num]."</td>\n";
24     }
25     echo "\t</tr>\n";
26     while ($row = mssql_fetch_array($result, MSSQL_ASSOC)) 
27     { 
28         //输出内容
29       echo "\t<tr>\n";
30             echo '<td>'.$row["sid"].'</td>';
31             echo '<td>'.$row["sname"].'</td>';
32             echo '<td>'.$row["school"].'</td>';
33             echo '<td>'.$row["scount"].'</td>';
34             echo '<td>******</td>';//隐藏的写法
35         echo "\t</tr>\n";
36     }
37     echo "</table>\n";    
38     //释放SQL链接
39     mssql_free_result($result);
复制代码

学生选课

复制代码
 1 //GET得到是选课操作
 2 if($_GET['action']=='do')
 3 {
 4     //cookie传递sid
 5     $id=$_COOKIE["uid"];
 6     sql();
 7     //sid选了什么课,使check打上勾
 8     $sql_do="SELECT * FROM [V3].[dbo].[class] where [sid]=".$id."";
 9     $result_do = mssql_query($sql_do);
10     $ii=0;//保存学生所选的课
11     while ($row = mssql_fetch_array($result_do, MSSQL_ASSOC)) 
12     {
13         $s_cid_do[$ii]=$row['cid'];
14         $ii++;
15     }     
16     
17     //SQL语句通过默认学生sid=0取得课名cname和课号cid和老师tid
18     $sql_class="SELECT * FROM [V3].[dbo].[class] where [sid] = 0";
19     $result_class = mssql_query($sql_class);    
20     $i=0;//保存有多少行
21     while ($row = mssql_fetch_array($result_class, MSSQL_ASSOC)) 
22     {
23         $class_tid[$i]=$row['tid'];
24         $class_cid[$i]=$row['cid'];
25         $class_name[$i]=$row['cname'];
26         $i++;
27     }
28     //SQL语句通过tid取得老师名字,教学年龄和性别
29     for($a=0;$a<$i;$a++)
30     {
31         $sql_t[$a]="SELECT * FROM [V3].[dbo].[teacher] where [tid]=".$class_tid[$a]."";
32         $result_t[$a]= mssql_query($sql_t[$a]);
33         while ($class_t = mssql_fetch_array($result_t[$a], MSSQL_ASSOC)) 
34         {
35             $class_tsex[$a]=$class_t['tsex'];
36             $class_tage[$a]=$class_t['tage'];
37             $class_tname[$a]=$class_t['tname'];
38         }     
39     }
40     //保存字段中文含义
41     $arrname[0]='课号';
42     $arrname[1]='课名';
43     $arrname[2]='老师名字';
44     $arrname[3]='老师编号';
45     $arrname[4]='老师教学年龄';
46     $arrname[5]='老师性别';
47     $arrname[6]='选课';
48     /*******************
49             HTML表格输出
50     *******************/
51     echo '<form action="up.php" method="POST">';
52     echo "<table border='1' >\n";
53     echo "\t<tr><td colspan='7' align='center'>选课系统</td></tr>\n";
54     echo "\t<tr>\n";
55     echo "\t<tr>\n";
56     //有6列
57     for($num=0;$num<7;$num++)
58     {
59         echo "\t\t<td>".$arrname[$num]."</td>\n";
60     }
61     for($a=0;$a<$i;$a++)
62     {
63         //check初始化
64         $check = '';
65         //判断是男是女
66         if($class_tsex[$a]=='0')
67                 $class_tsex[$a]='男';
68         else
69                 $class_tsex[$a]='女';
70         //判断选了这门课
71         for($b=0;$b<$ii;$b++)
72         {
73             if($class_cid[$a]==$s_cid_do[$b])
74             {
75                 $check = 'checked';
76             }
77         }
78         echo "\t<tr>\n";
79             echo '<td>'.$class_cid[$a].'</td>';
80             echo '<td>'.$class_name[$a].'</td>';
81             echo '<td>'.$class_tname[$a].'</td>';
82             echo '<td>'.$class_tid[$a].'</td>';
83             echo '<td>'.$class_tage[$a].'</td>';
84             echo '<td>'.$class_tsex[$a].'</td>';
85             echo '<td><input type="checkbox" name=pa_'.$class_cid[$a].' '.$check.'></td>';//name=pa_'.$class_cid[$a]这样写是为了出现BUG
86         echo "\t</tr>\n";
87     }
88     echo "\t<tr><td colspan='7' align='center'><input type='submit' name='sub' value='确认课程'></td></tr>\n";
89     echo "</table>\n";
90     echo "</form>";
91 }
复制代码

 

学生退课

复制代码
 1 //GET传递操作,为退课操作
 2 if($_GET['action']=='mine')
 3 {
 4     //cookie传递sid
 5     $id=$_COOKIE["uid"];
 6     sql();
 7     //SQL语句通过学号sid取得课号cid和tid和课名
 8     $sql_s="SELECT * FROM [V3].[dbo].[class] where [sid]=".$id."";
 9     $result_s = mssql_query($sql_s);
10     $i=0;//保存有多少行
11     while ($row = mssql_fetch_array($result_s, MSSQL_ASSOC)) 
12     {
13         $s_cid[$i]=$row['cid'];
14         $s_cname[$i]=$row['cname'];
15         $s_tid[$i]=$row['tid'];
16         $i++;
17     }     
18     //SQL语句通过tid得到上课的老师名字以及教学年龄和性别
19     for($a=0;$a<$i;$a++)
20     {
21         $sql_s_t[$a]="SELECT * from [V3].[dbo].[teacher] where [tid]=".$s_tid[$a]."";
22         $result_s_t[$a] = mssql_query($sql_s_t[$a]);
23         while ($s_t = mssql_fetch_array($result_s_t[$a], MSSQL_ASSOC)) 
24         {
25             $s_tsex[$a]=$s_t['tsex'];
26             $s_tage[$a]=$s_t['tage'];
27             $s_tname[$a]=$s_t['tname'];
28         }     
29     }
30     //保存字段中文含义
31     $arrname[0]='课号';
32     $arrname[1]='课名';
33     $arrname[2]='老师名字';
34     $arrname[3]='老师编号';
35     $arrname[4]='老师教学年龄';
36     $arrname[5]='老师性别';
37     $arrname[6]='退课';
38     /*******************
39             HTML表格输出
40     *******************/
41     echo '<form action="up.php" method="POST">';
42     echo "<table border='1' >\n";
43     echo "\t<tr><td colspan='7' align='center'>我选上的课</td></tr>\n";
44     echo "\t<tr>\n";
45     echo "\t<tr>\n";
46     //有7列
47     for($num=0;$num<7;$num++)
48     {
49         echo "\t\t<td>".$arrname[$num]."</td>\n";
50     }
51     echo "\t</tr>\n";
52     for($a=0;$a<$i;$a++)
53     {
54         //判断是男是女
55         if($s_tsex[$a]=='0')
56                 $s_tsex[$a]='男';
57         else
58                 $s_tsex[$a]='女';
59         echo "\t<tr>\n";
60             echo '<td>'.$s_cid[$a].'</td>';
61             echo '<td>'.$s_cname[$a].'</td>';
62             echo '<td>'.$s_tname[$a].'</td>';
63             echo '<td>'.$s_tid[$a].'</td>';
64             echo '<td>'.$s_tage[$a].'</td>';
65             echo '<td>'.$s_tsex[$a].'</td>';
66             echo '<td><input type="checkbox" name="ma_'.$s_cid[$a].'" ></td></td>';
67         echo "\t</tr>\n";
68     }
69     echo "\t<tr><td colspan='7' align='center'><input type='submit' name='delsub' value='确认退课'></td></tr>\n";
70     echo "</table>\n";
71     echo "</form>";
72 }
复制代码

学生查看成绩

复制代码
 1 //通过cookie得到sid
 2     $id=$_COOKIE['uid'];
 3     sql();
 4     //SQL语句通过学号sid取得课号cid和tid和课名
 5     $sql_s="SELECT * FROM [V3].[dbo].[class] where [sid]=".$id."";
 6     $result_s = mssql_query($sql_s);
 7     $i=0;//保存有多少行
 8     while ($row = mssql_fetch_array($result_s, MSSQL_ASSOC)) 
 9     {
10         $s_cid[$i]=$row['cid'];
11         $s_cname[$i]=$row['cname'];
12         $s_tid[$i]=$row['tid'];
13         $s_score[$i]=$row['score'];        
14         $i++;
15     }
16     //SQL语句通过tid得到上课的老师名字以及教学年龄和性别
17     for($a=0;$a<$i;$a++)
18     {
19         $sql_s_t[$a]="SELECT * from [V3].[dbo].[teacher] where [tid]=".$s_tid[$a]."";
20         $result_s_t[$a] = mssql_query($sql_s_t[$a]);
21         while ($s_t = mssql_fetch_array($result_s_t[$a], MSSQL_ASSOC)) 
22         {
23             $s_tsex[$a]=$s_t['tsex'];
24             $s_tage[$a]=$s_t['tage'];
25             $s_tname[$a]=$s_t['tname'];
26         }     
27     }
28     //保存字段中文含义
29     $arrname[0]='课号';
30     $arrname[1]='课名';
31     $arrname[2]='老师名字';
32     $arrname[3]='老师编号';
33     $arrname[4]='老师教学年龄';
34     $arrname[5]='老师性别';
35     $arrname[6]='分数';     
36         /*******************
37             HTML表格输出
38     *******************/
39     echo "<table border='1' >\n";
40     echo "\t<tr><td colspan='7' align='center'>我选上的课</td></tr>\n";
41     echo "\t<tr>\n";
42     echo "\t<tr>\n";
43     //有7列
44     for($num=0;$num<7;$num++)
45     {
46         echo "\t\t<td>".$arrname[$num]."</td>\n";
47     }
48     echo "\t</tr>\n";
49     for($a=0;$a<$i;$a++)
50     {
51         if($s_tsex[$a]=='0')
52                 $s_tsex[$a]='男';
53         else
54                 $s_tsex[$a]='女';
55         //判断是否上成绩,若为999,则是没有上成绩
56         if($s_score[$a]=='999')
57         {
58             $s_score[$a]='未上成绩';
59         }
60         echo "\t<tr>\n";
61             echo '<td>'.$s_cid[$a].'</td>';
62             echo '<td>'.$s_cname[$a].'</td>';
63             echo '<td>'.$s_tname[$a].'</td>';
64             echo '<td>'.$s_tid[$a].'</td>';
65             echo '<td>'.$s_tage[$a].'</td>';
66             echo '<td>'.$s_tsex[$a].'</td>';
67             echo '<td>'.$s_score[$a].'</td>';
68             
69         echo "\t</tr>\n";
70     }
71     echo "</table>\n";
复制代码

老师登录和查看所有资料(权限限制)

复制代码
 1 //GET传递信息,显示所以老师(权限限制)
 2 if($_GET['people']=='all')
 3 {
 4     if($_COOKIE["super"]=='10')
 5     {
 6         sql();
 7         //SQL 语句
 8         $query = "SELECT * FROM [V3].[dbo].[teacher]";
 9         $result = mssql_query($query);
10     
11         /*******************
12                 HTML表格输出
13         *******************/
14         echo "<table border='1' >\n";
15         //取得结果集中字段的数目
16         $db_t_num=mssql_num_fields($result);
17         //保存字段中文含义
18         $arrname[0]='编号';
19         $arrname[1]='姓名';
20         $arrname[2]='教学年龄';
21         $arrname[3]='性别';
22         $arrname[4]='登录帐号';
23         $arrname[5]='登录密码';
24         $arrname[6]='管理权限';
25         
26         echo "\t<tr>\n";
27         for($num=0;$num<$db_t_num;$num++)
28         {
29             echo "\t\t<td>".$arrname[$num]."</td>\n";
30         }
31         echo "\t</tr>\n";
32         //从结果集中取得一行作为关联数组
33         while ($row = mssql_fetch_array($result, MSSQL_ASSOC)) 
34         { 
35             //判断之后显示男女中文
36             if($row["tsex"]=='0')
37                 $row["tsex"]='男';
38             else
39                 $row["tsex"]='女';
40             //判断是不是超级管理员
41             if($row["tsuper"]=='10')
42                 $row["tsuper"]='超级老师管理员';
43             else
44                 $row["tsuper"]='普通老师管理员';
45             
46                 //输出内容
47             echo "\t<tr>\n";
48                     echo '<td>'.$row["tid"].'</td>';
49                     echo '<td>'.$row["tname"].'</td>';
50                     echo '<td>'.$row["tage"].'</td>';
51                     echo '<td>'.$row["tsex"].'</td>';
52                     echo '<td>'.$row["tcount"].'</td>';
53                     echo '<td>******</td>';//隐藏的写法
54                     echo '<td>'.$row["tsuper"].'</td>';
55             echo "\t</tr>\n";
56         }    
57         echo "</table>\n";
58         
59         //释放SQL链接
60         mssql_free_result($result);
61     }
62     else
63     {
64         echo "没有权限查看!";
65     }
66 }
复制代码

老师查看资料

复制代码
 1 //GET传递信息,显示自己信息
 2 if($_GET['people']=='me')
 3 {
 4     //cookie传输tid
 5     $id=$_COOKIE["uid"];
 6     //SQL 语句
 7     $query = "SELECT * FROM [V3].[dbo].[teacher] where tid=".$id."";
 8     $result = mssql_query($query);
 9     /*******************
10             HTML表格输出
11     *******************/
12     echo "<table border='1' >\n";
13     //取得结果集中字段的数目
14     $db_t_num=mssql_num_fields($result);
15     //保存字段中文含义
16     $arrname[0]='编号';
17     $arrname[1]='姓名';
18     $arrname[2]='教学年龄';
19     $arrname[3]='性别';
20     $arrname[4]='登录帐号';
21     $arrname[5]='登录密码';
22     $arrname[6]='管理权限';
23     
24     echo "\t<tr>\n";
25     for($num=0;$num<$db_t_num;$num++)
26     {
27         echo "\t\t<td>".$arrname[$num]."</td>\n";
28     }
29     echo "\t</tr>\n";
30     while ($row = mssql_fetch_array($result, MSSQL_ASSOC)) 
31     { 
32         //判断之后显示男女中文
33         if($row["tsex"]=='0')
34                 $row["tsex"]='男';
35             else
36                 $row["tsex"]='女';
37             //判断是不是超级管理员
38             if($row["tsuper"]=='10')
39                 $row["tsuper"]='超级老师管理员';
40             else
41                 $row["tsuper"]='普通老师管理员';
42             
43                 //输出内容
44             echo "\t<tr>\n";
45                     echo '<td>'.$row["tid"].'</td>';
46                     echo '<td>'.$row["tname"].'</td>';
47                     echo '<td>'.$row["tage"].'</td>';
48                     echo '<td>'.$row["tsex"].'</td>';
49                     echo '<td>'.$row["tcount"].'</td>';
50                     echo '<td>******</td>';//隐藏的写法
51                     echo '<td>'.$row["tsuper"].'</td>';
52             echo "\t</tr>\n";
53     }
54     echo "</table>\n";
55     
56     //释放SQL链接
57         mssql_free_result($result);
58 }
复制代码

老师添加老师(权限限制)

复制代码
 1 //POST传递信息
 2 if(isset($_POST['addsub']))
 3 {
 4     //把传递的信息传到变量里面
 5     $tname=$_POST['name'];
 6     $tsex=$_POST['sex'];
 7     $tage=$_POST['age'];
 8     $tcount=$_POST['count'];
 9     $tpwd=$_POST['pwd'];
10     $tpwd2=$_POST['pwd2'];
11     $tsuper=$_POST['super'];
12     $tidid=$_POST['idid'];
13     $age=$_POST['ageage'];
14     $tel=$_POST['tel'];
15     $address=$_POST['address'];        
16     //判断两次密码是否相同
17     if($tpwd==$tpwd2)
18     {
19         sql();
20         //SQL语句
21         $sql="select * from [V3].[dbo].[teacher]";
22         $result = mssql_query($sql);
23         //从结果集中取得一行作为关联数组
24         while ($row = mssql_fetch_array($result, MSSQL_ASSOC)) 
25         {
26             //二次判断是否登录帐号重复
27             if($row['tcount']==$tcount)
28             {
29                 //报错并终止
30                 echo ("已经有人申请了这个帐号!");
31                 exit();                
32             }
33         }
34         //执行SQL语句插入
35         $sql_add="EXEC [V3].[dbo].[V3_teacher] ".$tidid.",'".$tname."', '".$tage."', '".$tsex."', '".$tcount."', '".$tpwd."', '".$tsuper."','".$age."','".$tel."','".$address."'";
36         $result_add = mssql_query($sql_add);
37         if($result_add)
38             {echo "添加成功!";}
39         else 
40             {echo "sql出错!";}    
41     }
42     else
43     {
44         //报错并终止
45         echo ("两次密码不对");
46         exit();
47     }
48 }
复制代码

老师删减老师(权限限制)

复制代码
 1 //POST传递信息
 2 if(isset($_POST['delsub']))
 3 {
 4     sql();
 5     $tid=$_POST['id'];
 6     $sql="DELETE FROM [V3].[dbo].[teacher] where [tid]=".$tid."";
 7     $result = mssql_query($sql);
 8     if($result)
 9         {echo "删除成功";}
10     else
11         {echo "SQL出错!";}
12 }
复制代码

老师添加课程

复制代码
 1 //POST传递信息
 2 if(isset($_POST['addclass']))
 3 {
 4     sql();
 5     //POST传递信息
 6     $tid=$_POST['id'];
 7     $cname=$_POST['name'];
 8     //SQL语句插入
 9     $sql="INSERT INTO [V3].[dbo].[class] ([sid], [tid], [cname],[score],[cid]) VALUES (0, ".$tid.", '".$cname."',999,".rand(1,999).")";
10     $result = mssql_query($sql);
11     if($result)
12         {echo "创建课程成功";}
13     else
14         {echo "SQL出错!";}
15 }
复制代码

老师查看选课情况

 

复制代码
 1 if($_GET['action']=='list')
 2 {
 3     //cookie传递tid
 4     $id=$_COOKIE["uid"];
 5     sql();
 6     //SQL语句取得编号tid老师以及默认学生sid=0,得到课名cname和课号cid
 7     $sql_class="SELECT * FROM [V3].[dbo].[class] where [tid]=".$id." AND [sid] = 0";
 8     $result_class = mssql_query($sql_class);    
 9     $i=0;//保存有多少行
10     while ($row = mssql_fetch_array($result_class, MSSQL_ASSOC)) 
11     {
12         $class_id[$i]=$row['cid'];
13         $class_name[$i]=$row['cname'];
14         $i++;
15     }
16     //SQL语句通过tid和cid得到有多少学生选课
17     for($a=0;$a<$i;$a++)
18     {
19         $sql_num[$a]="SELECT * FROM [V3].[dbo].[class] where [tid]=".$id." AND [cid] = ".$class_id[$a]."";
20         $result_num[$a]= mssql_query($sql_num[$a]);
21         $class_num[$a]=mssql_num_rows($result_num[$a]);
22     }
23     //保存字段中文含义
24     $arrname[0]='课号';
25     $arrname[1]='课名';
26     $arrname[2]='选课人数';
27         /*******************
28                 HTML表格输出
29         *******************/
30     echo "<table border='1' >\n";
31     echo "\t<tr><td colspan='3' align='center'>老师号:".$id."</td></tr>\n";
32     echo "\t<tr>\n";
33     //有3列
34     for($num=0;$num<3;$num++)
35     {
36         echo "\t\t<td>".$arrname[$num]."</td>\n";
37     }
38     echo "\t</tr>\n";
39     for($a=0;$a<$i;$a++)
40     {
41         //删去sid为0的
42         $class_num[$a]=$class_num[$a]-1;
43         echo "\t<tr>\n";
44             echo '<td>'.$class_id[$a].'</td>';
45             echo '<td>'.$class_name[$a].'</td>';
46             echo '<td>'.$class_num[$a].'</td>';
47         echo "\t</tr>\n";
48     }
49     echo "</table>\n";
50 }
51 ?>
复制代码

老师删减课程

复制代码
 1 //POST传递信息
 2 if(isset($_POST['delclass']))
 3 {
 4     sql();
 5     //POST传递信息
 6     $cid=$_POST['cid'];
 7     //SQL进行删减操作
 8     $sql="DELETE FROM [V3].[dbo].[class] where [cid]=".$cid."";
 9     $result = mssql_query($sql);
10     if($result)
11         {echo "删除课程成功";}
12     else
13         {echo "SQL出错!";}
复制代码

老师查看成绩

复制代码
 1 //GET传递信息
 2 if($_GET['action']=='show')
 3 {
 4     sql();
 5     //cookie传输tid
 6     $id=$_COOKIE["uid"];
 7     //SQL语句通过tid取得课号cid
 8     $sql_t="SELECT * FROM [V3].[dbo].[class] where [sid]=0 AND [tid] = ".$id."";
 9     $result_t = mssql_query($sql_t);
10     $i=0;//保存老师有多少课程
11     while ($row = mssql_fetch_array($result_t, MSSQL_ASSOC)) 
12     {
13         $t_cid[$i]=$row['cid'];
14         $t_cname[$i]=$row['cname'];    
15         $i++;
16     }
17     //将cid,sid,score存入数组
18     for($a=0;$a<$i;$a++)
19     {
20         //通过cid找到选课了的学生
21         $sql_t_s="SELECT * FROM [V3].[dbo].[class] where [cid]=".$t_cid[$a]." AND [tid] = ".$id."";
22         $result_t_s = mssql_query($sql_t_s);
23         $ii=0;//保存每个课程的学生人数
24         while($row_ready = mssql_fetch_array($result_t_s, MSSQL_ASSOC))
25         {
26             $t_sid[$a][$ii]=$row_ready['sid'];
27             $t_score[$a][$ii]=$row_ready['score'];
28             $ii++;
29         }
30         $num[$a]=$ii;//把每个课程的人数存到数组里面
31     }
32     //通过sid找到sname
33     for($b=0;$b<$i;$b++)
34     {
35         for($c=0;$c<$num[$b];$c++)
36         {
37             //通过cid找到选课了的学生
38             $sql_sn="SELECT * FROM [V3].[dbo].[V3_student] where [sid]=".$t_sid[$b][$c]."";
39             $result_sn = mssql_query($sql_sn);
40             while($row_sn = mssql_fetch_array($result_sn, MSSQL_ASSOC))
41             {
42                 $t_sname[$b][$c]=$row_sn['sname'];
43             }
44         }
45     }    
46     //列出老师的课程
47     if($_GET['cid']=='0')
48     {
49         for($dd=0;$dd<$i;$dd++)
50         { 
51                     echo "<a href='score.php?action=show&cid=".$t_cid[$dd]."'>查看__".$t_cname[$dd]."__课程情况!</a><br>";        
52         }
53     }
54     for($ddd=0;$ddd<$i;$ddd++)
55     {
56         if($_GET['cid']==$t_cid[$ddd])
57         {
58             //保存字段中文含义
59             $arrname[0]='课号';
60             $arrname[1]='课名';
61             $arrname[2]='学生号';
62             $arrname[3]='学生名';
63             $arrname[4]='成绩';
64             /*******************
65                     HTML表格输出
66             *******************/
67             echo "<table border='1' >\n";
68             echo "\t<tr>\n";
69             //5列
70             for($num5=0;$num5<5;$num5++)
71             {
72                 echo "\t\t<td>".$arrname[$num5]."</td>\n";
73             }
74             echo "\t</tr>\n";
75             
76                 for($e=0;$e < $num[ $ddd ];$e++)
77                 {
78                     if($t_score[$ddd][$e]=="999")
79                     {
80                         $t_score[$ddd][$e]="未上传成绩";
81                     }
82                     if($t_sid[$ddd][$e]=='0')
83                     {
84                         //不显示默认为0的学生
85                         continue;
86                     }
87                     //输出内容
88                     echo "\t<tr>\n";
89                         echo '<td>'.$t_cid[$ddd].'</td>';
90                         echo '<td>'.$t_cname[$ddd].'</td>';
91                         echo '<td>'.$t_sid[$ddd][$e].'</td>';
92                         echo '<td>'.$t_sname[$ddd][$e].'</td>';
93                         echo '<td>'.$t_score[$ddd][$e].'</td>';
94                     echo "\t</tr>\n";
95                 }
96             echo "</table>\n";
97         }
98     }
99 }
复制代码

老师上传成绩

复制代码
 1 if(isset($_POST['up']))
 2 {
 3     sql();
 4     //cookie传输tid
 5     $id=$_COOKIE["uid"];
 6     //POST传输得到cid
 7     $up_cid=$_POST['cid'];
 8     //通过cid和tid找到选课了的学生
 9     $sql_s="SELECT * FROM [V3].[dbo].[class] where [cid]=".$up_cid." AND [tid] = ".$id."";
10     $result_s = mssql_query($sql_s);
11     $i=0;//保存有多少学生
12     while ($row = mssql_fetch_array($result_s, MSSQL_ASSOC)) 
13     {
14         $up_score[$i]=$row['score'];
15         $up_sid[$i]=$row['sid'];    
16         $i++;
17     }
18     for($a=0;$a<$i;$a++)
19     {
20         if($up_sid[$a]=='0')
21         {
22             //忽略默认sid为0的学生
23             continue;
24         }
25         //判断是不是数字
26         if(is_numeric($_POST["sid_$up_sid[$a]"]))
27         {
28             //判断是否在0~100之内
29             if($_POST["sid_$up_sid[$a]"]<=100&&$_POST["sid_$up_sid[$a]"]>=0)
30             {
31                 //POST传递给up_score数组
32                 $up_score[$a]=$_POST["sid_$up_sid[$a]"];
33             }
34             else
35             {echo "输入0~100之内的数字成绩!<br>";}
36         }
37         else
38         {echo "输入数字!<br>";}
39         //SQL语句更新score
40         $sql_up_score="UPDATE [V3].[dbo].[class] SET [score] = ".$up_score[$a]." WHERE [cid] =".$up_cid." AND [sid] =".$up_sid[$a]."";
41         $result_up_score = mssql_query($sql_up_score);
42         if($result_up_score)
43         {echo "上传成绩成功!";}
44         else
45         {echo "上传失败!";}
46     }
47 }
复制代码

 

反省:代码不整洁,因为这是老师布置的一个作业,做的比较匆忙,只是解决了里面出现的一些error和warning,并没有对代码进行优化,还有对网站安全的处理,比如SQL注入等没有做出处理。

这些只是部分代码,希望大家看得过去。。。

 

转载请注明出处:http://www.cnblogs.com/yydcdut/p/3461254.html

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
7天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
45 10
|
7天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
61 6
|
3天前
|
SQL 数据库
数据库SQL语言实战(二)
数据库SQL语言实战(二)
|
6天前
|
SQL 监控 数据库
数据库管理与电脑监控软件:SQL代码优化与实践
本文探讨了如何优化数据库管理和使用电脑监控软件以提升效率。通过SQL代码优化,如使用索引和调整查询语句,能有效提高数据库性能。同时,合理设计数据库结构,如数据表划分和规范化,也能增强管理效率。此外,利用Python脚本自动化收集系统性能数据,并实时提交至网站,可实现对电脑监控的实时性和有效性。这些方法能提升信息系统稳定性和可靠性,满足用户需求。
29 0
|
7天前
|
SQL 存储 数据挖掘
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。 数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。 将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
|
11天前
|
SQL 安全 Java
SQL server 2017安装教程
SQL server 2017安装教程
14 1
|
15天前
|
数据库 SQL 索引
什么是数据库 SQL Execution Plan
什么是数据库 SQL Execution Plan
10 0
|
1月前
|
NoSQL 算法 安全
Redlock 算法-主从redis分布式锁主节点宕机锁丢失的问题
Redlock 算法-主从redis分布式锁主节点宕机锁丢失的问题
152 0
|
1月前
|
NoSQL 关系型数据库 MySQL
分布式锁(redis/mysql)
分布式锁(redis/mysql)
55 1
|
3月前
|
NoSQL Java 测试技术
字节二面:Spring Boot Redis 可重入分布式锁实现原理?
字节二面:Spring Boot Redis 可重入分布式锁实现原理?
158 1