我试图将插入 MySQL 表的最后一个条目的值增加 x%,然后将该值插入数据库并继续,直到循环结束,从基值 100 开始。
假设我从第一行的 $base_value
为 100 开始,我希望在一次迭代中将该值增加 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
在条件句中,这首先是你永远不想做的事情。但这也意味着它要么永远不会运行,要么无限期地运行,具体取决于它如何将赋值语句解释为 bool 值。这两种选择都不理想。 - 此数学假设
$increase_by
是正确的小数位。相反,如果您用实际值“25”来表示“25%”的概念,那么您必须调整数学以解决这种差异。 - SQL 查询本身没有受到任何影响,因为我认为这是一个人为的示例。但为了以防万一,值得指出的是,您有第三个不必要的值,并且您的表名为
table
,这可能是个坏主意:)
关于php - For 循环,递增并插入前一行的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11605383/