我在DB中有多个客户,每个客户都已登录参加活动。我有多个客户签署了同一个活动。所以我想在屏幕上输出事件名称,然后根据所有客户登录该事件。以下是我的记录在数据库中的样子:
Event Name Customer Name
Test 1 joe, allen
Test 2 tim, johnas
Test 2 camil, gera
Test 1 john, paskins
Test 3 steve, mcines
Test 3 jym, haskynes
Test 2 kim, george
这是我的问题:
SELECT EventName, Customer
From Reservations
所以我想知道我是否可以使用JSON来存储具有相同事件名称的结果?我如何检查他们是否有相同的事件名称以及如何将它们存储在JSON的不同行中,为什么我可以在屏幕上的事件名称下面的单独行中输出具有相同名称的记录?
答案 0 :(得分:1)
JSON是一种非协调格式:
var a = [{"eventName" : "Test 1", "customerName": "joe, allen"},
{"eventName" : "Test 2", "customerName": "tim, johnas"}]
alert(a[0].eventName);
是否可以在JSON中对eventName进行地址处理,这样就无法在不使用循环的情况下获取正确的条目。
但您可以在打印输出之前使用对象存储JSON列表:
var b = {"Test 1": [{ "customerName": "joe, allen" },
{ "customerName": "john, paskins" }],
"Test 2": [{"customerName": "tim, johnas"}]
}
alert(b["Test 1"][1].customerName); // will return "john, paskins"
但是这样你就无法使用b [0] [0],因为b [0]只会在对象中出现类似的结果时给出结果:
0:[{customerName: "john, doe"}]
答案 1 :(得分:0)
理解它的最简单方法是将其分为2个不同的查询。
首先:获取不同的eventNames列表
SELECT DISTINCT eventName From Reservations
这将返回如下结果:
eventName
Test 1
Test 2
Test 3
然后根据这些结果,您可以对结果进行另一次查询,以吸引客户参与。
foreach(ROW in RESULTS)
SELECT customerName FROM Reservations WHERE eventName = ROW
这将为您提供参加该活动的客户列表。
从那里构建JSON非常简单。以下是stackoverflow上的答案示例:How can I build a json string in javascript/jquery?