Экспорт из MySQL в массив объектов в PHP, а затем в JavaScript

У меня есть код ниже, который передает данные из MySQL в массив PHP:

while ( $row = $result->fetch_assoc() ) {
    $profile[] = array(
        "id" => $row[ "id" ],
        "first" => $row[ "first" ],
        "last" => $row[ "last" ],
        "cell" => $row[ "cell" ],
        "email" => $row[ "email" ],
        "kids" => $row[ "kids" ]
    );
}

Затем я кодирую это в JavaScript следующим образом:

var userprofile = <?php echo json_encode($profile); ?>;

Результатом является

Экспорт из MySQL в массив объектов в PHP, а затем в JavaScript

Чтобы получить параметр, я должен сделать userprofile[0].cell, где, как я хочу, просто сделать userprofile.cell

Что мне нужно изменить, чтобы получить желаемый результат?

Есть только один результат

Ну а если там всего один элемент: $profile = array(...? вместо того, чтобы выставлять это значение ... $profile[] = array(

ficuscr 19.07.2018 23:13

если вы не отбрасываете некоторые поля, которые мы не видим, вы можете просто выполнить $profile = $row, поскольку все ключи одинаковые

charlietfl 19.07.2018 23:15
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
52
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

На основании этой строки:

var userprofile = <?php echo json_encode($profile); ?>;

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

Но то, как вы его получаете

while ( $row = $result->fetch_assoc() ) {
    $profile[] = array(...

вот как бы вы настроили его, если бы хотели вернуть несколько профилей пользователей.

Я думаю, что вместо этого вам нужно просто:

$profile = $result->fetch_assoc();

Если в профиле есть другие столбцы, которые вы не хотите отправлять, вы можете просто указать нужные столбцы в своем запросе. (SELECT id, first, last, etc. вместо SELECT *.)

Может это поможет:

var single = {"foo": 1, "bar": 2};
//PHP would be array('foo' => 1, 'bar' => 2);

var list = [{"foo": 1, "bar": 2}];
//PHP would be array(array('foo' => 1, 'bar' => 2)); ... what you do with []... array_push.

console.info(list[0].foo);

console.info(single.foo);

Вы создаете «объект» или массив объектов? Если позже, вам нужно будет ссылаться на объект с правильным смещением. Очевидно, если заявлено, надеюсь, код сделает это очевидным.

Другие вопросы по теме