Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,038

HOME > PHP > PHP Forum > รบกวนดู Code การทำข้อสอบออนไลน์ให้หน่อยค่ะ มีปัญหาในการเก็บคะแนนคะ ไม่สามารถเก็บคะแนนได้ค่ะ


[PHP] รบกวนดู Code การทำข้อสอบออนไลน์ให้หน่อยค่ะ มีปัญหาในการเก็บคะแนนคะ ไม่สามารถเก็บคะแนนได้ค่ะ

 
Topic : 119855



โพสกระทู้ ( 41 )
บทความ ( 0 )



สถานะออฟไลน์



สอบถามเรื่องการทำข้อสอบออนไลน์ค่ะ โดยมีตารางเก็บข้อมูลดังนี้ค่ะ

1.ตารางเก็บคำถาม-คำตอบแบบ 5 ตัวเลือก

01

2. ตารางเก็บคำถาม-คำตอบ แบบข้อสอบถูก-ผิด

02

3. ตารางเก็บคะแนน

03

**โดย score เก็บคะแนนในแบบคำถาม-คำตอบแบบ 5 ตัวเลือก
score2 เก็บคะแนนในแบบคำถาม-คำตอบ แบบข้อสอบถูก-ผิด

ตอนแสดงผลจะดึงข้อมูลคำถาม-คำตอบของทั้ง 2 ตารางมาแสดง

04


******แต่ปัญหามีอยู่ว่า ไม่สามารถเก็บข้อมูลคะแนนใน score2 เก็บคะแนนในแบบคำถาม-คำตอบ แบบข้อสอบถูก-ผิดได้ค่ะ รบกวนดู Code ให้หน่อยนะคะ

หน้าแสดงข้อมูลคำถาม-คำตอบ

Code (PHP)
01.<form name="form1" method="post" action="send_score.php?qs_id=<?=$objResult2['question_set_id'];?>"">
02.<?
03. 
04.$sql="Select * From question q, question_set qs WHERE q.question_set_id=qs.question_set_id and q.question_set_id='".$_GET['id']."' order by rand()";
05.$db_query=mysql_query($sql);
06.$i=0;
07.while($result=mysql_fetch_array($db_query))
08.{
09.$i++;
10.?><br/>
11.<table width="95%" border="0" align="center">
12.<tr>
13.  <td align="left"><b><?=$i;?><input name="id[<?=$i;?>]" type="hidden" value="<?=$result["question_id"];?>">
14.    <?=$result["question_name"];?></b></td>
15.</tr>
16.<tr>
17.<td width="14%"> <input name="choice<?=$i;?>" type="radio" value="1">
18.  <?=$result["choice1"];?>
19.</td>
20.</tr>
21.<tr>
22.  <td><input type="radio" name="choice<?=$i;?>" value="2">
23.    <?=$result["choice2"];?></td>
24.  </tr>
25.<tr>
26.  <td><input type="radio" name="choice<?=$i;?>" value="3">
27.    <?=$result["choice3"];?></td>
28.  </tr>
29.<tr>
30.<td><input type="radio" name="choice<?=$i;?>" value="4">
31.    <?=$result["choice4"];?></td>
32.  </tr>
33.<tr>
34.  <td><input type="radio" name="choice<?=$i;?>" value="5">
35.    <?=$result["choice5"];?>
36.    <input name="answer<?=$i;?>" type="hidden" value="<?=$result["answer"];?>"></td>
37.  </tr>
38.</table>
39.<? }?>
40.<br />
41.<br />
42.<?
43.$sql2="select * from question2 q2, question_set qs WHERE q2.question_set_id=qs.question_set_id and q2.question_set_id='".$_GET['id']."' order by rand()";
44.$db_query2=mysql_query($sql2);
45.$a=0;
46.while($result2=mysql_fetch_array($db_query2))
47.{
48.$a++;
49.?><br/>
50.<table width="95%" border="0" align="center">
51.<tr>
52.  <td align="left"><b><?=$a;?><input name="id[<?=$a;?>]" type="hidden" value="<?=$result2["question2_id"];?>">
53.    <?=$result2["question2_name"];?></b></td>
54.</tr>
55.<tr>
56.<td width="14%"> <input name="choice1<?=$a;?>" type="radio" value="1">
57.  <?=$result2["choice1"];?>
58.</td>
59.</tr>
60.<tr>
61.  <td><input type="radio" name="choice1<?=$a;?>" value="2">
62.    <?=$result2["choice2"];?>
63.    <input name="answer2<?=$a;?>" type="hidden" value="<?=$result2["answer2"];?>"></td>
64.  </tr>
65.</table>
66.<?
67.}
68.?>
69.<br />
70.<div align="center"><br>
71.<input type="hidden" name="line" value="<?=$i;?>">
72.<input type="hidden" name="line2" value="<?=$a;?>">
73.<input type="submit" name="Submit" value="ส่งข้อสอบ">
74.</div>
75.</form>


หน้ารับค่าข้อมูลแล้วบันทึกลง ตารางเก็บคะแนน

Code (PHP)
01.<?
02.$score=0;
03.$score2=0;
04.for($i=1;$i<=$_POST["line"];$i++)
05.{
06.    if($_POST["choice$i"] == $_POST["answer$i"])
07.    {
08.        $score=$score+1;
09.    }
10.}
11.for($a=1;$a<=$_POST["line"];$a++)
12.{
13.    if($_POST["choice$a"] == $_POST["answer2$a"])
14.    {
15.        $score2=$score2+1;
16.    }
17.}
18.//echo "<p align='center'>คุณทำข้อสอบได้ $score คะแนนจาก 20 ข้อ<br>";
19.echo "<script language='javascript'>alert('บันทึกข้อมูลเรียบร้อยแล้ว');</script>";
20.echo "<meta http-equiv='refresh' content='0;URL=example.php'>";
21.$strSQL = "INSERT INTO score_example (member_id, question_set_id, score, score2, time_end) VALUES ('".$_SESSION["id"]."', '".$_GET['qs_id']."', '$score', '$score2', now())";
22.$objQuery = mysql_query($strSQL);
23.?>


รบกวนด้วยนะคะ



Tag : PHP, MySQL

Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-11-11 15:43:49 By : chero View : 6611 Reply : 2
 

 

No. 1



โพสกระทู้ ( 1,636 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

จะใส่ Input type=hidden ให้คนทำข้อสอบลอกคำตอบเหรอครับ แค่วิวซอร์ส ก็เห็นหมดครับ

ให้คีวรี่คำตอบที่ถูกจาก database เอามาเปรียบเทียบ กับคำตอบที่ได้ครับ

Code (PHP)
1.1 คำถาม xxx yyy
2.<input type='radio' name="truefalse[0]" value="1">ถูก
3.<input type='radio' name="truefalse[0]" value="0">ผิด
4. 
5.2 คำถาม xxx yyy
6.<input type='radio' name="truefalse[1]" value="1">ถูก
7.<input type='radio' name="truefalse[1]" value="0">ผิด


Code (PHP)
1.//PHP ตัวรับ
2.$result=$db->query('select .......');
3.$rows=$result->fetch_all(MYSQLI_ASSOC);
4.foreach($_POST['truefalse'] as $key => $val){
5.   $score2 += ($row[$key]['answer']==$val? 1 : 0);
6.}

เป็นแค่ตัวอย่าง ต้องประยุกติ์เอาเองนะครับ
ใช้ได้กับ แบบ choice แค่ขยาย element จาก 2 เป็น5

Code (PHP)
01.1 คำถาม xxx yyy
02.<input type='radio' name="choice[0]" value="1">aaaa
03.<input type='radio' name="choice[0]" value="2">bbbb
04.<input type='radio' name="choice[0]" value="3">ccccc
05.<input type='radio' name="choice[0]" value="4">dddd
06.<input type='radio' name="choice[0]" value="5">eeee
07. 
08.2 คำถาม xxx yyy
09.<input type='radio' name="choice[1]" value="1">aaaa
10.<input type='radio' name="choice[1]" value="2">bbbb
11.<input type='radio' name="choice[1]" value="3">ccccc
12.<input type='radio' name="choice[1]" value="4">dddd
13.<input type='radio' name="choice[1]" value="5">eeee

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-11 16:22:28 By : NewbiePHP
 

 

No. 2



โพสกระทู้ ( 1,150 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ดูจากข้อมูลที่ออกมา ปนะนำให้ปรับรูปแบบ table เป็น

1. table questions

code , question_name

2. table answers

code , question_code , answer_name , answer

เวลาจำใช้งานก็ ไป คิวรี่ตาราง question ออกมาก่อน ว่ามีกี่คำถาม

แล้วไปเอาค่า code ของ question ไปคิวรี่ หาคำตอบ ใน table answers ก็จะได้ คำตอบของคำถามนั้นๆ มา

ทำแบบนี้ 1 คำถาม จะปรับเพิ่ม กี่คำตอบให้เลือกก็ได้ สะดวกต่อการใช้งาน และยืดหยุ่นมากกว่า



------------
กรณีอยากแบ่งเป็น หลายๆ part ก็เพิ่ม type ไปใน table question ที้เดียว

code , question_name ,parts
1 ทดสอบ 1
2 ทดสอบ2 1
3 คำถามถูกผิด 2
4 คำกถามถูกผิด 2


เวลาคิวรี่ก็ select มาเป็น parts ใช้งานสะดวกดีนะ


ประวัติการแก้ไข
2015-11-11 20:59:12
2015-11-11 21:00:50
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-11 20:56:16 By : progamer2000
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนดู Code การทำข้อสอบออนไลน์ให้หน่อยค่ะ มีปัญหาในการเก็บคะแนนคะ ไม่สามารถเก็บคะแนนได้ค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)





Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่