PHP排名和选择操作

时间:2014-06-11 19:10:22

标签: php mysql database mysqli

我正在尝试制作一款基于文本的游戏,但我似乎无法弄清楚为什么这段代码无效。

  • 核心文件中有一个mysqli连接。
  • 它具有数据库中的机会值。
  • 排名在数据库中设置。
  • 我没有收到任何错误,只显示“成功”和“失败”消息。

代码:

<?php

include_once "core.php";

function checkRandom($chance){
return rand(1, 100) <= (int)$chance;
}

$userid = '1';
$getAllQuery = $data->query("SELECT * FROM players WHERE id = '$userid'") or die($data->error);
while ($getall = $getAllQuery->fetch_assoc()) {
$rank = $getall['rank'];
$chance1 = $getall['crime_chance1'];
$chance2 = $getall['crime_chance2'];
$chance3 = $getall['crime_chance3'];
$chance4 = $getall['crime_chance4'];
$chance5 = $getall['crime_chance5'];
$chance6 = $getall['crime_chance6'];
}

if (isset($_POST['crime'])) {

$choice = $_POST['crime'];
$pass = 0;
$fail = 0;

if ($choice == 1 && $rank <= 1) {
  echo "3esd";
  if (checkRandom($chance1)) {
    echo "Success";
  } else {
    echo "Failure";
  }
} else {
  if ($choice == 2 && $rank <= 2) {
    if (checkRandom($chance2)) {
      echo "Success";
    } else {
      echo "Failure";
    }
  }
}

}
echo "<form method='POST' action='#'>";
if ($rank >= 1) {
echo "<label><input type='radio' name='crime' value='1'>Crime 1 " . $chance1 . "% chance</label><br />";
if ($rank >= 2) {
echo "<label><input type='radio' name='crime' value='2'>Crime 2 " . $chance2 . "% chance</label><br />";
if ($rank >= 3) {
echo "<label><input type='radio' name='crime' value='3'>Crime 3 100% chance</label><br />";
}
}
}
echo "<input type='submit'>
</form>";
?>

我真的很感激一些帮助。 :d

2 个答案:

答案 0 :(得分:0)

除以下情况外,此代码似乎工作正常:

1)由于IF语句是&lt; = 1或&lt; = 2且3是&gt;,因此没有处理Rank 3+。那么1和3。

2)如果您选择第一个选项,并且您不是等级1,则代码将不返回任何内容,因为第一个IF语句仅限于所选择的选项为1并且Rank为&lt; = 1。 / p>

3)如果您选择第二个选项,并且您不是第2级,则代码将不返回任何内容,因为第二个IF语句仅限于所选的选项为1且Rank为&lt; = 2。 / p>

答案 1 :(得分:0)

请参阅以下内容 }ELSE{ # condition not handled ECHO "WE ARE HERE";

if ($choice == 1 && $rank <= 1) {
  echo "3esd";
  if (checkRandom($chance1)) {
    echo "Success";
  } else {
    echo "Failure";
  }
} else {
  if ($choice == 2 && $rank <= 2) {
    if (checkRandom($chance2)) {
      echo "Success";
    } else {
      echo "Failure";
    }
  }ELSE{   # condition not handled
    ECHO "WE ARE HERE";  
  }
}