ช่วยหน่อยครับ เกี่ยวกับ PHP และ SQL

เริ่มโดย tarusame, 03 กันยายน 2012, 11:14:26

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

tarusame

คืองี้ครับ ผมได้ทำเว็บเกี่ยวกับบทเรียนสำเร็จรูป แล้วทีนี้ ผมขอกล่าวรูปแบบเกี่ยวกับเว็บคร่าวๆนะครับ

เป็นบทเรียนสำเร็จรูปครับ โดยเมื่อ Login เข้าระบบ แล้วเราก็จะเข้าสู่บทเรียน (พอเข้าสู่บทเรียน มันจะให้เราทำ Pretest ก่อน) (ข้อสอบ Pretest นั้น เป็นการรันด้อม ครับ)

[Random โดยใช้คำสั่ง ORDER BY rand() ในส่วนของ การเรียกจาก mySQL]

ประเด็น.....คือ.... พอทำข้อสอบเสร็จ ให้ข้อสอบที่ถูก Random แล้วเรากด ตรวจคำตอบ ก็จะเข้าสู่บทเรียน แต่ ใน Post test เราอยากได้ข้อสอบที่ถูก random ตอน Pretest กลับมาทำใน Post test อีกครั้งครับ (งงกันไหม)

ผมได้สร้างฐานข้อมูล มา 2 ชุด คือ check_test กับ quize

check_test ก็คือ จะเก็บว่า student ID นั้น ทำ pretest ข้อไหนไปแล้วบ้าง
รูปแบบ ตารางจะเป็นแบบนี้
qz_ = จำนวนข้อสอบทั้งหมด แล้วก็บันทึกว่า แต่ละ student ID ทำข้อไหนแล้วบ้าง
-----------------------------------------------------
|  Std_id  |   qz_1  | qz_2  | qz_3  | qz_4  | qz_5 |
-----------------------------------------------------

quize ก็คือ เก็บข้อสอบครับ
-----------------------------------------------------
|  qz_id  |   qz_title  | c_1  | c_2  | c_3  | c_4 |
-----------------------------------------------------

สิ่งที่ผมต้องการตอนนี้ก็คือ "ดึงข้อสอบออกมา โดยอ้างอิงจาก Check_test ครับ"

เผื่อใคร งง ก็คือ check_test จะเป็นตัวชี้ว่าจะเอาจาก quiz ข้อไหนออกมาโดยอ้างอิงจาก student id ครับ

ถ้าพูดให้เห็นภาพคือ นักเรียนที่เข้ามาทำ Pretest โดยข้อสอบจะรันด้อม
พอหลังจากนั้นทำบทเรียนเสร็จ แล้วมาทำ Post Test ข้อสอบ Post Test จะต้องเหมือนกับ pretest ที่เคยทำครั้งล่าสุด
2 seconds ago · Like


รบกวนต้องการความช่วยเหลือครับ

หากใครมีวิธีที่ดีกว่านี้ รบกวน ช่วยชี้แนะหน่อยครับ

ขอบพระคุณมากครับ

[direct=http://goo.gl/GfMSF][/direct]
เว็บโฮสติ้ง ราคาเริ่มต้น 300 บาท/ปี, จดโดเมนเนม, VPS, Co-Location, รับประกันคุณภาพ
บริการดีเป็นกันเอง บริการสอนการใช้งานพื้นฐาน ฟรี เจ้าของโฮสติ้งมีตัวตน มีเซิฟเวอร์เอง (วางในประเทศไทย)

http://www.smhosting.in.th
สนใจบริการติดต่อ 095 565 5917 (TrueMove H) หรือ [email protected]
[direct=https://facebook.com/SMHosting]Facebook[/direct]

guzzilar

#1
สร้าง table 1 ตัว

ตัวนึงเก็บ แบบทดสอบก่อนเรียน แล้วสร้าง column ประมาณนี้ครับ
--------------------------------------
| id | student_id | quiz_id | status |

แล้วใน quiz_id ก็เอาเลขที่แรนด้อมมาได้มา implode(',',$ค่าแรนด้อม)เก็บลงไป
ทีนี้ในตารางตัวแรกก็จะเก็บข้อมูลลักษณะนี้

-------------------------------------------------------
| id | student_id | quiz_id | status |
| 1 | 001........ | 1,2,3,4 | ...1.. |

แล้วเวลาจะใช้ก็ไป explode(',' ,$quiz_id); ออกมา ก็จะได้ค่าเป็นอาเรย์ แล้วเอาอาเรย์ที่เก็บไอดีของโจทย์นั้นๆไปคิวรี่โจทย์นั้นๆออกมาใช้

ตย.
$array = explode(',' ,$query['quiz_id']);

จะได้ค่าเป็น
$array[0] (มีค่าเป็น 1)
$array[1] (มีค่าเป็น 2)
$array[2] (มีค่าเป็น 3)
$array[3] (มีค่าเป็น 4)

เอาอาเรย์พวกนี้ล่ะไปคิวรี่ข้อสอบออกมา

Edit - แก้ไขความสวยงาม
Rest in Home

kobkung

มันก็ไม่ได้ยากนินา มองวิธีออกแล้วเกือบหมด หลักๆ คือ เก็บค่า random จาก pretest ให้ได้ เก็บเข้าเบส แล้วเอาตัวนี้ไปทำ posttest โดยสุ่มหรือไม่ก็แล้วแต่ แค่นี้เอง  ดูโค้ด rep บน เก็บแบบ array หรือเก็บแยก row ก็ได้ แล้วแต่
เราเป็นบริษัท รับทำเว็บไซต์ แก้เว็บเดิม เขียน Php+Mysql+jQuery+css+bootstrap  งานตามสั่ง ประสบการณ์ จะ 19 ปี ละจ้า
[direct=http://www.smilephp.com]Smilephp.com[/direct] รับทำเว็บไซต์บริษัท e-commerce + ระบบชำระเงิน paypal,ธนาคาร  เว็บบริษัท เว็บขายของ ระบบจอง เช่า เขียน PHP ได้ทุกแนว  ช่วงนี้เน้นรับงาน ERP ระบบเอกสารบริษัท ,บัญชี ,  Barcode, Stock , Warehouse , Logistic ติดต่อ 086-364-5262
[direct=http://www.sellerorder.com ระบบหลังบ้าน จัดการ Order ขายของ  ช่วงนี้หาคนทดสอบฟรี ขอได้ตามเมลในเว็บ[/direct]
งดตอบคนทำเว็บนอกลู่นอกทาง ไม่ทำเว็บ WP ปั่นแชร์ เว็บประมูล สคริปปั่นใดๆ ไม่ทำเว็บบอลและพ

tarusame

ได้แล้วครับ ฮร่าๆๆๆๆ

ง่ายๆ เลย ฮร่าๆๆๆๆๆๆๆๆๆๆๆ

หลังจากไปเดินเล่น ก็กลับมานั่งทำ สรุปคือไม่มีอะไรเลยครับ เรียก ซ้อนกันก็ออกแระ

ขอบพระคุณครับพี่ๆ
[direct=http://goo.gl/GfMSF][/direct]
เว็บโฮสติ้ง ราคาเริ่มต้น 300 บาท/ปี, จดโดเมนเนม, VPS, Co-Location, รับประกันคุณภาพ
บริการดีเป็นกันเอง บริการสอนการใช้งานพื้นฐาน ฟรี เจ้าของโฮสติ้งมีตัวตน มีเซิฟเวอร์เอง (วางในประเทศไทย)

http://www.smhosting.in.th
สนใจบริการติดต่อ 095 565 5917 (TrueMove H) หรือ [email protected]
[direct=https://facebook.com/SMHosting]Facebook[/direct]

guzzilar

อ้างถึงจาก: tarusame ใน 03 กันยายน 2012, 21:27:06
ได้แล้วครับ ฮร่าๆๆๆๆ

ง่ายๆ เลย ฮร่าๆๆๆๆๆๆๆๆๆๆๆ

หลังจากไปเดินเล่น ก็กลับมานั่งทำ สรุปคือไม่มีอะไรเลยครับ เรียก ซ้อนกันก็ออกแระ

ขอบพระคุณครับพี่ๆ
ทำจิตใจให้สงบ...
บางทีนั่งเขียน code ตั้งนาน ทำไงก็รันไม่ผ่าน พอเข้าห้องน้ำนั่งปลดทุกข์แป๊บเดียว code แล่นปรี๊ดในหัว ต้องรีบเบ่งรีบกลับมาเขียนต่อ  :wanwan004: :wanwan004: :wanwan004:

//คอมเมนท์นี้สกปรกขิงๆ  :-[
Rest in Home

xvlnw.com

บางทีต้องปล่อยให้สมองมันโล่ง ๆ บ้างครับ
จะได้คิดอะไรได้กว้างขึ้น ^___^
[direct=https://cloudhost.in.th/wordpress-hosting]ツ ⓌⓄⓇⒹⓅⓇⒺⓈⓈ ⒽⓄⓈⓉⒾⓃⒼ [/direct] :wanwan014:  :D
[direct=https://cloudhost.in.th/cloudhosting.html]Cloud Hosting[/direct] [direct=https://cloudhost.in.th/cloudvps.html]Cloud Server[/direct] [direct=https://cloudhost.in.th/vpshosting.html]Cloud VPS Hosting[/direct] [direct=https://cloudhost.in.th/windowsvps.html]Cloud Windows[/direct] Tel: 080-348-0843 LINE: ixvlnw

electron

ถูกเลยครับ เคยนั่งเครียดเขียนโปรแกรมทั้งคืนไม่ออก
นอนหลับ ตื่นมากลับมาเขียน กลับเขียนได้เลยง่าย ๆ แบบคิดไม่ถึง
บางทีเราต้องพักบ้างหากสมองล้าเกินไปแล้ว

psuriya

บางทีถ้าคิดไม่ออกมันก็นอนไม่หลับนะครับ :P
รับพัฒนาและแก้ไขเว็บไซต์ด้วย Django

MeenyFancy

งานโปรแกรมเมอร์เป็นศิลปะอย่างนึงครับ ต้องพักผ่อนให้เพียงพอและมีความเชื่อมั่น 5555
Have a good trip.
[direct=http://petdeecare.com]สุนัขป่วย[/direct] [direct=http://petdeecare.com]แมวป่วย[/direct]
[direct=http://petdeecare.com]หนูป่วย[/direct] [direct=http://petdeecare.com]อาหารแมว[/direct] [direct=http://petdeecare.com]อาหารหมา[/direct]