Как изменить информацию PHP, поступающую из mySQL до JSON_encode? - PullRequest
1 голос
/ 05 мая 2020

У меня есть действующий веб-сайт, который использует базы данных PHP и mySQL. Я хочу использовать d3 для создания нескольких визуализаций. Но я не знаю, как изменить данные, поскольку они хранятся в базе данных SQL, прежде чем напрямую кодировать их в JSON для d3. Мой PHP:

$activity_array = $array;
   while ($activity = mysqli_fetch_assoc($get_all_activities)) {

   // $user_name = find_user_by_id($activity['user_id']);
   // echo $user_name['last_name'];

   $activity_array[] = $activity;
}
echo json_encode($activity_array);

Однако из-за того, как настроена моя база данных mysql, пользователи настроены как числа, поэтому то, что я получаю в JSON, выглядит так:

[{"id":"93","date":"2020-05-01","user_id":"37","user_notes":"This user has blah blah."},...]

Когда я использую этот JSON для создания графика в d3, я хочу, чтобы он показывал фактическое имя пользователя, а не «37». В приведенном выше коде PHP я закомментировал запрос, чтобы получить имя пользователя из его user_id, но тогда я понятия не имею, как поместить это в свой JSON.

Спасибо за помощь!

1 Ответ

1 голос
/ 05 мая 2020

Вам просто нужно изменить соответствующую запись в массиве $activity с именем пользователя, полученным вторым запросом:

$activity_array = $array;
while ($activity = mysqli_fetch_assoc($get_all_activities)) {

   $user_name = find_user_by_id($activity['user_id']);
   $activity['user_id'] = $user_name['last_name'];

   $activity_array[] = $activity;
}
echo json_encode($activity_array);

Однако, вероятно, было бы проще изменить запрос $get_all_activities на JOIN в таблицу users и напрямую получить имя пользователя из этого запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...