поиск через JSON с PHP

0

Я JSON и PHP noob, и мне нужна помощь! У меня есть json, и вы хотите выполнить поиск с помощью user _GET и вернуть всю информацию об этом пользователе.

JSON:

{
Shawn Taylor: {
  user: "Shawn Taylor",
  email: "[email protected]",
  phone: "604-123-4567"
  },
John Smith: {
  user: "John Smith",
  email: "[email protected]",
  phone: "604-123-4569"
  }

ФОРМА:

<form method="get">
  <input name="find" />
  <button type="submit">Find</button>
</form>

PHP:

if (!empty($_GET['find'])){
  $find = ($_GET['find']);
  $data_url = 'data.json';
  $data_json = file_get_contents($data_url);
  $data_array = json_decode($data_json, true);
  echo $data_array['user'];
  echo $data_array['email'];
  echo $data_array['phone'];

Я думал, что это должно сработать, но такой удачи не было. Может ли кто-нибудь помочь?

  • 2
    Откуда берется цикл foreach упомянутый в заголовке вопросов? не могу увидеть это в коде вы разместили ...
  • 0
    Действительно, где foreach ? В вашем PHP вы не используете $find . Обратите внимание, что у вас есть двумерный массив, а не одномерный.
Показать ещё 2 комментария
Теги:

2 ответа

2
Лучший ответ

Вы просто забыли найти его с помощью ключа $find.

Попробуйте это (посмотрите на 4 последних строки):

if (!empty($_GET['find'])){
  $find = ($_GET['find']);
  $data_url = 'data.json';
  $data_json = file_get_contents($data_url);
  $data_array = json_decode($data_json, true);

  $user = $data_array[$find];
  echo $user['user'];
  echo $user['email'];
  echo $user['phone'];
}
  • 0
    да - я тупица! Благодарю.
  • 0
    это называется быть уставшим;)
0

Вы никогда не используете $ find.

if (isset($data_array[$find])) {
    $user = $data_array[$find];
    echo $user['user'];
    echo $user['email';
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню