ช่วยหน่อยครับ สุ่มตัวเลือกของข้อสอบ php

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderator: mindphp, ผู้ดูแลกระดาน

mzakub
PHP Newbie
PHP Newbie
โพสต์: 4
ลงทะเบียนเมื่อ: 23/05/2009 8:26 pm

ช่วยหน่อยครับ สุ่มตัวเลือกของข้อสอบ php

โพสต์โดย mzakub » 23/05/2009 8:36 pm

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

อันนี้ไพล์ข้อสอบ test.php

$sql="select * from test where id_chapter=$id_chapter ORDER BY RAND( ) LIMIT 0,30";
$result= mysql_query($sql) or die("select error");

echo("<blockquote><h1>แบบทดสอบออนไลน์ หลังเรียน $chapter_name </h1> ");
echo("<br>");
echo("<h4>ชื่อผู้ทำข้อสอบ ");
$n=mysql_num_rows($result);
?>
<?=$row['username']?>
<?
echo("</h4>");
echo("<h2><b>คําชี้แจง</b></h2>");
echo("<h3>- ข้อสอบมีทั้งหมด $n ข้อ ทําทุกข้อ <br>");
echo("- ห้ามหยิบยืมและห้ามลอกกันนะครับ</h3><br>");
echo("<p></blockquote>");

$num=1;
echo("<form action=check.php method=post>\n");
while( $row=mysql_fetch_array($result) )
$choice1=$result["choice1"];
$choice2=$result["choice2"];
$choice3=$result["choice3"];
$choice4=$result["choice4"];
$arr=array ( $choice1,$choice2,$choice3,$choiec4);
shuffle($arr);
{
echo("<blockquote><h4>$num. $row[2]\n<br>");

echo("<font color=blue>\n");

echo("<input type=radio name=q$row[0] value=1>$arr[3]<br>\n"); <<<<<< ติดแถวนี้และครับ
echo("<input type=radio name=q$row[0] value=2>$arr[4]<br>\n");
echo("<input type=radio name=q$row[0] value=3>$arr[5]<br>\n");
echo("<input type=radio name=q$row[0] value=4>$arr[6]<br>\n");
echo("</font></blockquote>\n");
echo("<HR>");
echo("<p></h4>");

$num++;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ส่วนอันนี้ไว้ตรวจคำตอบไพล์ check.php

$sql="select count(id_test) from test";
$result=mysql_query($sql);
$row=mysql_fetch_row($result);
$score=0;
$count=0;
$sql="select id_test,answer from test";
$result=mysql_query($sql);
while( $row=mysql_fetch_row($result) ){
if ($_POST["q$row[0]"] == $row[1] ){
$score++;
$count++;
}
else if ($_POST["q$row[0]"] =="" ){

}else{
$count++;
}
echo("<br>");
}


/////////////////////////////////////////////////////////////////////////////////

อันนี้เป็นข้อมูลของตาราง test ครับ
`id_test` int(7) NOT NULL AUTO_INCREMENT,
`id_chapter` int(7) NOT NULL,
`question` text,
`choice1` text,
`choice2` text,
`choice3` text,
`choice4` text,
`answer` char(1) DEFAULT NULL,

ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 18770
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: ช่วยหน่อยครับ สุ่มตัวเลือกของข้อสอบ php

โพสต์โดย mindphp » 23/05/2009 11:31 pm

ตรงนี้ทำเพื่ออะไรครับ

โค้ด: เลือกทั้งหมด

while( $row=mysql_fetch_array($result) )
$choice1=$result["choice1"];
$choice2=$result["choice2"];
$choice3=$result["choice3"];
$choice4=$result["choice4"];
$arr=array ( $choice1,$choice2,$choice3,$choiec4);
shuffle($arr);
{

แล้ว $row[0] คือค่าอะไร
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: viewforum.php?f=29
รับอบรม และพัฒนาระบบ: viewtopic.php?f=6&t=2042

mzakub
PHP Newbie
PHP Newbie
โพสต์: 4
ลงทะเบียนเมื่อ: 23/05/2009 8:26 pm

Re: ช่วยหน่อยครับ สุ่มตัวเลือกของข้อสอบ php

โพสต์โดย mzakub » 24/05/2009 11:23 am

อันนั้นทำผิดครับ ช่วยดูหน่อยนะครับ อยากเพิ่มสุ่มตัวเลือก+คำนวณคะแนนจากการสุ่มให้ถูกด้วยอะครับ




อันนี้ครับไพล์ test.php

$id_chapter=$_POST['id_chapter'];
$sql="select * from test where id_chapter=$id_chapter ORDER BY RAND( ) LIMIT 0,30";
$result = mysql_query($sql) or die("select error");


$sql1="select * from member where username='{$_SESSION['username1']}'";
$query1 = mysql_query($sql1) or die("select error1");
$row = mysql_fetch_array($query1);

$sql2 = "SELECT * FROM test_chapter,test WHERE test.id_chapter=test_chapter.id_chapter AND test_chapter.id_chapter='$id_chapter'";
$query2 = mysql_query($sql2) or die ("select error2");//จะได้ข้อมูลใน$sqlมาแสดง
$r= mysql_fetch_array($query2);
$chapter_name=$r['chapter_name'];

echo("<blockquote><h1>แบบทดสอบออนไลน์ หลังเรียน $chapter_name </h1> ");
echo("<br>");
echo("<h4>ชื่อผู้ทำข้อสอบ ");
$n=mysql_num_rows($result);
?>
<?=$row['username']?>
<?
echo("</h4>");
echo("<h2><b>คําชี้แจง</b></h2>");
echo("<h3>- ข้อสอบมีทั้งหมด $n ข้อ ทําทุกข้อ <br>");
echo("- ห้ามหยิบยืมและห้ามลอกกันนะครับ</h3><br>");
echo("<p></blockquote>");

$num=1;

echo("<form action=check.php method=post>\n");
while( $row=mysql_fetch_row($result) )
<<<<<<<<<<< ยังไม่ได้ทำสุ่มครับ เอาออกไปและ งงมาก- - เพราะทำแล้ว คำตอบไม่ตรง คำนวณผิด

{
echo("<blockquote><h4>$num. $row[2]\n<br>");

echo("<font color=blue>\n");
echo("<input type=radio name=q$row[0] value=1>$row[3]<br>\n");
echo("<input type=radio name=q$row[0] value=2>$row[4]<br>\n");
echo("<input type=radio name=q$row[0] value=3>$row[5]<br>\n");
echo("<input type=radio name=q$row[0] value=4>$row[6]<br>\n");
echo("</font></blockquote>\n");
echo("<HR>");
echo("<p></h4>");

$num++;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

อันนี้ไพล์ check.php

$id_member=$_POST['id_member'];
$username=$_POST['username'];
$id_chapter=$_POST['id_chapter'];
$chapter_name=$_POST['chapter_name'];
$n=$_POST['n'];
$uptime=date("Y-m-d G:i:s");

$sql="select count(id_test) from test";
$result=mysql_query($sql);
$row=mysql_fetch_row($result);


$score=0;
$count=0;
$sql="select id_test,answer from test";
$result=mysql_query($sql);
while( $row=mysql_fetch_row($result) ){ <<<<<<<< ตรงคำควณคะแนนครับ
if ($_POST["q$row[0]"] == $row[1] ){
$score++;
$count++;
}
else if ($_POST["q$row[0]"] =="" ){

}else{
$count++;
}
echo("<br>");
}

mzakub
PHP Newbie
PHP Newbie
โพสต์: 4
ลงทะเบียนเมื่อ: 23/05/2009 8:26 pm

Re: ช่วยหน่อยครับ สุ่มตัวเลือกของข้อสอบ php

โพสต์โดย mzakub » 24/05/2009 11:28 am

เอามาไม่ครบ คงไม่งงนะครับ

ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 18770
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: ช่วยหน่อยครับ สุ่มตัวเลือกของข้อสอบ php

โพสต์โดย mindphp » 24/05/2009 1:00 pm

ผมว่าถามเป็น หลักการ หรือแนวทางน่าจะดีกว่า นะครับ
แบบนี้คงหาคนตอบยาก
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: viewforum.php?f=29
รับอบรม และพัฒนาระบบ: viewtopic.php?f=6&t=2042

mzakub
PHP Newbie
PHP Newbie
โพสต์: 4
ลงทะเบียนเมื่อ: 23/05/2009 8:26 pm

Re: ช่วยหน่อยครับ สุ่มตัวเลือกของข้อสอบ php

โพสต์โดย mzakub » 24/05/2009 3:19 pm

ถ้าใช้แบบนี้แล้ว ค่าที่ส่งไปมันไม่ตรงอะ พอจะมีวิธีอื่นไหมครับ

คือChoice สลับกัน แต่ว่าValue แต่ละตัวมันไม่ได้ Random ตามตำแหน่ง
คืออย่างข้อ1 คำตอบอยู่ a
ถ้าChoice1 แลนดอมไปอยู่ข้ออื่น อย่างเช่น d ตอบก็ไม่ตรงและ แล้วเวลาเลือก choice a แต่ที่จริงมันผิด แต่ก็คำนวณถูกตามฟิลด์อะครับ

while( $row=mysql_fetch_array($result) )
$choice1=$result["choice1"];
$choice2=$result["choice2"];
$choice3=$result["choice3"];
$choice4=$result["choice4"];
$arr=array ( $choice1,$choice2,$choice3,$choiec4);
shuffle($arr);
{

echo("<input type=radio name=q$row[0] value=1>$arr[0]<br>\n");
echo("<input type=radio name=q$row[0] value=2>$arr[1]<br>\n");
echo("<input type=radio name=q$row[0] value=3>$arr[2]<br>\n");
echo("<input type=radio name=q$row[0] value=4>$arr[3]<br>\n");

clickmycom

Re: ช่วยหน่อยครับ สุ่มตัวเลือกของข้อสอบ php

โพสต์โดย clickmycom » 18/04/2015 3:55 pm

ตัวอย่างครับ
1.สุ่มข้อ
2.สุ่มช้อย
3. ตรวจว่าข้อไหนยังไม่ได้ทำ


ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 29 และ บุคคลทั่วไป 0 ท่าน