โอ๋

Fri 24 Feb 2006 16:08:15
Fri 24 Feb 2006 16:08:15
การจะใช้หรือไม่ใช้ DB ในการเก็บคำถามและ Choice
นั้นขึ้นอยู่กับคุณครับเหมือนกับคุณจะเขียนเว็บด้วย HTML หลายๆไฟล์หรือ
PHP ไฟล์เดียวแล้วดึงข้อมูลจาก DB เอาก็ได้ เช่นเดียวกันครับ
ขึ้นอยู่กับว่าวิธีไหนตรงตามความต้องการและสะดวกกับคุณที่สุดครับ
ซึ่งถ้าเขียน Form ตายตัวแบบนี้ก็ทำได้ครับ ส่วน DB ก็ table เดียวก็เพียงพอแล้วครับ ส่วนถ้าจะให้เข้าใจได้ง่ายๆ table อาจจะออกแบบเป็น flat table ก็ได้ครับ เช่น
#table_polls
- pollid int(6) auto_increment primary_key
- ans1 varchar(100)
- ans2 varchar(100)
...
- ans10 varchar(100)
- userid int(6)
- polldate datetime
การ INSERT ก็สามารถทำได้โดยตรงเลยครับ คำตอบของข้อ 1 ก็ใส่ ans1 ไปจน ans10
เวลาหาลำดับผู้เข้ามาตอบก็จับเรียงตาม Field polldate
ส่วนเวลาจะหาจำนวนก็ SELECT COUNT(ans1), ans1 FROM table_polls GROUP BY ans1 สำหรับผู้ตอบในข้อ1 โดยนับแยกตาม Choice ที่เลือกครับ
ซึ่งถ้าเขียน Form ตายตัวแบบนี้ก็ทำได้ครับ ส่วน DB ก็ table เดียวก็เพียงพอแล้วครับ ส่วนถ้าจะให้เข้าใจได้ง่ายๆ table อาจจะออกแบบเป็น flat table ก็ได้ครับ เช่น
#table_polls
- pollid int(6) auto_increment primary_key
- ans1 varchar(100)
- ans2 varchar(100)
...
- ans10 varchar(100)
- userid int(6)
- polldate datetime
การ INSERT ก็สามารถทำได้โดยตรงเลยครับ คำตอบของข้อ 1 ก็ใส่ ans1 ไปจน ans10
เวลาหาลำดับผู้เข้ามาตอบก็จับเรียงตาม Field polldate
ส่วนเวลาจะหาจำนวนก็ SELECT COUNT(ans1), ans1 FROM table_polls GROUP BY ans1 สำหรับผู้ตอบในข้อ1 โดยนับแยกตาม Choice ที่เลือกครับ
โอ๋

Fri 24 Feb 2006 17:11:54
Fri 24 Feb 2006 17:11:54
คือผมจะให้คำนวณแบบว่า
ข้อ 1 คำถาม
ก
ข
ค
ง
จ
ข้อ 2 คำถาม
ก
ข
ค
ง
จ
คือคำนวณแยกข้อเลยอ่ะครับ แบบ ข้อ 1 ให้คะแนน ก = เท่าไหร่ , ข = เท่าไหร่ จนถึง จ นะครับ
แล้วก็ ข้อ 2 ---- ข้อ 10 นะครับ
แบบนี้ต้องเขียนยังไงครับ
SELECT COUNT(ans1), ans1 FROM table_polls GROUP BY ans1 สำหรับ ข้อ1
...
SELECT COUNT(ans10), ans10 FROM table_polls GROUP BY ans10 สำหรับข้อ10
ประมาณนี้ครับ
...
SELECT COUNT(ans10), ans10 FROM table_polls GROUP BY ans10 สำหรับข้อ10
ประมาณนี้ครับ

















