我试图将插入到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
,这可能是一个坏主意:)