blog » Other / Tip&Trick / Web Programming » วิธีการดึงข้อมูลจากการบันทึกค่า value ของ Special Ranking

วิธีการดึงข้อมูลจากการบันทึกค่า value ของ Special Ranking

script PHP ตัวนี้จะเป็นการดึงค่าใน value ที่อยู่ในตาราง global_reg_value ของ Ragnarok ออกมาโดยไม่ต้องทำการติดตั้ง NPC การเก็บค่าต่างๆเพิ่มเลยนอกจาก ต้องติดตั้ง Special Ranking เพียง NPC ตัวเดียว

การทำงานของ Special Ranking จะอยู่ในตัวเกมส์ทำหน้าที่เก็บค่า value ลงฐานข้อมูล

การเก็บค่าของ NPC ตัวนี้มี 3 ตัวแปร
1. PKPoint คือ PVP คะแนน PVP เมื่อฆ่า
2. MKPoint คือ MVP แต้มที่ได้จากการ ฆ่าบอส
3. EKPoint คือ EMP แต้มที่ได้จากการตีหิน

ปกติแล้วถ้าเราสร้าง Query SQL ขึ้นมาแล้วดึง value ออกมาแสดงในรูปแบบ DESC(เรียงมากไปน้อย) จะทำให้ข้อมูลไม่เรียงกัน(สลับมั่วไปหมด) เพราะว่าฟิลด์ value อยู่ในรูปแบบของ varchar ไม่ใช่ int

มีวิธีแก้ก็คือทำให้ฟิลด์ value กลายเป็นให้ค่าเป็นค่าสัมบูรณ์ด้วย abs()
วิธีใช้ ORDER BY abs(`value`) DESC

การเรียกข้อมูลออกมาแสดงบนเว็บ ตัวอย่าง PKPoint
$result = mysql_query("SELECT * FROM `".$db_game."`.`global_reg_value` WHERE `str` LIKE 'PKPoint' ORDER BY abs(`value`) DESC LIMIT 0 , 10");
while ( $rd = mysql_fetch_array( $result ) )
{
echo "ชื่อ ".cid2namechar($rd['char_id'])." ฆ่าได้ ".number_format($rd['value'])." คน
";
};

สังเกตุการแสดงชื่อ จะใช้ฟังชั่น cid2namechar() … ก็คือการเปลี่ยนจาก char_id เป็น name ในตาราง char

มาดูการสร้างฟังชั่น cid2namechar() ของผมบ้าง.. (ไม่รู้คนอื่นเขียนแบบนี้ป่าวนะ อิอิ)
function cid2namechar($cid) {
global $sql_game;
$namecid = mysql_fetch_array(mysql_query("SELECT * FROM `".$sql_game."`.`char` WHERE `char_id`=". $cid));
if( $namecid ) {
return $namecid['name'];
} else {
return 'N/A';
}
}

จบแระ หวังว่าจะมีประโยชน์ อ่ะนะ

RSS 2.0 | leave a response | trackback

4 Responses

  1. มี.ค. 24th, 2010 / 13:01 admin Says:

    ข้างบนนี้เป็นวิธีการ เรียงลำดับข้อมูลตัวเลข จากมากไปหาน้อย(DESC) โดยที่ข้อมูลในฟิลด์นั้นเป็น varchar

  2. มี.ค. 25th, 2010 / 14:31 Tweets that mention วิธีการดึงข้อมูลจากการบันทึกค่า value ของ Special Ranking | Aummua Blog -- Topsy.com Says:

    [...] This post was mentioned on Twitter by Aummua. Aummua said: วิธีการดึงข้อมูลจากการบันทึกค่า http://bit.ly/bxYLJa [...]

  3. มี.ค. 26th, 2010 / 03:35 admin Says:

    *0*

  4. พ.ค. 22nd, 2010 / 10:28 Bruce Says:

    ข้างบนนี้เป็นวิธีการ เรียงลำดับข้อมูลตัวเลข จากมากไปหาน้อย(DESC) โดยที่ข้อมูลในฟิลด์นั้นเป็น varchar

ใส่ความเห็น