PHP中的递归函数

PHP中的递归函数,php,recursion,while-loop,Php,Recursion,While Loop,我在做流行性感冒的棋盘游戏。我正在用PHP制作游戏逻辑(大部分),当一个城市有超过3个立方体时,会发生一个爆发,即连接到该城市的城市将增加1个立方体 现在,我用PHP做所有这些,我有一个函数,可以增加城市中的立方体,对于每个城市连接的立方体,随着爆发,也会增加,所以我在一段时间内做了一个递归函数 (我告诉你这些是因为我要在示例中删去一些代码。希望我说得清楚) PHP函数 function AddInfectionCubes($city_name, $n_cubes, $game_id) {

我在做流行性感冒的棋盘游戏。我正在用PHP制作游戏逻辑(大部分),当一个城市有超过3个立方体时,会发生一个爆发,即连接到该城市的城市将增加1个立方体

现在,我用PHP做所有这些,我有一个函数,可以增加城市中的立方体,对于每个城市连接的立方体,随着爆发,也会增加,所以我在一段时间内做了一个递归函数

(我告诉你这些是因为我要在示例中删去一些代码。希望我说得清楚)

PHP函数

  function AddInfectionCubes($city_name, $n_cubes, $game_id) {
    $insert = "INSERT INTO game_city(id_game, city_name, disease_cubes) VALUES('$game_id', '$city_name', '$n_cubes')";

    $res = mysqli_query($conn, $insert);
    if(!$res) {
      $sql_cubes = mysqli_query($conn, "SELECT disease_cubes FROM game_city WHERE city_name='$city_name' AND id_game='$game_id'");
      $get_cubes = mysqli_fetch_assoc($sql_cubes);

      $disease_cubes = $get_cubes['disease_cubes'] + $n_cubes;//quantidade de cubos após adicionar outros aos que já existiam
      if ($disease_cubes > 3){
        $update_outbreak_marker = mysqli_query($conn, "UPDATE Game SET outbreak_marker = outbreak_marker + 1 WHERE id = '$game_id'");

        $outbreak_cities = mysqli_query($conn, "SELECT city_to FROM connections WHERE city_from = '$city_name'");
        while ($c = mysqli_fetch_assoc($outbreak_cities)){
          $city_to = $c['city_to'];
          $n_cubes = 1;
          AddInfectionCubes($city_to, $n_cubes, $game_id);
        }
      } else {
        $update = mysqli_query($conn, "UPDATE game_city SET disease_cubes='$disease_cubes' WHERE city_name='$city_name' AND id_game='$game_id'");
      }
    }
  };

  AddInfectionCubes($city_name, $n_cubes, $game_id);
我不知道我做错了什么,但是递归函数不起作用。是因为它在一段时间内吗

注意

如果我不让它成为一个递归函数,它就可以完美地工作(但却不能做到这一点)。sql是好的,变量是好的,等等

问题


没有递归函数,我能做到这一点吗?我可以用一段时间吗?

哪里定义了
$disease\u cubes
?哪里定义了
$exploration\u cities
,我告诉过我要简化代码简化它,这样我们就有了我们需要的尽可能多的图片来看到潜在的问题。我认为这些变量可能很重要。有一个很好的平衡需要得到满足。@Script47我将把所有的代码都放进去,对不起