Как представить отношения один-ко-многим в JSON с помощью Php?

0

У меня есть таблица MySQL, которая имеет два столбца customer_id и item_id,

customer_id может иметь несколько item_id, (от одного до многих отношений),

Как я могу представить/цикл через возвращаемый запрос сгенерировать вывод JSON (аналогичный структуре выше), используя MySQL и PHP?

например, я хочу, чтобы мой вывод JSON выглядел следующим образом:

  {
        "data": 
         {
            "customer_id": "10",
            "item_id": " 1"
          },
         {
           "customer_id": "10",
            "item_id": " 2"
         },
  {
           "customer_id": "10",
           "item_id": " 3"
         }
   }

Благодарю.

Теги:

2 ответа

1

Думаю, вы будете получать данные из MySQL.

$results = mysqli_query("SELECT customer_id, item_id FROM your_table_name");
$data = array();
while($result = mysqli_fetch_assoc($results)) {
     $data['data'][] = $result;
}

echo json_encode($data);
  • 0
    Это не выводит информацию способом «один-много», как запрашивается OP. Кроме того, вы используете функции mysql_, которые устарели в течение многих лет.
  • 0
    проблема в том, что данные повторяются, то есть повторяется уникальный
Показать ещё 2 комментария
0

Есть много способов сделать это. Вот предложение.

$data = [
    'Customer' => [
        'customer_id' => 29973,
    ],
    'Item' => [
        ['item_id' => 1 ],
        ['item_id' => 2 ],
        ['item_id' => 3 ]
    ]
];

echo json_encode($data) . "\n";

Выход:

{
    "Customer": {
        "customer_id": 29973
    },
    "Item": [
        {
            "item_id": 1
        },
        {
            "item_id": 2
        },
        {
            "item_id": 3
        }
    ]
}
  • 0
    этот вывод не соответствует тому, что запрашивает OP. Но я бы сказал, что это должно быть то, к чему должен идти OP (если он может изменить часть системы, которая использует выведенный JSON)
  • 0
    С одной стороны, вы правы в том, что он говорит, что хочет получить данные, как если бы они были выходом соединения. Однако комментарии указывают, что он не хочет, чтобы родительские данные повторялись. Я оставлю это как предложение, даже если оно не совпадает с тем, что просил ОП.
Показать ещё 1 комментарий

Ещё вопросы

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