基于Sql Server 2008的分布式数据库的实践(五)
原文 基于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传递id2 $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传递sid5 $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传递sid5 $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得到sid2 $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传输tid5 $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传递tid4 $id=$_COOKIE["uid"];5 sql();6 //SQL语句取得编号tid老师以及默认学生sid=0,得到课名cname和课号cid7 $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传输tid6 $id=$_COOKIE["uid"];7 //SQL语句通过tid取得课号cid8 $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传输tid5 $id=$_COOKIE["uid"];6 //POST传输得到cid7 $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
转载于:https://www.cnblogs.com/lonelyxmas/p/3464457.html
基于Sql Server 2008的分布式数据库的实践(五)相关推荐
- 基于Sql Server 2008的分布式数据库的实践(一)
原文 基于Sql Server 2008的分布式数据库的实践(一) 配置Sql Server 2008(Win7) 1.打开SQL server2012,使用windows身份登录 2.登录后,右键选 ...
- 基于Sql Server 2008的分布式数据库的实践(三)
原文 基于Sql Server 2008的分布式数据库的实践(三) 配置PHP 1.打开PHP配置文件,找到extension=php_mssql.dll,将前面的注释符号去掉 2.找到mssql.s ...
- 基于Sql Server 2008的分布式数据库的实践
配置Sql Server 2008(Win7) 1.打开SQL server2012,使用windows身份登录 2.登录后,右键选择"属性".左侧选择"安全性" ...
- 基于Sql Server 2000的分布式数据库的实践
摘 要:提出了如何充分利用 MS SQL Server 2000 的数据库管理特性,采用链接服务器.分布式分区视图和存储过程构建分布式数据库,以及基于数据库复制技术实现混合式的数据分布.实验实现了分布 ...
- [转]基于SQL Server 2008 Service Broker构建企业级消息系统
http://www.infoq.com/cn/articles/enterprisemessage-sqlserver-servicebroker 1.引言 Microsoft 在SQL Serve ...
- Sql Server 2008 实现不同数据库-表实时同步 本地发布/订阅
SQL server 不同数据库之间的表实时同步 图片大部分来自Sql Server 2008 实现不同数据库-表实时同步 本地发布/订阅 - 简书 有做适当的内容增加解释. 本地发布 1.新建发布 ...
- SQL Server 2008 R2 开启数据库远程连接
今天要测试一个.net系统~因为配置的数据库是SQL Server~我就不得不安装SQL Server 2008 R2~现在我们就一起来看看SQL Server 2008 R2是如何打开远程连接端口1 ...
- SQL Server 2008:示例数据库安装
SQL Server 2008终于正式发布了,官方网站提供了SQL2008的下载试用,不过有一点不爽的就是他居然把X86,X64和IA64三种处理器的版本放在了同一个ISO中,我使用的是X86的操作系 ...
- SQL Server 2008 R2开启数据库的远程连接及客户端配置
SQL Server 2008 R2如何开启数据库的远程连接 SQL Server 2008默认是不允许远程连接的,如果想要在本地用SSMS连接远程服务器上的SQL Server 2008,远程连接数 ...
最新文章
- sublime使用总结
- POJ2186——并查集+Tarjan算法求强连通分量
- 三星E1200R语言设置_三星 S20 系列评测:依旧是 Android 阵营最高水平
- vue each_Vue 应用单元测试的策略与实践 05 - 测试奖杯策略
- 微软程序员利用测试账户套现千万美元,或面临 20 年监禁
- word里双横线怎么打_美人计 | 精致打工人秀智,教你内双怎么化
- C++:值传递、指针传递、引用传递
- 华为lab-rs-v1-2.9_OSPF区域34
- 【理财】【学校财务信息管理系统】一卡通网络金融化
- 批处理 文件名字前面加前缀或者后缀
- 国产操作系统(1)UOS安装QT
- 【收集】网络上各路大侠放出的面试题、求职技巧
- 何登骥获“两优一先”荣誉 谋定·国稻种芯: 湖南农业科学院表彰
- C++ 全排列 123456789 1 2 3
- 零基础入门数据挖掘,看完这份详细的学习指南就够了!(附资料)
- Vue:使用elementUI upload组件上传excel文件
- 28_RTC实时时钟BKP备份寄存器
- openwrt procd启动流程和脚本分析
- 数字验证码识别完成自动化登录
- Linux启用显卡opengl,如何使你的Nvidia显卡支持OpenGL?