आप कुछ इस तरह से कोशिश कर सकते हैं:
हमारे पास users_xp
है हमारे डीबी में तालिका, user_xp_id
. के साथ (प्राथमिक कुंजी - स्वतः वृद्धि), user_id
और user_xp_amount
(डिफ़ॉल्ट मान:0) फ़ील्ड। जब हम उपयोगकर्ता xp राशि को अपडेट करना चाहते हैं तो हमें यह करना चाहिए:
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
function update_user_xp($user_id, $amount, $mysqli) {
$mysqli->query("UPDATE users_xp
SET user_xp_amount=user_xp_amount+" . $amount . "
WHERE user_id='$user_id'");
}
// we call this function like:
update_user_xp(4, 10, $mysqli); // user_id: 4, update with 10 points
जब हम वास्तविक उपयोगकर्ता xp राशि प्राप्त करना चाहते हैं तो हम इसे अपनी डीबी तालिका से प्राप्त कर सकते हैं
function get_user_xp($user_id, $mysqli) {
$sql = $mysqli->query("SELECT user_xp_amount
FROM users_xp
WHERE user_id='$user_id'");
$row = $sql->fetch_assoc();
return $row['user_xp_amount'];
}
$xp = array('lvl1' => 0, 'lvl2' => 256, 'lvl3' => 785, 'lvl4' => 1656, 'lvl5' => 2654);
$my_xp = get_user_xp(4, $mysqli); // where 4 is my user id
for($i = 0; $i < count($xp); $i++) {
if($my_xp == $xp[$i]) {
echo 'I\'m on level ', ($i+1);
break;
}
else {
if(isset($xp[$i+1])) {
if($my_xp > $xp[$i] && $my_xp <= $xp[$i + 1]) {
echo 'My next level is ', ($i+2), ' and I need ', $xp[$i+1], ' more points for achieving it!';
break;
} else {
echo 'My next level is ', ($i+1), ' and I need ', $xp[$i], ' more points for achieving it!';
break;
}
}
}
}
बाद में संपादित करें:
CREATE TABLE `my_db_name`.`users_xp` (
`user_xp_id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`user_id` BIGINT NOT NULL ,
`user_xp_amount` BIGINT NOT NULL DEFAULT '0'
) ENGINE = InnoDB;