@timurusubyan

Как правильно вывести массив из бд и перебрать его?

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

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

Вот так правильно:

{
    "type": "FeatureCollection",
    "features": [
        {"type": "Feature", "id": 0, "geometry": {"type": "Point", "coordinates": [55.831903, 37.411961]}, "properties": {"balloonContentHeader": "<font size=3><b><a target='_blank' href='https://yandex.ru'>Здесь может быть ваша ссылка</a></b></font>", "balloonContentBody": "<p>Ваше имя: <input name='login'></p><p><em>Телефон в формате 2xxx-xxx:</em>  <input></p><p><input type='submit' value='Отправить'></p>", "balloonContentFooter": "<font size=1>Информация предоставлена: </font> <strong>этим балуном</strong>", "clusterCaption": "<strong><s>Еще</s> одна</strong> метка", "hintContent": "<strong>Текст  <s>подсказки</s></strong>"}}
]}

Вот так делаю я:

$taskList = [];

echo '{
        "type": "FeatureCollection",
        "features ":        
';

while($row = $stmt->fetch(PDO::FETCH_OBJ)) {
$taskList[] = array('type' => 'Feature', 'id' => $row->id, 'geometry' => '{type' => 'Point', 'coordinates' => [$row->coordinates, $row->coordinates2]);
}

*вот тут не правильно получается вывести из за многих =>

echo json_encode($taskList);

echo "}";

Пример как правильно выше.

Из бд мы подставляем только id, coordinates(долгота), coordinates2(широта).
  • Вопрос задан
  • 117 просмотров
Решения вопроса 1
@alexalexes
На этом фрагменте строки:
=> '{type' =>
у вас должно закрасться подозрение, что нужно собирать вложенный объект как-то по другому, а именно:
$taskList[] = array( // старый способ объявления массива, можно [, но не суть
'type' => 'Feature', 
'id' => $row->id, 
'geometry' => // в json-е встретилась фигурная скобка (свойство-объект) - повторяю ее открытие в своей конструкции 
[ // это хоть и объявление массива, но в определенном режиме в JSON конвертнется в объект, так как имена свойств ассоциативные
  'type' => 'Point', 
  'coordinates' =>
    [ // а тут массив останется массивом, так как о ключах ни слова (они по индексу)
    $row->coordinates,
    $row->coordinates2
    ] // конец свойства coordinates
] // конец свойства geometry

);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы