บทนี้ไม่มี demo จะขอพูดถึงการกำหนดสถานะของสมาชิก ถ้าท่านเคยโพสตามเว็บบอร์ดต่างๆ ท่านอาจจะเคยเห็นสีชื่อ ของสมาชิกแต่ละท่านอาจไม่เหมือนกัน หรือมีพวกไอเทมไต้ชื่อ แตกต่างกันไป ของแต่ละสมาชิก หรือชื่อสถานะ แล้วแต่จะตั้งกันไป และที่สำคัญก็คือ เมนูลับเฉพาะของแต่ละสถานะต่างๆ....
เริ่ม.. ผมจะสร้าง field ชื่อ `status` int(2) NOT NULL DEFAULT 0;
ไว้ที่ table ชื่อ members หรือท่านจะตั้งเป็นอย่างอื่นก็แล้วแต่ อย่างเช่น type เป็น varchar ,
กำหนดค่าเริ่มต้น(default)ให้เป็น user จากนั้นก็ค่อยขยับไปเป็น silver user , gold user
ก็ว่ากันไป
ในที่นี้ผมจะกำหนดแบบง่ายๆ คือ ให้ default เป็น 0 จากนั้นก็ค่อยขยับสถานะไปเป็น 1, 2, 3,->....
สถานะที่ 0 นั้นคือค่าที่เรากำหนดไว้แล้ว แล้วสถานะที่ 1,2,3 ละได้มาอย่างไร
สถานะที่ 1 เราจะกำหนดไว้ว่า ถ้าสมาชิกท่านใดก็ตามโพสตาม webboard มากกว่าหรือเท่ากับ 5 ครั้ง
ก็ให้อัพเดด จาก 0 เป็น 1
ท่านก็ไปเขียนโค้ดดักเอาไว้ตรงโพสนั้นแหละ หมายถึงไฟล์ที่รับค่าโพสเพื่อบันทึกลงฐานข้อมูล
ด้วยการเช็คออกมาก่อนว่าสมาชิกท่านนี้โพสไปกี่ครั้งแล้ว เช่น
$sql = "select * from comment where username = '$_COOKIE[username]'"; $result = mysql_query($sql); $num = mysql_num_rows($result);
นับแถวออกมา
จากนั้นก็นำค่าที่นับได้มาใช้ update status ถ้าสมาชิกท่านนี้โพสมากกว่าหรือเท่ากับ 5 ครั้ง ก็ update
สถานะเป็น 1
if($num >= 5){ $sql = "update members set status = 1 where username = '$_COOKIE[username]'"; }
อ้าว... update status เป็น 1 แล้วยังไงต่อ...
ก็อย่างเช่นว่า ท่านต้องการให้สมาชิกที่มีสถานะเป็น 1 มีชื่อเป็นสีน้ำเงิน ก่อนที่จะแสดงชื่อออกมาหน้า
เว็บ ท่านก็เขียนโค้ดดักเอาไว้ว่า
if($status ==1){ echo '$username'; } else if($status == 2){ echo '$username'; } else{ echo '$username'; }
หรือท่านจะเพิ่มเติมอย่างอื่นอีกก็ได้ เป็นต้นว่า เพิ่มไอเทมต่างๆ และหรือ อันนี้สำคัญ
นั่นก็คือเมนูลับนั่นเอง..ภาพลับ..ความลับ..อะไรก็แล้วแต่กำหนดได้จากตรงนี้.....
ส่วน admin จะมี status เท่าไหร่ท่านก็กำหนดเอาตามต้องการ ต่อไปนี้หน้าเพจต่างที่ admin เข้าได้
แต่ user อื่นๆ เข้าไม่ได้ เราจะกำหนดด้วย status ตัวนี้แหละ กำหนดยังไงละ
สมมุติว่า status ของ admin เป็น 5 เขียนโค้ดไปดักเอาไว้ตรงหัวเพจทุกเพจ หรือ
จะทำเป็นไฟล์ include ก็ได้ง่ายดี ว่า ถ้า status ไม่เท่ากับ 5 ให้ส่งไปหน้า index.php
ท่านจะต้องวนลูปในฐานข้อมูลเพื่อเก็บค่าสถานะออกมาก่อน
$sql = "select * from members where username = '$_COOKIE[username]'"; $result = mysql_query($sql); while($row = mysql_fatch_array($result)){ $status = $row['status']; } if($status != 5){ header("Location: index.php"); }
บทความนี้ก็ขอจบเพียงเท่านี้ก่อนครับ......
เราจะจำกัด การอัพเดท ฐานข้อมูลยังไงครับ
ตอบลบถ้าต้องการให้
VIP1 อัพข้อมูลได้ จำนวน 10 รายการ
VIP2 อัพข้อมูลได้ จำนวน 20 รายการ
VIP3 อัพข้อมูลได้ จำนวน 30 รายการ
VIP4 อัพข้อมูลได้ จำนวน 40 รายการ
ต้องเขียน code แบบไหนครับ
ตอนนี้ผมทำไปแค่
if($result["status"] == '0'){echo 'สมาชิกแบบฟรี'; }
else if($result["status"] == '1'){ echo 'สมาชิก VIP 1'; }
แนะนำ code ทีได้มั้ยครับ