Ребята помогите разобраться с циклами.
Проблема в следующем.
1. вытягиваю данные с таблицы.
2. загоняю в массив (индекс=>ключ)с помощью цикла while
3. с помощью цикла foreach пытаюсь вывести данные на экран, но выводит только послюднюю запись из таблицы. Вот код:
<?php
$getcity = mysql_query ("SELECT name_en,name_ru FROM cities");
/*выбор данных из базы и занесение в переменную $getcity*/
while($mass = mysql_fetch_array($getcity))
{
$items = array($mass['name_en']=>$mass['name_ru']);
}
foreach ($items as $key=>$value)
{
echo "$key $value<br>"; выводится только последняя запись массива
}
?>
но когда я массив явно описываю, таких проблем не происходит
<?php
$items = array( "Green Heron"=>"Butorides virescens",
"Solitary Sandpiper"=>"Tringa solitaria",
"Heuglin's Gull"=>"Larus heuglini"
);
foreach ($items as $key=>$value) {
echo "$key $value<br>";
}
?>
подскажите где мой массив теряется в первом случае?
Спустя 3 минуты, 31 секунда (31.01.2011 - 14:26) Evilsoul написал(а):
код подсвети
Спустя 26 секунд (31.01.2011 - 14:27) waldicom написал(а):
$items[] = array($mass['name_en']=>$mass['name_ru']);
Спустя 11 минут, 30 секунд (31.01.2011 - 14:38) skulik написал(а):
Цитата (waldicom @ 31.01.2011 - 11:27) |
$items[] = array($mass['name_en']=>$mass['name_ru']); |
уже лучше, но при такой комбинации $items[] выводятся не данные массива а во что
0 Array
1 Array
2 Array
3 Array
4 Array
5 Array
6 Array
7 Array
8 Array
Спустя 3 минуты, 14 секунд (31.01.2011 - 14:41) Evilsoul написал(а):
проверь так:
echo '<pre>';
print_r($items[]);
echo '</pre>';
Спустя 1 минута, 31 секунда (31.01.2011 - 14:43) Evilsoul написал(а):
Здесь, через точку
echo $key . $value .'<br>'; выводится только последняя запись массива
Спустя 10 минут, 30 секунд (31.01.2011 - 14:53) skulik написал(а):
Цитата (Evilsoul @ 31.01.2011 - 11:43) |
Здесь, через точкуecho $key . $value .'<br>'; выводится только последняя запись массива |
это куда вставить, если сразу после цикла while то вообще не работает
echo "<pre>";
print_r($items[]);
echo "</pre>";
----------------
а через точку вот что выдает
0 . Array .
1 . Array .
2 . Array .
3 . Array .
4 . Array .
Спустя 2 минуты, 9 секунд (31.01.2011 - 14:56) Evilsoul написал(а):
1) после цикла ваил..
2) это как так
2) это как так
Спустя 35 минут, 58 секунд (31.01.2011 - 15:31) linker написал(а):
while($mass = mysql_fetch_array($getcity))
{
$items[] = array($mass['name_en']=>$mass['name_ru']);
}
foreach ($items as $item)
{
list($key, $value) = each($item);
echo "$key $value<br>";
}