PHP передать переменную в цикл foreach из результата MySQL - PullRequest
0 голосов
/ 17 июня 2011

Мне нужно передать переменную в цикл foreach из результата mySQL.

Итак, у меня есть этот код:

    $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.Проблема также в том, что каждая строка, которую я получаю из базы данных, должна быть связана с конкретным именем $.Поэтому одно имя $ будет иметь свой собственный город $ и т. Д.

Как мне этого добиться?

Пожалуйста, помогите

Ответы [ 2 ]

2 голосов
/ 17 июня 2011

Вы не извлекаете массив со всеми возвращенными записями, вы извлекаете массив, который содержит одну запись.

Чтобы получить следующую name (следующую запись), вы должны сделать еще один вызовmysql_fetch_array.

Код, который вы предоставляете, делает это неявно, присваивая $ rowGetClaim в течение некоторого времени.Неудачный вызов mysql_fetch_array вернет false, что приведет к выходу из цикла while.

Абсолютно нет необходимости использовать для каждого, как вы представляли.Просто поместите echo сразу после назначения (например,

$region = $rowGetClaim['region'];

echo $region

1 голос
/ 17 июня 2011

Либо выводите непосредственно из цикла eh, либо создайте массив, а затем выполните цикл через него.

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;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...