Если & Else застрял на возврате

(извините за мое плохое английское письмо). У меня проблема, когда я застрял в системе if и else, которая возвращает уровень, который вы есть.

Все хорошо, если у вас есть 20 кликов, он скажет вам, что вы на втором уровне, если у вас 550 щелчков, он скажет вам, что вы уровень 6. Но когда вы доходите до 1500 кликов, ему нужно сказать уровень 9, но он все равно скажет уровень 8.

Мой код:

$levelown = 'Level 1';

function ifElse() {

 global $levelown;
 global $*******;

 if($*******['clicks'] >= 0 && $*******['clicks'] <= 49)
 {
 $levelown = 'Level 2';
 }
 /* .... More if and elses with levels */

 // This is the problem, this will keep telling me that I'm level 8.
 elseif($*******['clicks']>=3000)
 {
 $levelown = 'Level ' . floor(($score['clicks']/1000)+8);
 }



and you are

Спасибо за помощь!

2 ответа

Проблема, которую я видел из вашего текущего кода, заключается в том, что у вас есть

elseif($*******['clicks']>=3000)
 {
 $levelown = 'Level ' . floor(($score['clicks']/1000)+8);
 }

который, я думаю, должен быть

elseif($*******['clicks']>=3000)
 {
 $levelown = 'Level ' . floor(($*******['clicks']/1000)+8);
 }

так как $score['clicks'] отсутствует, вы всегда будете на уровне 8


Это, вероятно, проще и понятнее сделать его оператором switch/case следующим образом:

$highscore = $mysqli->query("SELECT id,name,clicks,ip,factory FROM highscore ORDER BY clicks DESC LIMIT 0,50 ");
$ipquery = $mysqli->query("SELECT id,name,clicks,ip,factory FROM highscore WHERE ip = '".$_SERVER['REMOTE_ADDR']."'");
$******* = $ipquery->fetch_array();

$levelown = 1;

function ifElse() {
global $levelown;
global $*******;

 switch (true) {
 case $*******['click'] > 3000:
 $levelown = floor(($*******['click']/1000)+8);
 break;
 case $*******['click']== 3000:
 $levelown = 11;
 break;
 case $*******['click'] >= 2000:
 $levelown = 10;
 break;
 case $*******['click'] >= 1500:
 $levelown = 9;
 break;
 case $*******['click'] >= 1000:
 $levelown = 8;
 break;
 case $*******['click'] >= 750:
 $levelown = 7;
 break;
 case $*******['click'] >= 500:
 $levelown = 6;
 break;
 case $*******['click'] >= 350:
 $levelown = 5;
 break;
 case $*******['click'] >= 200:
 $levelown = 4;
 break;
 case $*******['click'] >= 50:
 $levelown = 3;
 break;
 case $*******['click'] >= 0:
 $levelown = 2;
 break;
 }
 $levelown = "Level " . $levelown;
}

licensed under cc by-sa 3.0 with attribution.