[英]variable changes value after while loop inside function
我的功能有问题。
我创建了一个函数,它读出数据库中的一个表并从一列中找到 DISTINCT 值。
第一个循环是遍历 DISTINCT 值第二个循环是从另一列获取值。
当我从第二个循环收集数据时,一切似乎都很好,但是当我尝试在循环外回显变量时,该值已更改为我不知道来自何处的值。
我对 PHP 很陌生,在任何地方都找不到解决方案。
功能:
function region_tilbehor() {
include '../db.php';
global $fdato;
global $tdato;
$query_tilbehor = "SELECT DISTINCT region FROM salg";
$result_tilbehor = mysqli_query($connect, $query_tilbehor);
while($row_tilbehor = mysqli_fetch_array($result_tilbehor)) {
$region = $row_tilbehor['region'];
$sql_tilbehor = "SELECT * FROM salg WHERE region='$region' AND kategori LIKE 'tilbehor' AND dato BETWEEN '$fdato' AND '$tdato'";
$kjor_tilbehor = mysqli_query($connect, $sql_tilbehor);
$qty = 0;
while ($num = mysqli_fetch_array($kjor_tilbehor)) {
$sum = $num['belop'];
$qty += $sum;
}
$qty .= ", ";
echo $qty; //gives this: 54726, 14313, 23689, 5885, 39783,
//This is the value i want to return from function.
}
echo "same variable outside loop: " .$qty; //Gives this: same variable outside loop: 39783,
return $qty;
}
function region_tilbehor() {
include '../db.php';
global $fdato;
global $tdato;
$sumArray = [];
$query_tilbehor = "SELECT DISTINCT region FROM salg";
$result_tilbehor = mysqli_query($connect, $query_tilbehor);
while($row_tilbehor = mysqli_fetch_array($result_tilbehor)) {
$region = $row_tilbehor['region'];
$sql_tilbehor = "SELECT * FROM salg WHERE region='$region' AND kategori LIKE 'tilbehor' AND dato BETWEEN '$fdato' AND '$tdato'";
$kjor_tilbehor = mysqli_query($connect, $sql_tilbehor);
$qty = 0;
while ($num = mysqli_fetch_array($kjor_tilbehor)) {
$sum = $num['belop'];
$qty += $sum;
}
$qty .= ", ";
array_push($sumArray,$qty);
echo $qty; //gives this: 54726, 14313, 23689, 5885, 39783,
//This is the value i want to return from function.
}
print_R($sumArray);die; //Gives this: same variable outside loop: 39783,
return $qty;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.