Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Xp và hệ thống san lấp mặt bằng PHP MYSQL

Bạn có thể thử một cái gì đó như sau:

Chúng tôi có users_xp trong db của chúng tôi, với user_xp_id (khóa chính - tăng tự động), user_iduser_xp_amount (giá trị mặc định:0) các trường. Khi chúng ta muốn cập nhật số lượng xp của người dùng, chúng ta nên làm như sau:

$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

khi chúng ta muốn lấy số tiền xp của người dùng thực tế, chúng ta có thể lấy nó từ bảng db của mình

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;
            }
        }
    }
}

Chỉnh sửa sau:

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Joomla 2.5 nhanh hơn nhiều so với Joomla 1.5 Querywise

  2. Tạo TinyURL của riêng bạn

  3. Cần trợ giúp xây dựng truy vấn sql với tham gia và mối quan hệ nhiều đến nhiều ở đâu

  4. Hướng dẫn sử dụng Sphinx với PHP và MySQL

  5. Bản cập nhật Flask-SQLAlchemy đang tạo một bản ghi mới trong MySQL