【发布时间】:2014-07-04 02:03:20
【问题描述】:
我很难找到与我试图用我的代码完成的任务非常相似的东西。我有一个 while 循环,它为位于 mysql 数据库中的变量的每个实例执行。
$lref = mysqli_query($con,"SELECT * FROM builtl");
while($lrow = mysqli_fetch_array($lref))
{
//variables from builtl
$partnum = $lrow['m3num'];
$lqty = $lrow['qty'];
//POST to DB
postcode($partnum,$lqty);
echo $lqty;
...//More code exists that is not part of the question
用户定义函数 postcode() 仅在设置表单提交按钮(示例代码中除外)时执行。下面是函数本身的一部分。
function postcode($partnum,$lqty)
{
$bchk = $partnum."sb";
if(isset($_POST[$bchk]))
{
//builtl
$lqty=$lqty-1;
$bltmod="UPDATE builtl SET qty=$lqty WHERE m3num=$partnum";
if (!mysqli_query($con,$bltmod))
{
die('Error: ' . mysqli_error($con));
}
}
}
当代码执行时,数据库会在函数内部进行更新,但是 while 循环已经生成,并且不会拉入 $lqty 的新值。我希望我以后的一些代码在while 循环使用 $lqty 的更新值。在某处使用 return 会帮助我解决这个问题,还是重新加载页面以提取新的 DB 值会更容易?
【问题讨论】:
-
您是否希望
postcode()更新$lqty的值?您需要拥有它return $lqty;,或将$lqty设为参考(function postcode($partnum, &$lqty))。如果你把它作为一个引用,那么当它在函数中更新时,它会在外面更新。\
标签: php return-value user-defined-functions