ทำระบบออกตรวจนอกพื้นที่ มีสมาชิกทั้งหมด 30 คน โดยมีเงื่อนไขว่า รายละเอียดด้านในครับ
Code (SQL)
SELECT `id_member`,`prename`,`name`,`lname` FROM `member` ORDER BY RAND() LIMIT 0,30
Date :
2013-09-19 21:52:04
By :
itpcc
คนที่ วันที่ 10 ไปตรวจแล้ว วันที่ 20 ไปอีกหรือป่าวหรือเดือนนั้นตัดทิ้งไปเลย
Date :
2013-09-19 22:05:19
By :
anotherdie
คล้ายๆว่า 30 คนจะ random ให้ออกตรวจ วันที่ 10 20 และ 30 ของแต่ละเดือน วันละ 10 คนครับ
ประวัติการแก้ไข 2013-09-19 22:17:44
Date :
2013-09-19 22:14:47
By :
wichasit
select * from table1
where id_member not in (
select id_member from table1
)
order by rand() limit 0,10
พอได้มา เอาไป save table2
หรือสร้าง flag มา field นึงว่าออกตรวจแล้ว
แล้ว
select * from table1 where flagfield is null order by rand() limit 0,10
ถ้างงอ่านซ้ำสามสี่รอบ
Date :
2013-09-19 22:32:18
By :
PlaKriM
Code (SQL)
select id_member from table order by rand() limit 10
ถ้าทั้ง 30 คนแต่ละคนมีโอกาสไปทั้ง 3 เดือนเลยก็ไม่มีไร
อย่างงี้บางคนก็มี โอกาสนั่งเฉยๆ หน่ะสิครับ แหมๆ ถ้าดวงดี
ประวัติการแก้ไข 2013-09-19 22:40:38
Date :
2013-09-19 22:38:43
By :
anotherdie
เราจะต้องทำยังไงให้ระบบจัดให้เราอัตโนมัติครับ เช่นถ้าเลือกเดือน กันยายน ให้ระบบมัน จัดให้เราเลย ว่างันที่ 10 มีใครบ้าง วันที่ 20 มีใครบ้าง และ 30 มีใครบ้าง ยังนึกไม่ออกเลยว่าจะเขียนยังไงดี โปรเจ็ค จบ แบบร้อนๆ อิอิ ซอยข่อยแหน่
Date :
2013-09-19 23:04:51
By :
wichasit
ทุกคนจะได้ออกไปทุกเดือน เดือนละรอบหรอครับ บอกความต้องการมาให้หมดครับ จะได้ตอบทีเดียว
Date :
2013-09-19 23:10:57
By :
PlaKriM
ใช่แล้วครับ ทุกคน 30 คนจะต้องออกไปทุกเดือนเดือนละรอบเข้าใจถูกต้อง ครับ
ประวัติการแก้ไข 2013-09-19 23:20:07
Date :
2013-09-19 23:18:38
By :
wichasit
อ่อ เอา loop ที เดียว 3 รอบ ทั้งเดือนเลย
งั้นใช้ code ช่วยดีกว่าครับ พี่ปรากริมจัดได้อยู่แล้วครับ 55
Date :
2013-09-19 23:19:32
By :
anotherdie
ขอบคุณพี่ PlaKriM ที่ช่วยตอบครับ ยังไงจะรอโค้ดตัวอย่างครับ
Date :
2013-09-19 23:23:25
By :
wichasit
ใช้วิธีแรกนะ จาก rep แรกที่ตอบ แต่เพิ่ม ปี กับ เดือนเข้าไป จัดได้ทีละรอบ ส่วนถ้าจะจัดรอบเดียวได้ครบทุกคน ไปคิดต่อเอง
Code (SQL)
select * from table1
where id_member not in (
select id_member from table1 where month(datefield) = '$month' and year(datefield) = '$year'
)
order by rand() limit 0,10
Date :
2013-09-19 23:24:41
By :
PlaKriM
พี่ PlaKriM ครับถ้าเราจัดครั้งละรอบมันจะมีปัญหาการซ้ำกันของสมาชิกไหม เช่น นาย ก ออกวันที่ 10 ไปแล้ว วันที่ 20 นาย ก ออกตรวจอีก ผมกลัวมันจะซ้ำครับ เวลา random ผมเลยอยากให้มันวน จัดที่เดียวครับ จะทำยังไงดีครับ
Date :
2013-09-19 23:33:55
By :
wichasit
ผมบอกให้จัดทุกครั้งให้ไป save ไว้ใน table2 ครับ จะได้รู้ว่าใครออกไปแล้วบ้าง ดูใน query มันมี not in ลองอ่านดูนะ sql command
Date :
2013-09-19 23:35:34
By :
PlaKriM
ขอโทษ PlaKriM พอดีไม่เห็น not in พอดีเล่นบนโทรสับครับ. แต่โค้ดพี่มาถูกทางแล้วครับเหลือ วนๆ ออกทีเดียว นี่ตัวปัญหาจะทะไงดี
Date :
2013-09-19 23:46:04
By :
wichasit
ทำได้ทั้งจาก php และ sql ครับ ลองคิดดู ไกด์ให้แบบ php ละกัน
select * from table order by rand()
for เอา 1-10, 11-20, 21-30
Date :
2013-09-20 00:01:49
By :
PlaKriM
Load balance : Server 04