php - Possible to have Mysql table with 2 unique columns -


i save game scores using code:

function submitscore() { global $result, $db;  $playername =  $db->real_escape_string(strip_tags($_post["playername"])); $score      = $db->real_escape_string(strip_tags($_post["score"])); $fbusername     = $db->real_escape_string(strip_tags($_post["fbusername"])); $gamelevel      = $db->real_escape_string(strip_tags($_post["gamelevel"])); $query1     = "select * leaderboard playername = '$playername'"; $query2     = "insert leaderboard (playername, score,fbusername,gamelevel) values ('$playername', $score,'$fbusername','$gamelevel')"; $query3     = "update leaderboard set score = $score playername = '$playername'";  $scores     = $db->query($query1);  if ($scores->num_rows == 0) {     $db->query($query2);     $result = "0:new entry"; } else {     $row = $scores->fetch_object();     $oldscore = $row->score;     if ($score > $oldscore)     {         $db->query($query3);         $result = "0:successful update";     } else         $result = "0:score lower before"; } } 

the playername column unique , inserts new row new player updates existing players score if higher existing one.

this fine high scores , 1 level need need store users facebook name , multipule game levels. possible have playername , gamelevel columns unique, whereby can obtain player 1 level 1, player 1 level 2 etc; bearing in mind have keep high score well.

john

mysql supports combination of columns defined unique key. if remove index playername , add new 1 playername+level set far mysql goes.

this how it's done sql:

alter table `leaderboard` drop index `unique_index`; alter table `leaderboard` add unique `unique_index`(`playername`, `gamelevel`); 

Comments

Popular posts from this blog

node.js - Mongoose: Cast to ObjectId failed for value on newly created object after setting the value -

gradle error "Cannot convert the provided notation to a File or URI" -

python - NameError: name 'subprocess' is not defined -