0

有点愚蠢的问题,我敢肯定,我确实需要一个答案。

我正在做这个简短的学习项目,我需要获取一个数据库来输出一些 JSON。

我确实知道如何构造表格,但由于我与它们的历史很短,我还没有弄清楚如何处理表格单元中的一组对象(在这个例子中,pointsOfInterest 和事件)。我应该为他们制作单独的表格并以某种方式为每个表格留下对单独表格的引用吗?以及如何在 php 中处理它们?

TL:博士;我应该如何构建我的数据库以允许这样的 JSON 输出?:

{id: 'oyafestivalen',
 displayName: 'Øyafestivalen 2011',
 description: 'Music festival in Middelalderparken, Oslo',
 pointsOfInterest: [
   {id: 'sjosiden',
    displayName: 'Sjøsiden',
    lat: 59.904453,
    lng: 10.762905},
   {id:   'vika',
    displayName: 'Vika',
    lat:  59.906086,
    lng: 10.763276},
   {type: 'wc',     // type is optional, defaults to 'venue'
    // displayName optional, not specified here
    lat: 59.903625,
    lng: 10.763276},
   {type: 'firstaid',
    lat: 59.903625,
    lng: 10.763276},
   {type: 'entrance',
    lat: 59.903625,
    lng: 10.763276},
   {type: 'exit',
    lat: 59.903625,
    lng: 10.763276},
   {type: 'camping',
    lat: 59.903625,
    lng: 10.763276},
   {type: 'food',
    displayName: 'Random restaurant name',
    description: 'They serve good food. Vegetarian-friendly',
    lat: 59.903625,
    lng: 10.763276},
   {type: 'drinks',
    displayName: 'Random bar name',
    lat: 59.903625,
    lng: 10.763029}
 ],
 events: [
   {displayName: 'Kyuss Lives!',
    venue: 'sjosiden',
    startDateTime: '2011-08-13T19:30',
    endDateTime: '2011-08-13T21:00',
    tags: ['rock', 'stoner']},
   {displayName: 'Givers',
    description: 'Givers are an indie pop group from Lafayette, Louisiana. The band is made up     of...',
    venue: 'vika',
    // Default one hour duration if no endTime
    startDateTime: '2011-08-13T18:05',
    tags: ['pop', 'indie']}
 ]
4

1 回答 1

0

我无法告诉您表的结构,也无法告诉您获得该输出所需执行的确切查询,但我可以告诉您:

您不可能从 SQL 查询中产生这样的输出。但是,您可以使用多个查询构造这样的输出,并使用 PHP 操作它们的输出来构造您的多维数组。例如,pointsOfInterest 的内容应该是一个单独的查询。为了帮助您获得所需的输出,请使用print_r()PHP 来检查您的数组的运行情况。一旦你得到你想要的,用json_encode()PHP 将数组转换为 json 字符串。

于 2012-12-20T16:29:07.377 回答