PHP将变量从mySQL结果传递给foreach循环

时间:2011-06-16 20:20:11

标签: php mysql loops

我需要将一个变量从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等。

我如何实现这一目标?

请帮忙

2 个答案:

答案 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;
  }
}