|
|
|
ทำ radom choice ข้อสอบยังไงดีครับ คือผมสร้างฟิล ไว้ 4 ฟิล์ choice1,choice2,choice3,choice4, ตอนนี้เลย |
|
|
|
|
|
|
|
มีหลายวิธีครับคือ
ยกตัวอย่างนะ
มีข้อสอบอยู่ 10 ข้อ แต่ต้องการ 4 ข้อทำดังนี้
1. การ Random จากฐานข้อมูล
-- ใช้ฟังก์ชั่น
$id = rand(1,10);
-- คิวรี่จากฐานข้อมูล โดยใช้ limit ตำแหน่งที่ $id มา 1 ตัว เช่น
select * from table limit ".$id.", 1
ตรวจสอบว่า ข้อมูลในฐานข้อมูลซ้ำกันหรือไม่ ถ้าไม่ใช่ให้ทำไปเรื่อยๆ
2. การ Random จาก Array
-- ใช้ฟังก์ชั่น
$id = rand(1,10);
ตรวจสอบว่า $id = array หรือไม่ แล้วทำจนกว่าจะครบ 4 choice
เข้าใจไหมนี่ ถ้ามีพื้นฐาน PHP Mysql ไม่น่าจะมีปัญหานะ
Tee ITCLUB
|
|
|
|
|
Date :
7 พ.ค. 2551 10:45:12 |
By :
TeeITCLUB |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้ผมทำ radom ข้อสองแล้วครับ ได้แล้ว แต่ตรงนี้ติดที่ว่าต้องทำ แต่ในตัวข้อสอง มันก็จะมีเก็บฟิล์ choice ไว้สี่ฟิล ตัวอย่างเช่น choice1,choice2,choice3,choice4, คือปกติ มันก็จะเรียงตามนี้ ยกตัวอย่างนะครับ
A=10
B=15
C=20
D=25
ก็คือถ้าเราทำ ปกติมันก็จะฟิกอย่างนี้ทุกครั้งครับ แต่ต้องการให้มัน Radom เช่น A=25 ,B=20 ประมาณนี้อะครับ เราจะเอา 4 choice นั้นมาสลับกันอย่างไรดีครับ ช่วยบอกไอเดียวหน่อยจิครับ
|
|
|
|
|
Date :
7 พ.ค. 2551 14:11:41 |
By :
เจ้าตัวปัญหา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สมมุติว่า fetch_array มาได้แบบนี้
$question=$rs['ques'];//คำถาม
$choice1=$rs['a1'];//ตัวเลือก 1
$choice2=$rs['a2'];//ตัวเลือก 2
$choice3=$rs['a3'];//ตัวเลือก 3
$choice4=$rs['a4'];//ตัวเลือก 4
$a= "<input type= 'radio' name='select_$id' value='1'>$choice1";// สร้างตัวแปรรอไว้
$b= "<input type= 'radio' name='select_$id' value='2'>$choice2";// สร้างตัวแปรรอไว้
$c= "<input type= 'radio' name='select_$id' value='3'>$choice3";// สร้างตัวแปรรอไว้
$d= "<input type= 'radio' name='select_$id' value='3'>$choice4";// สร้างตัวแปรรอไว้
$arr= array ( $a,$b,$c,$d); //เอาตัวแปรที่ สร้างไว้มาทำเป็น Array
shuffle($arr); // ใช้ shuffle Array สลับค่า มันซะให้มั่ว ๆ เลย
echo $arr[0]; // echo ค่าแรกที่ สลับได้
echo $arr[1]; // echo ค่าสองที่ สลับได้
echo $arr[2]; // echo ค่าสามที่ สลับได้
echo $arr[3]; // echo ค่าสองที่ สลับได้
ไม่ติดก็มาถามได้อีกนะครับ แต่หลักการติดแน่ครับแต่ผมอาจจะพิมพ์ตกหล่นไปบ้าง คิดว่าคงจะแก้ได้นะครับ
|
|
|
|
|
Date :
7 พ.ค. 2551 20:57:18 |
By :
โปรแกรมมั่ว |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|