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