Long Live The King
ข้าพเจ้าไม่ได้มีพรสวรรค์พิเศษอะไร ข้าพเจ้าเพียงแต่มีความกระหายใคร่รู้อยู่เสมอ ทุ่มเทให้กับสิ่งที่อยากรู้ พากเพียรอย่างทรหด และสำรวจวิจารณ์ความรู้ของตัวเองเป็นประจำ ปัจจัยเหล่านี้คือที่มาของแนวคิดต่างๆ ของข้าพเจ้า .... อัลเบิร์ต ไอน์สไตน์

วันเสาร์ที่ 12 มกราคม พ.ศ. 2556

การกำหนดสถานะให้กับ สมาชิกด้วยฟิลด์ status SQL, PHP



บทนี้ไม่มี 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");
}

บทความนี้ก็ขอจบเพียงเท่านี้ก่อนครับ......

1 ความคิดเห็น:

  1. เราจะจำกัด การอัพเดท ฐานข้อมูลยังไงครับ
    ถ้าต้องการให้
    VIP1 อัพข้อมูลได้ จำนวน 10 รายการ
    VIP2 อัพข้อมูลได้ จำนวน 20 รายการ
    VIP3 อัพข้อมูลได้ จำนวน 30 รายการ
    VIP4 อัพข้อมูลได้ จำนวน 40 รายการ

    ต้องเขียน code แบบไหนครับ

    ตอนนี้ผมทำไปแค่
    if($result["status"] == '0'){echo 'สมาชิกแบบฟรี'; }
    else if($result["status"] == '1'){ echo 'สมาชิก VIP 1'; }

    แนะนำ code ทีได้มั้ยครับ

    ตอบลบ

© Bookneo, AllRightsReserved.

ขับเคลื่อนโดย Blogger Designed by Nikhorn Thongchuay