基于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
posted on 2013-12-08 23:20 NET未來之路 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/lonelyxmas/p/3464457.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的基于Sql Server 2008的分布式数据库的实践(五)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 四个使用this的典型应用
- 下一篇: MVC与Validate验证提示的样式修