用户定义的PHP函数无法返回更新的变量

时间:2014-05-15 14:35:37

标签: php return-value user-defined-functions

我很难找到与我想用代码完成的任何事情相似的事情。我有一个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值?

2 个答案:

答案 0 :(得分:1)

使用此行调用postcode():

$lqty = postcode($partnum,$lqty);

并在函数末尾从$lqty返回postcode()

return $lqty;

答案 1 :(得分:0)

尝试更改

function postcode($partnum,$lqty)

function postcode($partnum,&$lqty)

请参阅http://www.php.net/manual/en/language.references.pass.php