原文 基于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. 【转】C++ stringstream介绍,使用方法与例子

    原文来自:http://www.cnblogs.com/lancidie/archive/2010/12/03/1895161.html C++引入了ostringstream.istringstre ...

  2. 【转】vs2008中leptonica-1.68安装配置

    tesseract ocr挺不好配置的,找到一篇不错的文章,分享如下:http://hi.baidu.com/ever8936/blog/item/6998e1196b1d0161dab4bd8f.h ...

  3. 未能加载文件或程序集“xxxx”或它的某一个依赖项

    一般是解决方案中相互依赖的项目生成的目标平台不一样所致,更改为相同目标即可!

  4. 帝国cms7.2灵动标签万能教程

    学完本文,就完全能掌握帝国模板开发制作啦!这里只介绍sql语句调用方法(方便,快捷!) 灵动标签语法: [e:loop={,24,0}] 模板内容 [/e:loop] 详细解释:黄色部分:条件语句,即 ...

  5. 怪兽z主机豪华版 答问。

    我的淘宝店里,怪兽z主机标准版,分经济版本,标准版,豪华版,三个版本.这里给大家详细介绍一下豪华版的概况. 淘宝购买地址:http://item.taobao.com/item.htm?id=3818 ...

  6. 24_Core Data Demo

    今天开始学习Core Data,类似于数据库,可以永久保存数据.不过当把App从iPhone删掉之后就没有了.可以用来保存App的运行数据. 参考链接:iOS Swift教程 Core Data 概述 ...

  7. javascript 变量 命名规范 变量的作用域

    原文:javascript 变量 命名规范 变量的作用域 大家好,我是小强老师,今天讲解的是变量 变量 小时候我们学过  这个 应用题 :  X+1=2; 问  X 等于几?  答案是 1 对了,很聪 ...

  8. 先登录 在跳转到tabBar

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...

  9. if语句判断身高体重是否标准

    1.判断身高,体重是否标准 Console.WriteLine("请输入您的身高:"); int sg = Convert.ToInt32(Console.ReadLine()); ...

  10. BZOJ 1202: [HNOI2005]狡猾的商人( 差分约束 )

    好像很多人用并查集写的... 前缀和, 则 sumt - sums-1 = v, 拆成2条 : sumt ≤ sums-1 + v, sums-1 ≤ sumt - v 就是一个差分约束, 建图跑SP ...