【发布时间】:2018-10-30 12:15:26
【问题描述】:
我试图创建它,但它并没有真正起作用。
这是我希望它如何工作的表格。 click to see picture
这是我的数据库图片(在 phpmyadmin 中)click to see picture
我希望它首先查看百分比,然后找到要使用的百分比。
IE:75% 的机会获得 1 到 50 之间的随机数。20% 的机会获得 51 到 200 之间的随机数等。
这是我的代码:
if ($_GET['method'] == "test") {
$sql = "SELECT 1percentage, 1min, 1max, 2percentage, 2min, 2max, 3percentage, 3min, 3max, 4percentage, 4min, 4max FROM `keys`";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
$total = $row["1percentage"] + $row["2percentage"] + $row["3percentage"] + $row["4percentage"] + 1;
$random = rand(0, $total);
if ($random < $row['1percentage'] || $random == $row['1percentage']) {
$amount = rand($row['1min'], $row['1max']);
} elseif ($random > $row['1percentage'] && $random < $row['2percentage'] || $random == $row['2percentage']) {
$amount = rand($row['2min'], $row['2max']);
} elseif ($random > $row['2percentage'] && $random < $row['3percentage'] || $random == $row['3percentage']) {
$amount = rand($row['3min'], $row['3max']);
} elseif ($random > $row['4percentage'] || $random == $row['4percentage']) {
$amount = rand($row['4min'], $row['4max']);
} else {
exit("0");
}
echo $amount;
}
}
但它输出的是 or 1 到 50,或 1001 到 10000。
那么我做错了什么?
【问题讨论】:
-
我会使用
$random <= $row['1percentage']而不是$random < $row['1percentage'] || $random == $row['1percentage']。这样会更容易找到问题。 -
@EugeneAnisiutkin 我改变了它,但它仍然提供相同的输出..
-
@Strawberry 我发送的表格屏幕截图来自使用
SELECT的数据库中没有任何问题.. -
@只是另一个 youtube - 截图不是 MCVE,你真的应该创建一个。此外,屏幕截图不是您的 SQL 查询的结果,从屏幕截图判断您的 SQL 查询失败。