[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите разобраться с циклом
skulik
Добрый день.
Ребята помогите разобраться с циклами.
Проблема в следующем.

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) это как так blink.gif

Спустя 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>";
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.