我需要将一个变量从mySQL结果传递给foreach循环。
所以我有这段代码:
$GetClaim = "SELECT * FROM cR_Claimants WHERE memberID = '".$memberID."' AND ParentSubmission ='".$refNumb."'";
$resultGetClaim=mysql_query($GetClaim) or die("Error select claimants: ".mysql_error());
while($rowGetClaim = mysql_fetch_array($resultGetClaim)) {
$name = $rowGetClaim['Name'];
$city = $rowGetClaim['city'];
$region = $rowGetClaim['region'];
}
现在我需要将变量传递给foreach
foreach($name as $k=>$v) {
echo $city;
echo $region;
etc..
}
上述代码不起作用。我想我无法从mySQL循环中传递变量。我从数据库得到的每一行都应该与特定的$ name相关。因此,一个美元名称将拥有自己的$ city等。
我如何实现这一目标?
请帮忙
答案 0 :(得分:2)
您没有检索包含所有返回记录的数组,而是检索包含单个记录的数组。
要获取下一个name
(下一条记录),您必须再次调用mysql_fetch_array。
您提供的代码通过在while条件中分配$ rowGetClaim来隐式执行。失败的mysql_fetch_array调用将返回false
,这将退出while循环。
绝对没有必要像你提出的那样使用。只需在分配后放置echo
(例如
$region = $rowGetClaim['region'];
echo $region
答案 1 :(得分:1)
直接从循环输出或构建一个数组然后遍历它。
while($rowGetClaim = mysql_fetch_array($resultGetClaim)) {
echo $rowGetClaim['Name'];
echo $rowGetClaim['city'];
echo $rowGetClaim['region'];
}
OR
while($rowGetClaim = mysql_fetch_array($resultGetClaim)) {
foreach($rowGetClaim as $k => $v{
echo $v;
}
}
OR
$names = array();
while($rowGetClaim = mysql_fetch_array($resultGetClaim)) {
$names[] = $rowGetClaim;
}
foreach($names as $data){
foreach($data as $k => $v) {
echo $v;
}
}