我需要将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相关。所以很明显,一个$name会有它自己的$city,等等。
我该如何实现这一点?
请帮帮忙
发布于 2011-06-17 04:27:25
要么直接从循环中输出,要么构建一个数组然后循环。
while($rowGetClaim = mysql_fetch_array($resultGetClaim)) {
echo $rowGetClaim['Name'];
echo $rowGetClaim['city'];
echo $rowGetClaim['region'];
}或
while($rowGetClaim = mysql_fetch_array($resultGetClaim)) {
foreach($rowGetClaim as $k => $v{
echo $v;
}
}或
$names = array();
while($rowGetClaim = mysql_fetch_array($resultGetClaim)) {
$names[] = $rowGetClaim;
}
foreach($names as $data){
foreach($data as $k => $v) {
echo $v;
}
}发布于 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
https://stackoverflow.com/questions/6378101
复制相似问题