如何使用 PHP 和 MySQL 解决 FizzBu​​zz 问题?

How to do the FizzBuzz problem using PHP and MySQL?

我刚刚学习了 for 循环之类的东西,并成功地做了一道 FizzBu​​zz 题,我现在的代码是这样的:

<?php

for ($i = 1; $i <= 100; $i++) {
  if ($i % 15 == 0) {
    echo 'FizzBuzz<br>';
  } elseif ($i % 3 == 0) {
    echo 'Fizz<br>';
  } elseif ($i % 5 == 0) {
    echo 'Buzz<br>';
  } else {
    echo $i . '<br>';
  }
}

?>

现在我只是想知道如果我们有一个 MySQL table 包含 100 行,其中包含 1 - 100 之间的数字会怎么样。

CREATE TABLE numbers_from_one_to_hundred (
  id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  numbers INT(11) NOT NULL
);

现在我想用 PHP 和 MySQLi 与 numbers_from_one_to_hundred 链接来解决 FizzBu​​zz 问题。

顺便说一下,我没有在这个中使用任何准备好的语句和东西,因为我不擅长它们,这只是一个宠物项目,所以没有安全担忧。

所以我做了类似这样的事情,但最终没有成功:

$query = "SELECT * FROM `numbers_from_one_to_hundred`";

$results = mysqli_query($con, $query);

while ($row = mysqli_fetch_array($results)) {
  $numbers = $row['numbers'];
  for ($i = 1; $i <= $numbers; $i++) {
    if ($i % 15 == 0) {
      echo 'FizzBuzz<br>';
    } elseif ($i % 3 == 0) {
      echo 'Fizz<br>';
    } elseif ($i % 5 == 0) {
      echo 'Buzz<br>';
    } else {
      echo $i . '<br>';
    }
  }
}

有人可以解释一下这有什么问题吗?它实际上根本不输出任何东西,但是当我尝试 print_r 结果时,它似乎确实给出了结果,所以我的逻辑可能有问题,我做这一切都是完全错误的吗?有人可以向我解释这应该如何完成吗?

order by numbers 添加到您的查询中,以便按顺序返回行。