|
|
|
ช่วยดูโค๊ดนี้ให้หน่อยค่ะ ผิดตรงไหน ไม่รับค่าชื่อค่ะ แต่รับค่าคะแนน |
|
|
|
|
|
|
|
เป็นโค้ดที่ทำข้อสอบค่ะ
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body><?php
$subjectName = "แบบทดสอบบทที่1";
//เฉลยข้อที่ถูก -- ไม่จำกัดจำนวนข้อ
$correctAns=array("ข","ก","ค","ง","ค","ง");
//เกณฑ์การผ่านขั้นต่ำ
$cutpoint = 60;
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=tis-620">
<title>ตัวอย่างข้อสอบ</title>
<body>
<form method="POST" action="checkit.php">
<P><H1>แบบทดสอบตัวอย่าง</H1><P>
1) อำเภอสวนผึ้ง อยู่ในจังหวัดอะไร<br>
<input type="radio" value="ก" name="question1">ก) เพชรบุรี<br>
<input type="radio" value="ข" name="question1">ข) ราชบุรี<br>
<input type="radio" value="ค" name="question1">ค) ลพบุรี<br>
<input type="radio" value="ง" name="question1">ง) สุพรรณบุรี<br>
<br>
2) สะพานข้ามแม่น้ำแคว อยู่ในจังหวัดอะไร<br>
<input type="radio" value="ก" name="question2">ก)กาญจนบุรี<br>
<input type="radio" value="ข" name="question2">ข) ประจวบคีรีขันธ์<br>
<input type="radio" value="ค" name="question2">ค) นครปฐม<br>
<input type="radio" value="ง" name="question2">ง) ราชบุรี<br>
<br>
3) พระพุทธชินราช อยู่จังหวัดอะไร<br>
<input type="radio" value="ก" name="question3">ก) เชียงใหม่<br>
<input type="radio" value="ข" name="question3">ข) สุโขทัย<br>
<input type="radio" value="ค" name="question3">ค) พิษณุโลก<br>
<input type="radio" value="ง" name="question3">ง) พิจิตร<br>
<br>
4) อำเภอกาบเชิง อยู่ในจังหวัดอะไร<br>
<input type="radio" value="ก" name="question4">ก) อุบลราชธานี<br>
<input type="radio" value="ข" name="question4">ข) หนองคาย<br>
<input type="radio" value="ค" name="question4">ค) บุรีรัมย์<br>
<input type="radio" value="ง" name="question4">ง) สุรินทร์<br>
<br>
5) หาดบางแสน อยู่ในจังหวัดอะไร<br>
<input type="radio" value="ก" name="question5">ก) ระยอง<br>
<input type="radio" value="ข" name="question5">ข) จันทบุรี<br>
<input type="radio" value="ค" name="question5">ค) ชลบุรี<br>
<input type="radio" value="ง" name="question5">ง) ตราด<br>
<br>
6) พระธาตไชยา อยู่ในจังหวัดอะไร<br>
<input type="radio" value="ก" name="question6">ก) นครปฐม<br>
<input type="radio" value="ข" name="question6">ข) นครพนม<br>
<input type="radio" value="ค" name="question6">ค) นครราชสีมา<br>
<input type="radio" value="ง" name="question6">ง) นครศรีธรรมราช<br>
<br>
<br>ชื่อของผู้เข้าสอบ
<input type="text" name="usrName" size="50">
<?php
foreach($correctAns as $value)
{
echo '<input type="hidden" name="result[]" value="'. $value. '">';
}
echo "<input type = hidden name = \"subjName\" value='$subjectName'>";
echo "<input type = hidden name = \"cpoint\" value=$cutpoint>";
?>
<BR><BR>
<input type="submit" value="ส่งข้อมูล" name="ok">
<INPUT TYPE="RESET" VALUE="ยกเลิก">
</FORM>
</body>
</html>
</body>
</html>
เป็นโค๊ดรับข้อมูลข้อสอบค่ะ
Code (PHP)
<html>
<head>
<title>ตรวจข้อสอบ</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<?php
$thisUserName = trim($_POST["usrName"]);
$subjName = $_POST["subjName"];
$cutpoint = $_POST["cpoint"];
$correctAns = $_POST["result"];
$numOfQstns = sizeof($correctAns);
$score = 0;
for ($i=1; $i<=$numOfQstns; $i++)
{
$stAns[$i-1] = trim($_POST["question" . $i]);
}
for ($i=0; $i<=($numOfQstns-1); $i++)
{
$correct = $correctAns[$i];
$stAnswer = $stAns[$i];
if($stAnswer == $correct) {
$score++;
};
};
$percentage = number_format($score/$numOfQstns*100, 2, '.', '');
echo "ชื่อผู้ทำข้อสอบ: $thisUserName<br>";
echo "ข้อสอบวิชา: $subjName <br>";
echo"ทำข้อสอบได้ทั้งหมด: $score ข้อ คิดเป็นร้อยละ $percentage <br>";
echo "<br><br><b>ผลการสอบ</b>";
if($percentage >=$cutpoint) {
echo "<br> ผ่าน";
$link=mysql_connect("localhost","root","48121226");
if (!$link)
{
echo("ERROR");
}
else
{
//ติดต่อฐานข้อมูล MySQL ชื่อ test
mysql_select_db("test",$link);
//เปิด ตารางชื่อ testcom และ เขตข้อมูล ชื่อ name,class,school,today,time,score
$sql="insert into test (name,score)
values ('$name','$score')";
//เพิ่มข้อมูลลง Database
$res = mysql_query( $sql , $link );
if ($res==1)
print("Adding to table OK.");
else
print("Error Adding to table. ");
}
}else{
echo "<br><span style=\"color: #f00;\"> ท่านไม่ผ่านเกณฑ์ $cutpoint %</span><p><input type=\"button\" value=\"ทำข้อสอบใหม่\" onClick=\"history.go(-1)\">";
}
?>
</body>
</html>
Tag : PHP, Windows
|
|
|
|
|
|
Date :
2014-08-18 18:21:34 |
By :
misslethal |
View :
968 |
Reply :
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
foreach($correctAns as $value)
{
echo '<input type="hidden" name="result[]" value="'. $value. '">';
}
echo "<input type = hidden name = \"subjName\" value='$subjectName'>";
echo "<input type = hidden name = \"cpoint\" value=$cutpoint>";
?>
โค๊ดข้างบน จะเก็บใน ตัวข้อสอบทำไมครับ ให้คนทำวิวซอร์สดูเหรอครับ ว่าข้อไหนถูก 5555
เอาออกครับ
สำหรับอันล่า่งนี้ ไม่ได้มีประโยชน์ ใน from ทำข้อสอบเลยครับ เอาไปไว้ใน ตัวตรวจข้อสอบเลยครับ
Code (PHP)
<?php
$subjectName = "แบบทดสอบบทที่1";
//เฉลยข้อที่ถูก -- ไม่จำกัดจำนวนข้อ
$correctAns=array("ข","ก","ค","ง","ค","ง");
//เกณฑ์การผ่านขั้นต่ำ
$cutpoint = 60;
?>
Code (PHP)
<!doctype html>
<html>
<head>
<title>ตรวจข้อสอบ</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<?php
// เอามาจากข้างบน
$subjectName = "แบบทดสอบบทที่1";
//เฉลยข้อที่ถูก -- ไม่จำกัดจำนวนข้อ
$correctAns=array("ข","ก","ค","ง","ค","ง");
//เกณฑ์การผ่านขั้นต่ำ
$cutpoint = 60;
$thisUserName = trim($_POST["usrName"]);
// $subjName = $_POST["subjName"]; // เอาออก อยู่ข้างบนแล้ว
// $cutpoint = $_POST["cpoint"]; // เอาออก อยู่ข้างบนแล้ว
// $correctAns = $_POST["result"]; // เอาออก อยู่ข้างบนแล้ว
// $numOfQstns = sizeof($correctAns); // sizeof = Alias of count() เปลี่ยนเป็นบันทัดล่าง ตรงๆ ไม่ต้องอ้อม
$numOfQstns = count($correctAns);
$score = 0;
/* รูปแบบนี้เปลี่ยนครับ <= มันใช้ 2 operator ทำ2ครั้ง น้อยกว่าหรือเปล่า ถ้าไม่น้อยกว่า เท่ากับหรือไม่ ต้องมาตรวจสอบอีก
for ($i=1; $i<=$numOfQstns; $i++)
{
$stAns[$i-1] = trim($_POST["question" . $i]);
}
ใช้แบบข้างล่าง น้อยกว่าหรือไม่ ไม่น้อยกว่าก็ผิดไปเลย
*/
for ($i=0; $i<$numOfQstns; $i++)
{
$stAns[$i] = trim($_POST["question" . ($i+1) ]); // ไม่ต้อง trim ก็ได้มั้งครับ มันกำหนดตายตัวอยู่แล้วในค่า value ที่เราใส่เข้าไป
}
// for ($i=0; $i<=($numOfQstns-1); $i++) // นี่ก็เหมือนกันทำให้ยุ่งยากไปหรือเปล่าครับ
for ($i=0; $i<$numOfQstns; $i++)
{
// $correct = $correctAns[$i];
// $stAnswer = $stAns[$i];
if($stAns[$i] == $correctAns[$i]) $score++;
};
// $percentage = number_format($score/$numOfQstns*100, 2, '.', '');
$percentage = number_format($score*100/$numOfQstns, 2, '.', '');
echo "ชื่อผู้ทำข้อสอบ: $thisUserName<br>";
echo "ข้อสอบวิชา: $subjName <br>";
echo"ทำข้อสอบได้ทั้งหมด: $score ข้อ คิดเป็นร้อยละ $percentage <br>";
echo "<br><br><b>ผลการสอบ</b>";
if($percentage >=$cutpoint) {
echo "<br> ผ่าน";
$link=mysql_connect("localhost","root","48121226");
if (!$link)
{
echo("ERROR");
}
else
{
//ติดต่อฐานข้อมูล MySQL ชื่อ test
mysql_select_db("test",$link);
//เปิด ตารางชื่อ testcom และ เขตข้อมูล ชื่อ name,class,school,today,time,score
$sql="insert into test (name,score)
values ('$name','$score')";
//เพิ่มข้อมูลลง Database
$res = mysql_query( $sql , $link );
if ($res==1)
print("Adding to table OK.");
else
print("Error Adding to table. ");
}
}else{
echo "<br><span style=\"color: #f00;\"> ท่านไม่ผ่านเกณฑ์ $cutpoint %</span><p><input type=\"button\" value=\"ทำข้อสอบใหม่\" onClick=\"history.go(-1)\">";
}
?>
</body>
</html>
แล้วที่ว่า ไม่รับค่าชื่อ ๆ ของอะไรครับ
|
ประวัติการแก้ไข 2014-08-18 20:07:03 2014-08-18 20:08:46
|
|
|
|
Date :
2014-08-18 20:01:58 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$thisUserName = trim($_POST["usrName"]);
อันนี้หรือเปล่า match กับบันทัดล่างไหมครับ
sql="insert into test (name,score) values ('$name','$score')";
|
|
|
|
|
Date :
2014-08-18 20:11:56 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61. mysql_select_db("test",$link);
mysql_query('set name utf8'); // เพิ่มบันทัดนี้ครับ
|
|
|
|
|
Date :
2014-08-19 21:06:04 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จุดนี้ล่ะ
Table Collation:UTF-8 หรือยัง
Save As : xx.php อย่าลืม Enconding : UTF-8
น่าจะหมดล่ะ
|
|
|
|
|
Date :
2014-08-20 16:43:18 |
By :
fossil31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|