原文 基于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 Server 2008的分布式数据库的实践(五)的更多相关文章

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

    原文 基于Sql Server 2008的分布式数据库的实践(四) 数据库设计 1.E-R图 2.数据库创建 Win 7 1 create database V3 Win 2003 1 create  ...

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

    原文 基于Sql Server 2008的分布式数据库的实践(三) 配置PHP 1.打开PHP配置文件,找到extension=php_mssql.dll,将前面的注释符号去掉 2.找到mssql.s ...

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

    原文 基于Sql Server 2008的分布式数据库的实践(二) 从Win7连接Win2003的Sql Server 2008 1.新建链接服务器链接到Win2003的Sql Server 2008 ...

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

    原文 基于Sql Server 2008的分布式数据库的实践(一) 配置Sql Server 2008(Win7) 1.打开SQL server2012,使用windows身份登录 2.登录后,右键选 ...

  5. 基于Sql Server 2008的分布式数据库的实践(终结)

    学习.操作心得 以前在做网站程序的时候一直用的是MYSQL,但是网上搜到MYSQL不支持分布式操作,然后便开始查询MSSQL的分布式数据库的设计与操作,后来在网上找到了<基于SQL SERVER ...

  6. 基于Sql Server 2008的分布式数据库的实践

    配置Sql Server 2008(Win7) 1.打开SQL server2012,使用windows身份登录 2.登录后,右键选择“属性”.左侧选择“安全性”,选中右侧的“SQL Server 和 ...

  7. 基于SQL Server 2008 Service Broker构建企业级消息系统

    注:这篇文章是为InfoQ 中文站而写,文章的地址是:http://www.infoq.com/cn/articles/enterprisemessage-sqlserver-servicebroke ...

  8. SQL SERVER 2008 R2 还原数据库3154错误

    1.SQL SERVER 2008 在还原数据库时,会报错. 提示错误:"备份集中的数据库备份与现有的 '***' 数据库不同.RESTORE DATABASE 正在异常终止. (Micro ...

  9. SQL Server 2008 R2 主从数据库同步

    一.准备工作: 主数据库服务器: OS:Windows Server 2008 R2    DB: SQL Server 2008 R2 Hostname : CXMasterDB IP: 192.1 ...

随机推荐

  1. linux历史发展

    1.什么是开源? 开源就是软件和源代码都是公开的. 可以修改(完善作者的代码)和创建自己的软件. 2.免费软件不同于自由软件,虽然它是免费的,但他不公布源代码,共享软件与免费软件有点类似,其初起是不收 ...

  2. javascript收集整理

    //特殊字符去掉 function check(obj){ var test=obj.value.match(/[^A-Za-z0-9]/g);//这条语句表示在输入文本中是否包含不符合要求的字符,如 ...

  3. Qt的Model/View Framework解析(数据是从真正的“肉(raw)”里取得,Model提供肉,所以读写文件、操作数据库、网络通讯等一系列与数据打交道的工作就在model中做了)

    最近在看Qt的Model/View Framework,在网上搜了搜,好像中文的除了几篇翻译没有什么有价值的文章.E文的除了Qt的官方介绍,其它文章也很少.看到一个老外在blog中写道Model/Vi ...

  4. 1.Getting Started

    Elasticsearch 是一个高度扩展的开源的全文搜索和分析引擎,它允许你存储,搜索和分析大量的数据和几乎实时. 它通常用于底层的存储.技术,提供应用实现负载的搜索功能和需求. 这里有一些使用的示 ...

  5. HDU 3802 Ipad,IPhone

    http://wutyyzchangde.blog.163.com/blog/static/172226566201132311311374/ #include <cstdio> type ...

  6. HDU 4569 Special equations (数学题)

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4569 题意:给你一个最高幂为4的一元多项式,让你求出一个x使其结果模p*p为0. 题解:f(x)%(p ...

  7. Node安装及搭建简单服务器

    注:本文安装系统为mac,windows及其他系统下载对应安装包 ,mac下载后的安装包为apk文件,windows为msi文件. 安装 1.在网上下载node安装包,官方网站2.双击下载文件,按步骤 ...

  8. hdu1395-2^x mod n = 1

    http://acm.hdu.edu.cn/showproblem.php?pid=1395 原理为 a ^ b % n == d ; >>>>>>  (( a % ...

  9. 设计模式 - 适配器模式(adapter pattern) 具体解释

    适配器模式(adapter pattern) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy 适配器模式(adapter pattern): 将一个类的接 ...

  10. Cloudera Manager、CDH零基础入门、线路指导 http://www.aboutyun.com/thread-9219-1-1.html (出处: about云开发)

    Cloudera Manager.CDH零基础入门.线路指导http://www.aboutyun.com/thread-9219-1-1.html(出处: about云开发) 问题导读:1.什么是c ...