โค้ดเช็คผลการเรียน ปัญหาคือ พอเพิ่มผลการเรียนแล้ว รหัสวิชา ชื่อวิชา หน่วยกิต ไม่ขึ้น
ปัญหาคือ พอเพิ่มผลการเรียนแล้ว
รหัสวิชา ชื่อวิชา หน่วยกิต ไม่ขึ้น
แสดงแต่เกรดที่ได้อย่างเดียวและไม่มีการคำนวณ แต่ผลการเรียนเดิมที่มีอยู่แล้วในฐานข้อมูลมันคำนวณให้
cal.php หน้าคำนวณ
ขอโทษทีที่ส่งโค้ดมาให้ดูเยอะแต่ก็ไม่รู้ว่ามันผิดพลาดตรงไหนจริง
<html>
<head>
<title>:: ระบบแสดงผลการเรียนวิทยาลัยสารพัดช่างธนบุรี ::</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874"></head>
<body>
<div align="center">
<p><font color="#990066"><strong>ระบบตรวจสอบผลการเรียน</strong></font><strong><font color="#990066">วิทยาลัยสารพัดช่างธนบุรี</font></strong></p>
<p>
<?
$hostname = "localhost";
$user = " ";
$password = "";
$dbname = "webdev";
$tblname = "results";
$tblname2 = "student";
$tblname3 = "subject";
$auth = false;
$st_code = $st_login;
if (isset($st_code))
{
mysql_connect("$hostname","$user","$password") or die ("ติดต่อฐานข้อมูลไม่ได้");
mysql_select_db("$dbname") or die ("เลือกฐานข้อมูลไม่ได้");
$sql = "SELECT * FROM $tblname2 WHERE st_code = '$st_code'"; // เอาตัวแปรเก็บชื่อตารางมาใช้
$result = mysql_query($sql) or die ("เอ็กซิคิวต์คิวรี่ไม่ได้");
$num = mysql_num_rows($result);
if($num !=0)
{
$auth = true;
$b = mysql_query($sql) or die ("เลือกฐานข้อมูลไม่ได้");
$sql2 = "SELECT * FROM $tblname2 AS st,$tblname AS re WHERE st.st_code = re.st_code"; // หลัง AS เป็นการย่อชื่อให้สั้นลง เปลี่ยนให้ดูเผื่อเกิดแนวคิด ข้างล่างไม่ได้เปลี่ยนนะ
$result2 = mysql_query($sql) or die ("เอ็กซิคิวต์คิวรี่ไม่ได้");
$num2 = mysql_num_rows($result2);
$dbquery = mysql_db_query($dbname,$sql2);
for($It = 0 ; $It < $num2; $It++)
{
$result = mysql_fetch_array($dbquery);
// ไม่ต้องเป็น array ก็ได้ เพราะชื่อไม่เหมือนกันอยู่แล้ว
$st_code = mysql_result($result2 ,$It ,0);
$st_name = mysql_result($result2 ,$It ,1);
$st_lname = mysql_result($result2 , $It , 2);
}
// ตารางนี้ไม่เกี่ยวกับข้างล่าง เอาไว้จัดตำแหน่งข้อมูล รหัสและชื่อ-นามสกุลนักศึกษา ให้สวยงามเท่านั้น
echo "<table><tr><td align=right>รหัสนักศึกษา : </td><td>$st_code</td></tr>";
echo "<tr><td align=right>ชื่อ-นามสกุล :</td><td>$st_name ";
echo " $st_lname</td></tr></table><br>";
// ใส่ตารางให้ด้วย จะได้ตรงกับข้อมูลที่แสดงเป็นคอลัมภ์
echo "<table><tr bgcolor=99ccff >";
echo "<td><center><FONT SIZE=\"3\" COLOR=\"#FF0000\">รหัสวิชา</center></td>";
echo "<td><center><FONT SIZE=\"3\" COLOR=\"#FF0000\">ชื่อวิชา</center></td>";
echo "<td><center><FONT SIZE=\"3\" COLOR=\"#FF0000\">หน่วยกิต</center></td>";
echo "<td><center><FONT SIZE=\"3\" COLOR=\"#FF0000\">เกรด</center></td></tr>";
// ต้องบอกด้วยว่า ให้ดึงข้อมูลมาเฉพาะ น.ศ. ที่มีรหัสตรงกับที่ป้อนเข้ามา ($st_code)
$sql3 = "SELECT * FROM $tblname3,$tblname,$tblname2 WHERE student.st_code = results.st_code AND subject.subject_id = results.subject_id AND results.st_code = $st_code";
$result3 = mysql_query($sql3) or die ("เอ็กซิคิวรี่ไม่ได้");
$num3 = mysql_num_rows($result3);
$dbquery = mysql_db_query($dbname,$sql3);
// ต้องบอกด้วยว่า ให้ดึงข้อมูลมาเฉพาะ น.ศ. ที่มีรหัสตรงกับที่ป้อนเข้ามา ($st_code)
$sql4 = "SELECT * FROM $tblname,$tblname2 WHERE student.st_code = results.st_code AND results.st_code = $st_code";
$result4 = mysql_query($sql4) or die ("เอ็กซิคิวรี่ไม่ได้");
$num4 = mysql_num_rows($result4);
$dbquery = mysql_db_query($dbname , $sql4);
$totalcredit = 0; // ตัวแปรนี้เอาไว้เก็บหน่วยกิตรวม เพื่อเป็นตัวหารหาเกรดเฉลี่ย
// for($It = 0 ; $It < $num3; $It++) ตรงนี้ไม่ต้องใช้ก็ได้
// {
for($It =0 ; $It < $num4; $It++)
{
$result = mysql_fetch_array($dbquery);
$subject_id = mysql_result($result3 , $It , 0);
$subject_name = mysql_result($result3 , $It, 1);
$credit = mysql_result($result3 , $It , 2);
$grade = mysql_result($result4 , $It , 3);
$s = ($credit * $grade);
$sum = $sum+$s;
// ส่วนนี้ต้องกำหนดตารางให้ตรงกับส่วนหัวข้อข้างบน
$bgc=($bgc=="#FFCCCC")?"#FFCCCC":"#FFCCCC";
echo"<tr bgcolor=$bgc>";
echo"<td>$subject_id</td>";
echo"<td>$subject_name</td>";
echo"<td>$credit</td>";
echo"<td>";
if($grade ==4)
{echo"4";}
else if($grade ==3.5)
{echo"3.5";}
else if($grade ==3)
{echo"3";}
else if($grade ==2.5)
{echo"2.5";}
else if($grade ==2)
{echo"2";}
else if($grade ==1.5)
{echo"1.5";}
else if($grade ==1)
{echo"1";}
else
{echo"0";}
echo"</td></tr>";
$totalcredit =$totalcredit + $credit; // หาผลรวมของหน่วยกิต
}
$sql5 = "SELECT * FROM $tblname3,$tblname,$tblname2 WHERE student.st_code = results.st_code AND subject.subject_id = results.subject_id";
$result5 = mysql_query($sql5) or die ("เอ็กซิคิวรี่ไม่ได้");
$num5 = mysql_num_rows($result5);
$dbquery = mysql_db_query($dbname , $sql5);
for ($lt = 0; $lt < $num5; $lt++)
{
$result = mysql_fetch_array($dbquery);
$sg = mysql_result($result5 , $lt, 0);
}
if($sg!=0)
{
if($sum!=0)
$gpa = $sum/$totalcredit ; // GPA จะต้องมาจาก คะแนนที่ได้ทั้งหมด (หน่วยกิต*เกรดที่ได้) หารด้วย ผลรวมของหน่วยกิต
}
echo"</table><br><table><tr><td align='right'><FONT SIZE=\"3\" COLOR=\"#009999\">หน่วยการเรียนรวม : </td><td>" ;
printf("%d",$sum);
echo"</FONT></td></tr><tr><td align='right'><FONT SIZE=\"3\" COLOR=\"#009999\">ผลการเรียนเฉลี่ย : </td><td>";
printf("%2.2f",$gpa );
echo"</FONT></td></tr>";
echo"</table>";
echo"</table><br><table><tr><td align='right'><FONT SIZE=\"3\" COLOR=\"#FF0000\">* วิชาประเภทกิจกรรมลูกเสือวิสามัญ , กิจกรรมองค์การวิชาชีพตามประเภทวิชาชีพ </td><td>" ;
echo"</FONT></td></tr><tr><td align='left'><FONT SIZE=\"3\" COLOR=\"#FF0000\">* จะมีผลเกรดแสดงสถานะ 0 = ไม่ผ่าน , 1 = ผ่าน </td><td>";
echo"</FONT></td></tr>";
echo"</table>";
echo "<br><FONT SIZE=\"2\" COLOR=\"#FF0000\">* กรุณาตรวจสอบผลการเรียนอย่างเป็นทางการอีกครั้งกับทางวิทยาลัย";
}
}
else // ถ้าป้อนข้อมูลเข้ามาไม่ถูกต้อง ให้แสดงข้อความตามนี้
{
echo "<FONT SIZE=\"4\" COLOR=\"#FF0000\">ขออภัย ! คุณป้อนข้อมูลไม่ถูกต้อง<br>กรุณาตรวจสอบอีกครั้ง</FONT><br>";
}
?>
</p>
<p> </p>
</div>
</body>
</html>Tag : - - - -
Date :
1 มี.ค. 2548 20:42:53
By :
it53008
View :
3872
Reply :
3
ผมไม่มี Source ไม่มี Database ที่จะทดสอบโปรแกรมครับ
Date :
2 มี.ค. 2548 09:39:22
By :
@W_IN
ขอโค้ดที่ใช้รับค่า และดาต้าเบสหน่อยครับผมจะนำมาใช้ในการทำโปรเจ็คครับ กรุณาด้วยนะครับ ขอบคุณครับ [email protected]
Date :
24 พ.ค. 2550 06:46:24
By :
soda
ขอด้วยสิครับ กำลังจะทำดูผลการเรียนออนไลน์ อย่างง่าย ครับ
[email protected]
Date :
2013-03-01 14:42:40
By :
ครูกันดาร
Load balance : Server 00