我想从$projSDE_1
获取由emp ID
函数下面的for循环中每一行的func_GetEmpName($empID)
组成的雇员姓名。对于下面的代码,它应该显示10行,其中{ {1}},但问题是代码仅输出第一行。为什么其他9行无法显示?我已经被这个问题困扰了1周。如果我删除该功能,它将显示10行
所有帮助表示赞赏。
$projSDE_1's name
答案 0 :(得分:1)
正如CBroe所说,您在每个循环中都覆盖了$empName
。将变量放在数组中可以避免这种情况。
<?php
$projSDE_1_IDs = [];
for($i=0; $i<db_rowcount();$i++){
//loop through every result set
$projID=db_get($i,0);
$projNo=db_get($i,1);
$projDesc=db_get($i,2);
$projSDE_1=db_get($i,8);//1st Services Development Engineer
array_push($projSDE_1_IDs, $projSDE_1) // Store all `$projSDE_1` in an array
}//endfor
$projSDE_1_names = func_GetEmpName($projSDE_1_IDs); // Pass the IDs' array to the function
function func_GetEmpName($empIDs) {
$names = [];
foreach($empIDs as $empId){
$sqlEmp="select EmpID,LastName2_c from empbasic WHERE EmpID= '".$empID."'";
db_select($sqlEmp);
$rowcount=db_rowcount();
if(db_rowcount()>0){
for($f=0;$f<count($empID);$f++){
$empID=db_get($f,0);
$empName=db_get($f,1);
array_push($names, $empName)
}
}
}
return $names;
} // function
var_dump($projSDE_1_names) // Display the array to see if you get all the correct data
不太确定函数中的foreach部分,但是如果无法正常工作,则可以自行修改一些小东西,那么您应该可以做自己想做的事情。我认为逻辑就在这里。