내 코드로 수행하려는 작업과 비슷한 것을 찾는 데 어려움이 있습니다. mysql 데이터베이스에있는 변수의 각 인스턴스에 대해 실행되는 while 루프가 있습니다.사용자 정의 PHP 함수가 업데이트 된 변수를 반환하지 못합니다.
$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의 업데이트 된 값을 사용하도록 코딩하십시오. 어딘가에서 리턴을 사용하면 도움이 될지 아니면 새 DB 값을 끌어 오기 위해 페이지를 다시로드하는 것이 더 쉬울까요?
$lqty = postcode($partnum,$lqty);
을하고 함수의 끝에서 postcode()
에서 $lqty
를 반환 :
http://www.php.net/manual/en/language.references.pass.php를 참조하십시오? 'return $ lqty;'를 사용하거나'$ lqty'를 참조 ('function postcode ($ partnum, & $ lqty)')해야합니다. 참조로 만들면 함수에서 업데이트 될 때 외부에서 업데이트됩니다. \ –