首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP将变量从mySQL结果传递到foreach循环

问PHP将变量从mySQL结果传递到foreach循环
EN

Stack Overflow用户
提问于 2011-06-17 04:20:11
回答 2查看 12.1K关注 0票数 0

我需要将mySQL结果中的一个变量传递给foreach循环。

所以我有这样的代码:

代码语言:javascript
复制
    $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

代码语言:javascript
复制
    foreach($name as $k=>$v) {
    echo $city;
echo $region;
etc..
    }

上面的代码不起作用。我想我不能从mySQL循环中传递变量。问题还在于,我从数据库中获得的每一行都应该与特定的$name相关。所以很明显,一个$name会有它自己的$city,等等。

我该如何实现这一点?

请帮帮忙

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-17 04:27:25

要么直接从循环中输出,要么构建一个数组然后循环。

代码语言:javascript
复制
while($rowGetClaim = mysql_fetch_array($resultGetClaim)) {
  echo $rowGetClaim['Name'];
  echo $rowGetClaim['city'];
  echo $rowGetClaim['region'];

}

或

代码语言:javascript
复制
while($rowGetClaim = mysql_fetch_array($resultGetClaim)) {
  foreach($rowGetClaim as $k => $v{
    echo $v;
  }
}

或

代码语言:javascript
复制
$names = array();
while($rowGetClaim = mysql_fetch_array($resultGetClaim)) {
  $names[] = $rowGetClaim;
}


foreach($names as $data){
  foreach($data as $k => $v) {
    echo $v;
  }
}
票数 1
EN

Stack Overflow用户

发布于 2011-06-17 04:37:08

您检索的不是包含所有返回记录的数组,而是包含单个记录的数组。

要获取下一条name (下一条记录),必须再次调用mysql_fetch_array。

您提供的代码通过在while条件中分配$rowGetClaim来隐式地实现这一点。失败的mysql_fetch_array调用将返回false,这将退出while循环。

完全没有必要像您所展示的那样使用for each。只需将echo放在赋值之后(例如

$region = $rowGetClaim['region'];

echo $region

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6378101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档