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




ข้างบนนี้เป็นวิธีการ เรียงลำดับข้อมูลตัวเลข จากมากไปหาน้อย(DESC) โดยที่ข้อมูลในฟิลด์นั้นเป็น varchar
[...] This post was mentioned on Twitter by Aummua. Aummua said: วิธีการดึงข้อมูลจากการบันทึกค่า http://bit.ly/bxYLJa [...]
*0*
ข้างบนนี้เป็นวิธีการ เรียงลำดับข้อมูลตัวเลข จากมากไปหาน้อย(DESC) โดยที่ข้อมูลในฟิลด์นั้นเป็น varchar