我有一個級別系統已經創建,但我現在正在一個進度條上工作。該級系統檢查數據庫爲您的exp和有它在這種情況下100 = level 3
需要$count >= 100
數的變化,然後將更新數據庫,並設置level
到3
級別和進度條系統
的一個問題,我不能要求所需的EXP量(100)所以進度條我不能讓它移動,沒有最大數額我所能做的是$exp/0
什麼是最好的方式來存儲每個exp數量到一個變量? (而不 chaning系統,使其100exp需要,然後加入PRECENTAGE每個級別)
級系統瓦特/進度條:
<?php
if(empty($_SESSION['user'])){
}else{
// Connect to your database like you normally do, then get any value into the $count variable
$uid = htmlentities($_SESSION['user']['id'], ENT_QUOTES, 'UTF-8');
$datab = mysqli_connect("localhost", "root", "password", "database") or die ("Could not connect to database");
$userquery = mysqli_query ($datab, "SELECT * FROM users WHERE id='$uid'");
while($row = mysqli_fetch_array($userquery, MYSQLI_ASSOC)){
include"user_array.php";
}
$count = $exp;
if($level == 0){
$lvl = 1;
}else{
$lvl = $level;
}
if ($count >= 25000) { $lvl = 50;
$level_set = "UPDATE users SET level = '50' WHERE id = '$uid'";
$db->query($level_set);
}
//to save space i have removed everything from level 3 - 50!
else if ($count >= 100) { $lvl = 3;
$level_set = "UPDATE users SET level = '3' WHERE id = '$uid'";
$db->query($level_set);
}
else if ($count >= 50) { $lvl = 2;
$level_set = "UPDATE users SET level = '2' WHERE id = '$uid'";
$db->query($level_set);
}
}
// ///Progress bar/////////////////////////////////////////////////////////////////////
// ///Calculate precentage $current (current exp count), $total (max)
// ///This will change the width of of the .inner div wich display the progress bar
// ////////////////////////////////////////////////////////////////////////////////////
$total = $count; //max count for current level
$current = $exp; //current $exp from database
$percent = round(($current/$total) * 100, 1);
?>
所有的i在端部做的是使2個的div,並給每個一些CSS和顏色,使內部股利有width:<?php echo $percent; ?>%;
您有所有這些ifs,您可以輕鬆地設置下一個級別的值並獲取百分比。雖然我寧願只是使用數組來存儲值,並在一個循環中完成所有操作。另外請注意,你每次都打電話更新,即使級別與用戶已經擁有的級別相同... –
@SamiKuhmonen我同意它不是最好的級別系統,但它最好的我能找到,爲每個級別設置我想要的確切點數。 如果您在Google上搜索它,大多數關卡系統會設置一個計數,然後在每個關卡中添加x%。它更容易給exp一個變量,但是當我第一次發現這個系統時,它就是我正在尋找的東西。我很樂意使它更有效率,但我的PHP知識不會太過分。 –