我试图将插入到MySQL表中的最后一个条目的值增加x%,然后将该值插入数据库,并一直持续到循环结束为止,从基值100开始。

假设我从第1行的a $base_value开始,我希望在迭代中将该值增加25%。因此,在第二行中,我希望100增加25%。在第三行中,第二行中的值增加了25%,依此类推,当循环数达到100时,循环停止。该怎么做?

$base_value = 100;
$increase_by; // x percent

for($i = 1; $i = 100; $i++)
{
    mysql_query("insert into table values(
       '',
       '$i',
       ''
    )");
}

最佳答案

像这样吗?

$base_value = 100;
$increase_by; // x percent

for($i = 1; $i <= 100; $i++)
{
    mysqli_query("insert into table values(
       '$base_value',
       '$i',
       ''
    )");
    $base_value = $base_value + ($base_value * $increase_by);
}


注意事项:


我已将mysql_query替换为mysqli_query,建议您也这样做。 PHP also suggests this
我将for循环中的终止条件从$i = 100更改为$i <= 100。如果前者根本不起作用,我不确定会发生什么。它在条件中设置$i,这首先是您永远不想做的事情。但这也意味着它永远不会运行,或者将无限期运行,这取决于它如何将赋值语句解释为布尔值。这些选项都不是理想的。
此数学假设$increase_by的正确小数位数。相反,如果您用“ 25”的实际值表示“ 25%”的概念,则必须调整数学以解决这一差异。
否则,SQL查询本身将保持不变,因为我认为这是一个人为的示例。但是以防万一,值得指出的是您有第三个不必要的值,并且您的表名为table,这可能是一个坏主意:)

10-04 11:47
查看更多